Test-Abdeckung (Code-Coverage) bedeutet, wieviel Prozent des realen Programmcodes wird über ein Test (Unit-Test) geprüft.
Die Test-Abdeckung gibt aber in der Regel keine Aussage darüber, wie gut die Tests im eigentlichen Sinne sind. Sie ist lediglich ein Maß, wieviel Prozent des Codes tatsächlich durchlaufen werden.
Wir werden von den verantwortlichen Projektleitern und Managern immer wieder gefragt, wieviel Prozent einer Test-Abdeckung für eine qualitativ gute Software ausreichend sind. Auf diese Frage gibt es nur eine Standard Antwort: zwischen 1% und 100%.
Beispiel: Eine 20%-ige Test-Abdeckung ist hervorragend, wenn genau die 20% abgedeckt werden, die am wichtigsten sind. Eine Test-Abeckung von 80% kann völlig daneben sein, wenn die 20% der wichtigsten Stellen überhaupt nicht getestet werden. Somit ist keine qualitative Aussage möglich, wie hoch eine Test-Abdeckung generell sein soll. Eine manuelle Überprüfung der Test-Abdeckung durch Test- bzw. Qualitätspersonal ist in jeden Fall erforderlich.
Nachfolgendes Beispiel aus der Praxis zeigt, dass hier die Methode "setVorhandeneTermine" zu 86,3% durch einen oder mehrere Tests abgedeckt wird. Allerdings wird hier ein wichtiger Aspekt der Methode, das Zuordnen von verlorenen Terminen, überhaupt nicht getestet (vom Coverage-Tool in rot markiert). Bei dieser Anwendung war dies aber ein sehr wesentliches Feature des Gesamtsystems.
Test-Abdeckung mit wesentlicher Lücke

Aus dem Beispiel der 86%-igen Test-Abdeckung lässt sich eine einfache Qualitätsregel ableiten:
Eine automatisierte Test-Abdeckung muss manuell überprüft werden.
Leider erleben wir es immer wieder, dass sich sowohl Projektleiter als auch Produktverantwortliche nur auf die "automatischen" Test-Aussagen verlassen und sich bei einer Test-Abdeckung von 90% auf die Schulter klopfen. Da bleibt nur zu hoffen, dass die restlichen 10% nicht die wesentlichsten Bestandteile des Software Produkts beinhalten ...