University of Minnesota
Software Engineering Center

You are here

Observable Modified Condition/Decision Coverage

Date of Publication: 
May 2013
Associated Research Groups: 
Publication Files: 
In many critical systems domains, test suite adequacy is currently measured using structural coverage metrics over the source code. Of particular interest is the modified condition/decision coverage (MC/DC) criterion required for, e.g., critical avionics systems. In previous investigations we have found that the efficacy of such test suites is highly dependent on the structure of the program under test and the choice of variables monitored by the oracle. MC/DC adequate tests would frequently exercise faulty code, but the effects of the faults would not propagate to the monitored oracle variables. In this report, we combine the MC/DC coverage metric with a notion of observability that helps ensure that the result of a fault encountered when covering a structural obligation propagates to a monitored variable; we term this new coverage criterion Observable MC/DC (OMC/DC). We hypothesize this path requirement will make structural coverage metrics 1.) more effective at revealing faults, 2.) more robust to changes in program structure, and 3.) more robust to the choice of variables monitored. We assess the efficacy and sensitivity to program structure of OMC/DC as compared to masking MC/DC using four subsystems from the civil avionics domain and the control logic of a microwave. We have found that test suites satisfying OMC/DC are significantly more effective than test suites satisfying MC/DC, revealing up to 88% more faults, and are less sensitive to program structure and the choice of monitored variables.
35th International Conference on Software Engineering, San Francisco, California, May 2013.
@inproceedings{whalen2013observable, title={Observable modified condition/decision coverage}, author={Whalen, Michael and Gay, Gregory and You, Dongjiang and Heimdahl, Mats PE and Staats, Matt}, booktitle={Proceedings of the 35th International Conference on Software Engineering}, pages={102--111}, year={2013}, organization={IEEE} }