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).

Testing
Technique
C++
C
Tools

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).

Jørgen Kvalsvik

Jørgen is a programmer and has mainly been writing free software in his career - lately targeting gcc. He left the energy industry for work on compiler toolchains and build systems in Japan, before returning to his native Norway where he is currently programmer & director at patch. Now he solves hard and interesting problems where he can find them, does bespoke programming as well as teaching, training, and consulting. He holds an MSc in Computer Science from NTNU.