One of the greatest difficulties a developer experiences is a failure to determine the portions of code that have gone untested. For many embedded systems, failure is not an option, so every part of an application must be thoroughly tested to ensure there is no unhandled scenario or dead code.
In addition, project managers need a concrete measurement to determine where the team is in the development cycle - in particular, how much more testing needs to be done. A decreasing number of defects does not necessarily mean the product is ready; it might simply mean the portions of code that have been tested appear to be ready.
Code coverage measurement tools observe your running application, flagging every line of code as it executes. Advanced tools such as HCL OneTest Embedded are also able to differentiate different types of execution, such as whether or not a do-while loop executed 0 times, 1 time, or 2 or more times. These advanced measurements are critical for software certification in industries such as avionics.
This function is provided by the code coverage feature for the C, Ada and C++ languages.