I want to come clean: I've spent most of my career to date manually testing the code I've written. This might surprise people who have known me or read my work for years, because I have spent the majority of my career extolling the benefits of CI pipelines and automated testing for embedded systems. But …
Continue reading "When Updating an Untested Module, Take the Opportunity to Add Tests"
I previously wrote about a client project that I quickly adapted to enable TDD and unit testing. I received a bug report from our client, and I was able to identify the issue, verify the fix, and make a release without turning on any hardware. I hope this article demonstrates the power of having a hardware-independent test …
Continue reading "A Case Study on Finding, Fixing, and Testing a Firmware Bug Without Hardware"
I'm a believer in automated testing, and particularly in leveraging TDD for embedded systems. But that doesn't mean I'm perfect. Sometimes I encounter the combination of a tight project deadline and unfamiliar IDE setup and say, "It will be too hard to get a TDD setup going with this project, so I'll just skip it." …
Continue reading "Even I Make Excuses About Unit Testing Embedded Code"
Today we have another guest post by Paul Shepherd, this time covering integration of Ceedling and Unity with the build status reporting. Paul is the Lead Electrical Engineer at Benchmark Space Systems. He has spent time in the Aerospace, Consumer Audio, and Integrated Circuits fields, more often than not working at the intersection of hardware …
Continue reading "Unit Testing and Reporting on a Build Server using Ceedling and Unity"
Embedded Artistry was founded with the goal of creating reliable, safe, and well-tested embedded systems. The sad fact is that most embedded software that we've encountered is low-quality and untested. Perhaps this holds true for most of the software industry - the continual procession of hacks, flaws, and errors is discouraging. We are focused on …
Continue reading "Embedded Systems Testing Resources"
Test Driven Development (TDD) is an important software development practice which is typically foreign to embedded teams. James Grenning has put a tremendous amount of effort into teaching embedded systems developers how to adopt TDD. He published an embedded systems classic, Test-Driven Development for Embedded C, and regularly conducts TDD training seminars. Admittedly, TDD is one of those …
Continue reading "What I Learned from James Grenning’s Remote TDD Course"
4 September 2018 by Phillip Johnston • Last updated 27 September 2019 Welcome to the September 2018 edition of the Embedded Artistry Newsletter! This is a monthly newsletter of curated and original content to help you build superior embedded systems. This newsletter is intended to supplement the website and covers topics not mentioned there. This month we’ll cover: Testing Embedded SystemsEmbedded articles from around the webEmbedded Artistry website updates Testing Embedded Systems Embedded Artistry was founded with the goal of creating reliable, safe, and well-tested embedded systems. The sad fact is that most embedded software that we’ve encountered is low-quality …
Continue reading “September 2018: Testing Embedded Systems”
I had to rebuild CMocka the other day for one of my projects, and I was initially pretty confused as to why the CMocka build system was only generating dynamic libraries. The documentation didn't mention anything obvious about static libraries either. I'm still new to CMake and wasn't aware of the DefineOptions.cmake file, which clearly …
Continue reading "Building CMocka as a Static Library"
I've been adding unit tests to my C-based projects with the CMocka testing framework. Now that I have tests defined, I want my build server to run the tests and track the results for each build. Jenkins requires test results to be reported in the JUnit XML format. Luckily, CMocka has built in XML support …
Continue reading "CMocka: Enabling XML Output"