What Is A Unit Test and How To Use gcov for MC/DC?
Channel: Lore Prokop
Date: 2023-04-27

NASA's tech fellow, Dr. Lorraine (Lore) Prokop describes what software unit testing is, why to unit test, and demonstrates how to do MC/DC unit testing with gcov.  The form of unit testing performed is MC/DC (modified condition/decision coverage) testing which is required for safety-critical systems, though recommended for all software.   It tests the minimum set of meaningful logical paths through a unit of code.

References cited in the video with Links:

1 Comar, Guitton, Hainque, and Quinot. “Formalization and Comparison of MCDC and Object Branch Coverage”, Embedded Real Time Software and Systems Conference, Feb 2012. https://www.researchgate.net/publication/256378814_Formalization_and_Comparison_of_MCDC_and_Object_Branch_Coverage_Criteria


Thomas Wucher, Andoni Arregui. “MC/DC for Space: A new Approach to Ensure MC/DC Structural Coverage with Exclusively Open Source Tools”, ESA Software Product Assurance Workshop 2021. https://gtd-gmbh.gitlab.io/mcdc-checker/mcdc-checker/MCDC_for_Space_ESA_Software_PA_Workshop_2021.pdf


3  AJohn J. Chilenski. “An Investigation of Three Forms of the Modified Condition/Decision Coverage (MCDC) Criterion. Technical Report”, DOT/FAA/AR-01/18, US. Department of Transportation, Federal Aviation Administration, April 2001.  Link: https://www.tc.faa.gov/its/worldpac/techrpt/ar01-18.pdf 

4  Bordin, et.al. “Object and Source Coverage for Critical Applications with the COUVERTURE Open Analysis Framework”, Embedded Real Time Software and Systems Conference, May 2010. https://www.academia.edu/31902390/Object_and_Source_Coverage_for_Critical_Applications_with_the_COUVERTURE_Open_Analysis_Framework