Es gibt verschiedene Metriken, die Komplexität einer Programmierung zu messen. Nachfolgend möchten wir Ihnen ein praktisches Beispiel zeigen, wie sich der Grad der Komplexität direkt auf die Testabdeckung auswirkt.
Das erste Bild zeigt die Ergebnisse einer Messung mittels der "McCabe" Komplexität.
Hierbei gilt ein Wert von <= 5 als einfacher, gut testbarer und wartbarer Programmcode. Ein Wert von > 5 und < 10 gilt als kompliziert und schlecht testbar. Über 10 kann der Code praktisch nicht mehr getestet werden und ist nahezu unwartbar.
Das zweite Bild zeigt die Code-Abdeckung mittels Junit-Tests.
Eine "Coverage" von 100% bedeutet, dass jede Zeile Code im Test durchlaufen wird. Eine Abdeckung von 0% bedeutet, dass dieser Code komplett ungetestet ist.
Aus dem ersten Bild wird ersichtlich, dass die Methode "sucheTerminlisten" vom Programmierer mit der Gesamtkomplexität "9" implementiert wurde. Daraus folgt unmittelbar das Ergebnis im zweiten Bild. Diese Methode wird im Junit-Test mit nur 42% abgedeckt, hier bleiben demnach mehr als die Hälfte der Codezeilen völlig im Dunkeln.
Ermittlung der McCabe Komplexität:

Ermittlung der Test Coverage:

Aus dem oben dargestellten Verhältnis von Komplexität und Abdeckung lässt sich eine einfache und logische Qualitätsregel ableiten:
Je komplexer der Programmcode ist, desto schwerer lässt er sich testen.
Diese Qualitätsregel ist sehr einfach und logisch, jeder Programmier kennt sie. Dennoch halten sich nicht sehr viele daran und das zeigt sich dann immer wieder in der Qualität der Software. Viele Bereiche sind ungetestet, weil die Komplexität der Programmierung keine einfachen und schnellen Tests erlaubt ...