Testabdeckung (Code Coverage) ist der Anteil des Codes, der bei einem Testlauf tatsächlich ausgeführt wird. Gemessen wird in Zeilen, in Verzweigungen oder in Methoden, und das Ergebnis steht als Prozentzahl im Bericht.
- Testabdeckung (Code Coverage)
Der Anteil des Codes, der bei einem Testlauf tatsächlich ausgeführt wird.
Beispiel: „Die Testabdeckung lag bei 46 Prozent, und die ungetesteten Stellen waren genau die wichtigen.“Englisch Code Coverage. Gemessen wird mit einer Erweiterung der Sprache, in PHP mit Xdebug oder PCOV; der Lauf dauert damit deutlich länger als ohne.
Anwendungsfall: Die Zahl taugt zum Finden ungeprüfter Stellen. Als Ziel taugt sie nicht, weil sich jede Quote mit Tests ohne Behauptungen erreichen lässt.
Was die Testabdeckung sagt
Welche Zeilen bei den Tests mitgelaufen sind. Der Bericht färbt den Code ein, und die roten Stellen sind die, über die bei einer Änderung niemand Bescheid bekommt.
Besonders brauchbar ist der Blick auf einzelne Dateien statt auf die Gesamtzahl. Eine Klasse mit der Preislogik und null Abdeckung ist eine Nachricht; 46 Prozent über das ganze Projekt sind keine.
Was die Testabdeckung nicht sagt
Ob die Tests etwas prüfen. Eine Zeile gilt als abgedeckt, sobald sie ausgeführt wurde, auch wenn der Test anschließend nichts behauptet; hundert Prozent lassen sich damit erreichen, ohne einen Fehler zu finden.
Ebenso wenig sagt sie, ob die Fälle stimmen. Eine Funktion mit drei Verzweigungen kann in einer Zeilenmessung voll abgedeckt sein, obwohl zwei Wege nie geprüft wurden.
Welcher Wert sinnvoll ist
Keiner als Pflicht. Brauchbar ist die Regel, dass die Abdeckung nicht sinken darf: Jede neue Logik bringt ihre Tests mit, und die Pipeline meldet, wenn eine Änderung die Quote drückt.
Wo eine Zahl gebraucht wird, lohnt sie sich für den Kern und nicht für das Ganze. Fünfzig Prozent im Projekt mit neunzig in der Geschäftslogik sind besser als achtzig überall verteilt.