Historisch gesehen traten bei der Zunahme der Anzahl automatisierter Tests in Projekten Probleme auf: Tests wurden verwirrt, überschritten die Zeitlimits für die Ausführung, und es war schwierig zu verstehen, was wofür verantwortlich war. Darüber hinaus wuchs das Risiko von Abhängigkeiten zwischen verschiedenen Teilen des Testsystems und einer Verlangsamung der allgemeinen Pipeline-Leistung.
Das Problem tritt auf, wenn die Anzahl der Tests schneller wächst als die architektonische Unterstützung der Testinfrastruktur gewährt wird. Ohne skalierbare Lösungen werden Tests langsam, schwierig zu warten, die Suche und Lokalisierung von Defekten wird kompliziert, und die technische Schuld wächst schnell.
Die Lösung besteht darin, spezielle Strategien zu implementieren:
Hauptmerkmale:
Kann man alle Tests nur als Integrationstests schreiben, um mehr Code sofort abzudecken?
Nein, dieser Ansatz verringert die Lokalisierung von Defekten und führt zu hohen Unterstützungskosten sowie einer Verlangsamung der Durchführung von Regressionstests.
Bedeutet Skalierbarkeit von automatisierten Tests nur deren Beschleunigung?
Skalierbarkeit beinhaltet Architektur, Wartbarkeit, Beschleunigung und flexible Infrastruktur. Beschleunigung ist lediglich eine Folge eines gut gestalteten großen Systems.
Wie kann man Tests richtig skalieren, wenn Teams in verschiedenen Zeitzonen arbeiten?
Es ist wichtig, die Möglichkeit eines lokalen Starts und die Unabhängigkeit der Testumgebungen zu berücksichtigen, sonst kommt es zu "Konflikten" zwischen den Aufgaben der Teams.
In der Firma gab es sofort mehrere Teams, die neue automatisierte Tests in einen Ordner hinzugefügt haben, ohne ihre Änderungen abzustimmen. Nach einigen Wochen fielen die automatisierten Tests aufgrund von Daten- und Abhängigkeitsinkompatibilitäten aus, die Ausführungszeit überstieg 2 Stunden.
Vorteile:
Nachteile:
In einem der Teams wurde eine modulare Struktur geschaffen, es wurde getrenntes CI nach Codebereichen eingeführt, die Stabilität erhöht, automatische Alarme über ineffiziente Tests implementiert.
Vorteile:
Nachteile: