Thursday
Room 3
10:20 - 11:20
(UTC+02)
Talk (60 min)
Mastering MC/DC from first principles
Unless you work in a few particular industries, chances are you haven't even heard of MC/DC, and find code coverage a waste of time (and for weaker coverage criteria like line coverage I'd say you are right).
Modified Condition/Decision Coverage (MC/DC) is a coverage metric that focuses on the structure of the decisions (ifs and ors) and requires not only that both then/else are entered, but that all conditions are meaningfully tested. It is a useful tool for testing guidance, flaw detection, and high-quality test suites like SQLite's TH3. It is particularly important in safety oriented industries like automotive, aviation, and spaceflight.
This talk covers MC/DC from the ground up; its history and use in the industry, how it improves on weaker forms of coverage, how to properly understand and intuit it, and how to do it with tools today. We will look at code, tests, diagrams and graphs, and maybe peek under the covers and see how GCC measures coverage (I wrote the MC/DC support in GCC).
