Bei der Arbeit mit automatisierten Tests ist die richtige Struktur der Schlüssel zu ihrer Effizienz und Lebensfähigkeit.
Historie der Frage
Früher wurden Automatisierungstests oft als monolithische und eng miteinander verbundene Skripte erstellt. Dies machte sie schwer wartbar und erweiterbar. Der Anstieg der Anzahl von Tests stellte die Bedeutung einer durchdachten Architektur heraus.
Problem
Ohne klare Struktur treten folgende Probleme auf:
Lösung
Verwenden Sie klare Abstraktionslevels für Ihre Tests:
Eine gute Praxis ist es, zu verwenden:
# Beispielstruktur /tests /features test_order_creation.py /steps order_steps.py /pages order_page.py
Schlüsselmerkmale:
Was ist besser: lange End-to-End-Tests oder kurze modulare Automatisierungstests zu schreiben?
Oft werden nur End-to-End-Tests gewählt, aber es ist wichtig, verschiedene Testarten je nach Ziel zu kombinieren: Alle Ebenen (Unit, API, UI) sind wichtig für qualitativ hochwertige Prüfungen.
Kann man in Tests gleichzeitig UI-Prüfungen durch Text und Locator verwenden?
Das ist nicht immer korrekt: Es ist möglich, beide Methoden gleichzeitig zu verwenden, aber nur, wenn die Änderbarkeit des UI und die Logik des Tests dies rechtfertigen. Oft ist es überflüssig und erschwert die Wartung.
Sollte man die Struktur des getesteten Software-Systems beim Erstellen von Automatisierungstests vollständig kopieren?
Nein, die Struktur der Automatisierungstests sollte auf Testbenutzerfreundlichkeit und nicht auf eine exakte Duplikation der Anwendungsarchitektur ausgerichtet sein.
In einem Team schrieb eine Person die automatisierten Tests, die Tests waren in einer Datei, jeder Test kopierte die Schritte des vorherigen. Bei Änderungen der Benutzeroberfläche mussten Bugs manuell in allen Tests behoben werden.
Vorteile:
Nachteile:
In einem anderen Team wurde ein architektonisches Muster eingeführt (Trennung von Schritten, Seiten, Tests). Neue Mitarbeiter fanden sich schnell zurecht und führten neue Tests rasch ein, Aktualisierungen wurden an einem Ort vorgenommen.
Vorteile:
Nachteile: