Automatisierte Tests (IT)Testautomatisierer, Teamleiter QA

Wie implementiert man automatisierte Tests in ein bestehendes Projekt, wenn zuvor nur manuelles Testen verwendet wurde?

Bestehen Sie Vorstellungsgespräche mit dem Hintsage-KI-Assistenten

Antwort.

Die Implementierung automatisierter Tests in ein bereits bestehendes Projekt ist eine komplexe und mehrschichtige Aufgabe.

Historie der Frage: In Organisationen, in denen das Testen lange Zeit manuell durchgeführt wurde, entsprechen die Prozesse, Dokumentationen und der Code-Architektur nicht immer den Anforderungen für die Automatisierung. Tester haben keine Erfahrung mit Automatisierungstools, und die Architektur der Tests und der Anwendungen unterstützt möglicherweise keinen schnellen Start von automatisierten Tests.

Problem: Die wichtigsten Herausforderungen bei der Implementierung:

  1. Fehlende Automatisierungskultur: kein Erfahrung, keine Tools, keine Prozesse.
  2. Komplexität des Legacy-Codes: Schwierigkeiten bei der Integration von Tests, fehlende testbare Schnittstellen und stabile Struktur von Elementen.
  3. Fehlende Kriterien für die Priorisierung: Was sollte zuerst automatisiert werden, und wo wird der größte Effekt erzielt?

Lösung: Das Team sollte die folgenden Schritte durchlaufen:

  1. Bereitschaftseinschätzung: Identifizieren Sie die kritischsten und häufig wiederkehrenden manuellen Tests, die Zeitersparnis bringen.
  2. Pilotierung: Wählen Sie einen kleinen Block des Systems und implementieren Sie eine pilotierte Reihe von automatisierten Tests zur schnellen Überprüfung von Hypothesen.
  3. Schrittweise Implementierung: Erweitern Sie den Automatisierungsumfang schrittweise, während Sie das Team in der Automatisierung schulen, basierend auf dem Erfolg des Piloten.

Wichtige Merkmale:

  • Es ist vorteilhaft, die Automatisierung mit Regressionstests und "Smoke"-Tests zu beginnen.
  • Es ist wichtig, automatisierte Tests in den bestehenden Entwicklungsprozess zu integrieren (z.B. sie bei Pull-Requests auszuführen).
  • Es ist notwendig, die Kommunikation zu berücksichtigen – den Geschäftsbereich und die Tester über den Nutzen und die Einschränkungen der Automatisierung zu informieren.

Fangfragen.

Können automatisierte Tests das manuelle Testen vollständig ersetzen?

Nein. Selbst bei hoher Abdeckung sind automatisierte Tests nur für wiederholbare, deterministische Szenarien anwendbar. Nicht erkennbare Usability-Fehler, Exploration, Design-Mängel und atypische „menschliche“ Fehler werden normalerweise manuell festgestellt.

Muss man alle Test-Cases ohne Ausnahme automatisieren?

Nein. Nicht alle Test-Cases sind sinnvoll zu automatisieren: Niedrigfrequente oder komplexe Szenarien sollten aufgrund der Kosten und des geringen Gewinns für manuelles Testen reserviert werden.

Müssen Tester unbedingt Programmierer sein, um erfolgreich zu automatisieren?

Nein, aber ein grundlegendes Niveau an Programmierung ist wünschenswert. Das Team wird häufig auf der Verbindung aufgebaut: erfahrener Tester – Architekt der automatisierten Tests, Automatisierer – Entwickler.

Typische Fehler und Antipatterns

  • Der Versuch, sofort alles zu automatisieren, ohne Prioritäten zu setzen.
  • Unzureichende Kommunikation zwischen Manuell- und Automatisierern.
  • Auswahl von Tools „nach Gehör“, anstatt die Tools für das spezifische Projekt passende auszuwählen.
  • Fehlender Prozess zur Unterstützung und Aktualisierung von automatisierten Tests: „ausführen und vergessen“.

Beispiel aus dem Leben

Negativer Fall

Das Unternehmen entschied sich, alle manuellen Tests gleichzeitig zu automatisieren, ohne ein separates Team zu bilden und Prioritäten zu besprechen. Sie kauften ein trendiges Tool, aber es unterstützte nicht alle benötigten Browser. In der Folge hörte die Hälfte der Tests nach einem Quartal auf zu funktionieren.

Vorteile:

  • Schnelle erste Implementierung, Enthusiasmus des Teams.

Nachteile:

  • Hohe Kosten, schnelles Enttäuschung, Schulungskosten, schwache Abdeckung tatsächlich benötigter Szenarien.

Positiver Fall

Das Team wählte manuell die 10 häufigsten regressiven Szenarien aus. Sie führten eine Schulung zur Automatisierung mit Python (Selenium) durch, fügte Tests in CI hinzu. Nach sechs Monaten wurden 70 % der regressiven Prüfungen automatisch ausgeführt, die manuellen Tester beschäftigten sich mit kreativen Aufgaben.

Vorteile:

  • Tatsächliche Zeitersparnis, das Team wuchs in der Expertise, Verringerung des menschlichen Faktors.

Nachteile:

  • Kosten für die Aktualisierung automatisierter Tests bei Änderungen der Benutzeroberfläche, langwieriger Start.