Spring GDS 25. Jubiläum
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Testabdeckung misst, wie viel Ihres Codes ausgeführt wird, wenn die Test-Suite läuft, meist als Prozentsatz. Die Zeilenabdeckung verfolgt, welche Zeilen liefen. Die Zweigabdeckung verfolgt, ob beide Seiten jedes If/Else genommen wurden. Die Funktionsabdeckung verfolgt, welche Funktionen überhaupt aufgerufen wurden. Ein Werkzeug instrumentiert den Code, führt die Tests aus und meldet den Anteil, den die Tests tatsächlich berührt haben.
Die Zahl ist nützlich und leicht falsch zu lesen. Hohe Abdeckung sagt Ihnen, dass die Tests durch den Großteil des Codes laufen. Sie sagt nicht, dass die Tests das Richtige prüfen. Ein Test kann eine Funktion ausführen, nichts Sinnvolles behaupten und trotzdem zu 100% Abdeckung zählen. Das ist die Falle: Abdeckung misst Ausführung, nicht Korrektheit. Ein Zahlungsmodul bei 95% Abdeckung kann noch einen Bug ausliefern, wenn keiner dieser Tests den tatsächlich berechneten Betrag prüft. Abdeckung zeigt Ihnen, was nie getestet wurde, was echt wertvoll ist, doch eine grüne Zahl ist ein Boden, keine Garantie.
Den 100% nachzujagen lohnt sich selten. Der letzte Abschnitt heißt oft, Tests für triviale Getter und Fehlerzweige zu schreiben, die realistisch nie auslösen, was Zeit kostet und Lärm hinzufügt. Die meisten Teams setzen eine sinnvolle Schwelle, achten auf plötzliche Einbrüche, die ungetesteten neuen Code signalisieren, und stecken ihre echte Mühe darein, dass die wichtigen Pfade Tests haben, die etwas Lohnendes behaupten.
Wir nutzen Abdeckung als Signal, nie als Anzeigetafel. Ein Abdeckungsbericht ist in einer Sache gut: zu zeigen, welchen Code Ihre Tests nie berührt haben. So lesen wir ihn, schauen, was auf den Pfaden mit echtem Risiko fehlt, und schreiben Tests, die Verhalten prüfen, statt nur die Zeilen abzulaufen.
Wir jagen keiner Zahl um ihrer selbst willen nach, und das sagen wir einem Kunden, der 100% verlangt. Eine Suite, die getrickst wurde, um ein Ziel zu treffen, sieht beruhigend aus und schützt nichts. Unser automatisiertes Testen richtet die Abdeckung dorthin, wo ein Fehler wirklich wehtäte, die Geldflüsse und die Kernlogik, und hält sie ehrlich mit Zusicherungen, die echt scheitern würden, wenn der Code bräche. Der Sinn des Berichts sind weniger Bugs in der Produktion, kein hübscheres Dashboard.
Haben Sie eine hohe Abdeckungszahl, der Sie nicht recht trauen? Stellen wir sie auf die Probe.
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Eine Marke in ein funktionierendes Geschäft verwandeln.
Eine halbe Million Menschen. Eine App. Null Chaos.















