Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

heise conferences gmbh

(vormals SIGS DATACOM GmbH)

Rheinwerkallee 4, 53227 Bonn

Tel: +49 (0)511/5352-100

service-sigs@heise.de

Videoteaser: Warum vollständige Coverage keine Fehlerfreiheit garantiert - Roger Butenuth

100% Branch Coverage als persönliche Challenge: Richard Seidl spricht mit Roger Butenuth darüber, was passiert, wenn man dieses Ziel konsequent verfolgt und dabei peinliche Fehler aufdeckt, die man längst für unmöglich gehalten hatte. Butenuth berichtet von einer Sicherheitslücke in der Authentifizierung, die er erst durch die dritte Branch eines einfachen IF-Ausdrucks entdeckte, und von einem Listenfehler, der selbst die 100% unbeschadet überstand. Die beiden beleuchten, wie das Streben nach vollständiger Abdeckung den Code durch Dependency Injection und konsequentes Don't-Repeat-Yourself tatsächlich verbessert, und warum trotzdem gilt: garantierte Fehlerfreiheit gibt es nicht. Auch die Frage, ob eine Coverage-Metrik als Vorgabe überhaupt etwas bringt oder nur zum Betrügen einlädt, lässt Butenuth nicht offen.

Highlights:

  • 100% Branch Coverage schützt nicht vor allen Fehlern: Ein Off-by-One-Fehler in einer kopierten Methode überlebte die vollständige Testabdeckung, weil nur null und ein Schleifendurchlauf getestet wurden, nicht mehrere.
  • Eine Sicherheitslücke in der Authentifizierung, ein Variablenname statt zwei verglichen, fand Roger Butenuth nur, weil Branch Coverage alle drei Zweige einer zusammengesetzten Bedingung erzwingt, nicht bloß die Zeile.
  • Testbarkeit entsteht durch Codeänderungen: Dependency Injection und klare Interfaces ermöglichten es, I/O-Fehler und Standard-Output kontrolliert im Test auszulösen, ohne Hardware-Grenzen zu treffen.
  • Konsequentes Don't Repeat Yourself, erzwungen durch den Testaufwand für kopierte Zweizeiler, verbessert Lesbarkeit und Wartbarkeit, weil Änderungen nur noch an einer Stelle nötig sind.
  • Eine Coverage-Metrik als Vorgabe funktioniert nicht, weil Entwickler jede messbare Schwelle erfüllen können, ohne sinnvolle Assertions zu schreiben, was die Aussagekraft der auf null senkt.

((um das Video zu sehen, muss in den Cookies den Statistiken zugestimmt werden))

-> zum Video-Podcast in voller Länge

Author Image

Richard Seidl

Berater, Coach und Autor

Richard Seidl ist Berater, Coach und Autor. Er hat in seiner beruflichen Laufbahn schon viel Software gesehen: gute und schlechte, große und kleine, neue und alte. Software so schön, dass man weinen könnte, und auch solche, wo es Fußnägel aufrollt. Für ihn ist klar: Wer heute exzellente Software kreieren möchte, denkt den Entwicklungsprozess ganzheitlich: Menschen, Kontext, Methoden und Tools.

Zu Inhalten