Modified Condition Decision Coverage (MC/DC)

Modified condition/decision coverage (MC/DC) is a coverage criterion that is required for the certification of safety-critical software-systems used in the avionics industry.

Due to a limitation in size of traces which becomes unfeasible very quickly, an online approach is proposed to measure MC/DC using COEMS FPGA hardware to reconstruct the trace and calculate the MC/DC information. It combines current research on online trace reconstruction with online monitoring of trace information.

To satisfy MC/DC, the following criteria need to be fulfilled:

  • every point of entry and exit in the program should be invoked at least once
  • every basic condition in a decision in the program should take on all possible outcomes at least once
  • each basic condition should be shown to independently affect the decision’s outcome( varying just that condition while holding fixed all other possible conditions, changes the outcome)

MC/DC subsumes the existing coverage criteria with the following benefits: 1) it requires a small number of test cases, 2) it is sensitive to the program structure, 3) it is unique due to the independence effect for each condition, and 4) It is required for software with the highest safety level A by DO-178C certification standards.

Measuring MC/DC is usually done by instrumenting the code, which is intrusive and especially problematic in resource-limited systems. COEMS introduces two novel approaches, that make it possible to measure MC/DC based on object code without instrumentations. The first one is the offline MC/DC calculation from a recorded trace, which consists of a static analysis of object code to find out which conditional jumps were executed. The assignments of the conditions can be reconstructed and fill the MC/DC-table.