ThrowTheSwitch Improved with Tools & Tips for Embedded Developers

Higher-level software development has grown by leaps and bounds recently, but embedded has lagged significantly behind. To meet this need, a group of developers (including a few of us at Atomic Embedded) formed ThrowTheSwitch, an organization whose mission is to help evolve the way development is done in the embedded realm. ThrowTheSwitch’s portal is a […]

Incidental Code Coverage: TDD as a Solution

Some of my previous work experience involved the validation and verification (testing) of aerospace software. One of the rules for this testing was that test cases needed to structurally cover a large portion of the software under test, but this coverage was not allowed to be incidental code coverage. Incidental coverage occurs when a test case causes execution of specific lines but does not validate the inputs and outputs affected by those lines. Code coverage is usually used to determine which portions of a project are currently tested, but incidental coverage is a false positive. It causes the coverage tool to tell us that lines are tested when they may not be. For example, 100% of our code may be executed by our test suite, but some of the code may be a routine without its own set of tests covering a variety of inputs.