Im ersten Teil der Serie „Mythen der Testautomatisierung“ haben wir beleuchtet, warum Testautomatisierung das manuelle Testen nicht ersetzen kann. Löst die Testautomatisierung alle Probleme die beim manuellen Testen auftreten? Diese und weitere Fragen beantwortet der zweite Teil der Serie.
Testautomatisierung löst alle Probleme
Der Kunde ist unzufrieden mit der Qualität des Produkts? Die Supporthotline läuft heiß, weil die Anwendung zu viele Defekte besitzt? Oft Ist der Irrglaube, dass Testautomatisierung eine Lösung für alle Problem, die im Softwaretestprozess auftreten, ist. Testautomatisierung bewältigt eine Anzahl von Herausforderungen, die bei manuellem Softwaretesten auftreten wie bspw.:
- Schnelles Feedback über die Qualität
- Kontinuierliche Ausführung (24/7)
- Parallele Ausführung
Doch automatisiertes Testen schafft auch neue Herausforderungen wie bspw.:
- Unzuverlässige Testfälle
- Erhöhter Wartungsaufwand
- Know How
Testautomatisierung soll als Unterstützung des Testprozess gesehen werden und nicht als Ersatz. Wenn die Testprozesse vor der Einführung von Testautomatisierung ineffektiv waren, wird sich das bei der Einführung von automatisierten Testfällen nicht entscheidend ändern.
Gute Testautomatisierung erfordert nur die Beherrschung von Testautomatisierungstools
Wie das gute englische Sprichwort heißt „a Fool with a Tool, is still a Fool“. Ein Testautomatisierungstool zu beherrschen, lernt man schnell. Wichtig ist es, eine solide Testautomatisierungsstrategie zu haben, die Fragen beantwortet wie:
- Welche Testfälle werden automatisiert und auf welcher Teststufe?
- Wer implementiert die Testautomatisierung?
- Wer ist der Verantwortliche für die Testautomatisierung?
- Wann werden die automatisierten Testfälle ausgeführt?
Testautomatisierung ermöglicht es, Personal einzusparen
Eine große Anzahl an Verantwortlichen erhoffen sich Kostenersparnisse, indem sie die Testfälle automatisieren. Wie der erste Artikel „Mythen der Testautomatisierung“ schon klargestellt hat, gibt es einen Unterschied zwischen Testen und Checken. Die Testautomatisierung kann keinen guten Softwaretester ersetzen, sondern nur seine Arbeit unterstützen. Das Hauptziel optimaler Testautomatisierung ist es nicht, Personal zu sparen, sondern eine höhere Testabdeckung zu erreichen. Durch die Automatisierung von Testfällen haben die Softwaretester Zeit, sich auf die wichtigen Risiken des zu entwickelnden Produkts zu konzentrieren.
„End-2-End Testfälle sind unnötig“ versus „Wir automatisieren alles als End-2-End Testfall“
Automatisierte End-2-End Testfälle (Systemtests) sollten vermieden werden, End-2-End Tests testen die ganze Anwendung meist über die Benutzeroberfläche. Dies führt dazu, dass die automatisierten Testfälle langsamer und wartungsaufwendiger sind. Seit einigen Jahren wird propagiert, dass automatisierte End-2-End Tests deswegen vermieden werden sollen. End-2-End Testfälle haben jedoch ihre Daseinsberechtigung. Sie beantworten die Frage: „Kann der Nutzer die gewünschten Aktionen oder das Szenario ausführen?“. End-2-End Tests können in den meisten Fällen parallel ausgeführt werden, was das Argument der langsamen Ausführung von End-2-End Testfällen zum Teil revidiert. Durch den Einsatz von Design-Patterns kann man den Wartungsaufwand reduzieren. Wichtig ist es, eine optimale Verteilung der automatisierten Unit-Tests, Integrationstests und End-2-End Tests zu erreichen.
Wir können alles als automatisierten End-2-End Testfall implementieren, deswegen machen wir das. End-2-End Testfälle sind nicht darauf fokussiert, um Fehlerzustände in einzelnen Komponenten oder in der Businesslogik zu identifizieren. Wenn eine Fehlerwirkung auftritt, dauert es oft lange, bis der Fehlerzustand identifiziert ist. Ein Testfall ist eine Frage, die wir der Anwendung stellen. Um so präziser unsere Frage, desto genauer sind die Informationen, die wir erhalten. Ein automatisierter Testfall sollte in der Regel eine konkrete Frage beantworten. Wenn ich Fragen zur Businesslogik habe, ist es meist fokussierter dies über die API zu machen. Will ich wissen, ob die einzelnen Komponenten den Anforderungen entsprechen, ist es meist fokussierter, dies auf der Unit-Test-Stufe zu tun.
Fazit
Der Testprozess sollte vor der Einführung von Testautomatisierung optimiert sein. Automatisierte Testfälle sollen das manuelle Testen nicht ersetzen, sondern unterstützen. Testautomatisierung soll in erster Linie nicht Personal einsparen, sondern eine höhere Testabdeckung ermöglichen. Automatisierte Testfälle sollen fokussiert sein.
Tutorials im Bereich Testautomatisierung von Webanwendungen, mobilen Anwendungen und Webservices findest Du im Bereich: Testautomatisierung & Softwaretest Tutorials und auf unserem YouTube-Kanal: Testautomatisierung – Gewusst Wie
Hinterlasse eine Antwort