Als Entwickler würde man am liebsten nur isolierte Unittests schreiben. Doch leider liefert eine derartige Testsuite selbst bei hoher Testabdeckung nur mäßig realistische Aussagen zur Funktionsfähigkeit des Gesamtsystems im Zusammenspiel der Einzelteile. Man benötigt also zusätzich integrativere Testarten wie Komponenten- oder Systemtests. Doch diese bringen wiederum andere Probleme mit sich.
Bei automatisierten End-To-End-Tests verschärft sich die Situation noch, da angebundene Dritt-(Test-)systeme meist nicht einfach vom eigenen Team beeinflusst werden können, man aber trotzdem von deren Release- und Deployment-Zyklen, Verfügbarkeit und Testdaten abhängt. So schlägt der CI-Job oft fehl, obwohl die eigentliche Software unter Test korrekt funktioniert.
Jede Testart hat Ihre eigenen Stärken und Schwächen und so stellen sich die Fragen:
Bei der Klärung der Fragen helfen
Der Vortrag entwickelt ein ganzheitliches Bild davon, wie sich die verschiedenen Arten automatisierter Tests gegenseitig ergänzen, in Entwicklungsprozess, Continuous Deployment Pipeline und Architektur einfügen und was lieber ein manueller Tester übernehmen sollte. Diese “Landkarte der Testarten” hilft dabei, eine effektive Testautomatisierungsstrategie für das eigene Projekt zu entwickeln, bei der Aufwand und Nutzen über den ganzen Lebenszyklus der Anwendung in einem vernünftigem Verhältnis stehen.
David Völkel arbeitet als IT-Consultant für die codecentric AG. Ihn begeistern Softwaredesign im Kontext testgetriebener Entwicklung. Als bekennender “software craftsman” ist er in der Softwerkskammer aktiv.