Eine sorgfältige Versionierung und Integration von Automatisierungstests ist entscheidend, um sicherzustellen, dass die Überprüfung dem aktuellen Stand des Projekts entspricht.
Geschichte der Fragestellung
Automatisierungstests wurden anfangs oft separat vom Hauptprojekt geführt, was zu Inkompatibilitäten und Wartungsproblemen führte. Die Entwicklung mehrerer Branches, häufige Software- und Testveröffentlichungen — erforderten ein gemeinsames Versionskontrollsystem.
Problem
Ohne Versionierung und abgestimmte Integration entstehen:
Lösung
Ein moderner Ansatz:
# Allgemeiner Ansatz: git checkout -b feature/new_login # Funktion und Tests werden gemeinsam entwickelt und getestet # Nach der Überprüfung werden sie gemeinsam in den Hauptbranch gemergt
Wichtige Merkmale:
Können Tests in einem separaten (vom Projektcode) Repository gespeichert werden?
Ja, aber dann wird es schwieriger, die Aktualität der Tests zu gewährleisten, man benötigt manuelle Synchronisierung und es besteht das Risiko, bei der Veröffentlichung oder Bugfixierung etwas "zu vergessen" zu aktualisieren.
Müssen die Tests sofort die gesamte neue Funktionalität bei der Erstellung eines PR abdecken?
Idealerweise — ja, praktisch decken sie häufig die MVP/Hauptezenarien im ersten PR ab, während komplexere Fälle als separate Aufgaben behandelt werden. Wichtig ist, dass die kritische Funktionalität sofort abgedeckt ist.
Kann man nur die Teständerungen ohne Code-Rückgängigmachung zurücksetzen?
Wenn Tests und Code in demselben Branch sind — ja, man kann Revisionen zurücksetzen. Aber es ist besser, "Rücksetzern" von Tests ohne Code zu vermeiden: das verschlechtert die Qualität der Überprüfung.
Projekt mit separatem Repository für Automatisierungstests. Nach der Veröffentlichung haben die Programmierer "vergessen", die Tests zu aktualisieren — die Tests fielen aus, es wurden veraltete Überprüfungen durchgeführt, Bugs wurden in Produktion gefunden.
Vorteile:
Nachteile:
Tests und Projektcode werden im selben git-Branch geführt: Bei jedem neuen Pull Request werden die Automatisierungstests für den hinzugefügten Code unbedingt aktualisiert. Alle Änderungen durchlaufen Code-Review und automatische Überprüfungen.
Vorteile:
Nachteile: