Das Problem der technischen Schulden in automatisierten Tests wurde erstmals mit dem Anstieg der Automatisierung erkannt – als die Anzahl der Tests in die Hunderte und Tausende ging und ihre Wartung oft teurer war als die eigentliche Entwicklung, während architektonische Fehler zunahmen.
Zu Beginn der Automatisierung wurden Tests schnell geschrieben, oft ohne Muster, ohne Standards und ohne anschließende Refaktorisierung. Infolgedessen veralten die Repositories automatisierter Tests, brechen bei Änderungen der Anwendung und ihre Wartung erfordert immer mehr Aufwand.
Schlüsselmerkmale:
Ist ein hoher Prozentsatz an Codeabdeckung durch Tests ein Zeichen für das Fehlen technischer Schulden?
Nein, formale Codeabdeckung garantiert nicht die Qualität und Lebensfähigkeit der Testbasis: Es könnten veraltete oder „unnötige“ Tests vorhanden sein.
Reicht es aus, einmal Vorlagen für automatisierte Tests zu schreiben, um technische Schulden auszuschließen?
Nein, Infrastruktur und Muster erfordern immer eine Überprüfung und Weiterentwicklung im Laufe des Projekts.
Kann man vollständig auf manuelle Tests verzichten, wenn automatisierte Tests gut strukturiert sind?
Nein, es werden immer manuelle Smoke-/Regression-/Nischen-Tests benötigt, und automatisierte Tests sind notwendig, um die Stabilität der Funktionen regelmäßig zu überwachen.
Automatisierte Tests wurden ohne Review geschrieben, die Struktur änderte sich im Verlauf des Projekts, und einige Tests wurden irrelevant – 40% der Tests fielen aufgrund von Änderungen in der Anwendung aus.
Vorteile:
Nachteile:
Im Team wird alle zwei Wochen ein Review der automatisierten Tests und Refaktorisierung durchgeführt, die Architektur wird gemäß den angenommenen Standards unterstützt, und die Tests sind eng mit aktuellen User Stories verbunden.
Vorteile:
Nachteile: