Testautomatisierung
Warum Testautomatisierung?
Analysiert man die aktuellen Situationen der Softwareschmieden, stellt man unweigerlich fest, dass es bei fortgeschrittenem Projekt und -Softwarekomplexität kaum noch möglich ist, einen ausreichenden Grad an Qualitätssicherung durch manuelles Testen sicherzustellen.
Diese sogenannten Seiteneffekte lassen sich mit manuellen Testaufwänden kaum identifizieren, bzw. nur unter hohem Aufwand. Hinzukommt, dass im Laufe des Softwarelebenszyklus konstant Testfälle hinzukommen und auch wiederholt werden müssen (Regressionstests). Das Ergebnis ist eine exorbitante Anzahl von Testfällen. Hierfür Personal einzusetzen ist aus ökonomischer Sicht schlichtweg unwirtschaftlich.
Führt ein manueller Tester jeden Tag bzw. alle paar Tage die gleichen Regressionstests aus, kann man sicherlich eine gewisse Betriebsblindheit unterstellen. Bei einer solchen Vorgehensweise ist es nur verständlich das man mal etwas übersieht. Dies liegt in der Natur der Sache. Wir sind nun mal Menschen und keine Maschinen. Diese Umstände führen unweigerlich zu einer Art Abwärtsspirale des Qualitätsniveaus. Grundsätzlich spricht eine hohe Anzahl an Regressionstests für eine Testautomatisierung.
Diesem Problem ließe sich durch Ausbau, Rotation und Skalierung des Testteams entgegenwirken, jedoch nicht vollständig beseitigen. An dieser Stelle kommt die Testautomatisierung ins Spiel.
Die Qualitätskontrolle ist ein angeknüpfter Servicebaustein des Produktionsprozesses. Diese muss begleitend und entsprechend den Fortschritten der Entwicklung, automatisiert stattfinden. Empirische Forschungen und unsere persönlichen Erkenntnisse bestätigen, dass es nach Änderungen einer bestehenden Software immer wieder passiert, dass sich Fehler einschleichen welche zuvor bereits erfolgreich eliminiert wurden.
Was ist Testautomatisierung?
Der Begriff der (Software-)Testautomatisierung bezeichnet im Groben die Automatisierung der verschiedenen Testaktivitäten. Dabei werden mit auf dem Markt befindlichen Werkzeuge oder individuell entwickelter Tools ein Softwareprodukt getestet.
Diese Automatisierungswerkzeuge befehligen die zu testende Software und steuern diese somit. Das Ansteuern der Software erfolgt dabei systematisch und nach etablierten Methoden. Nach jedem Prüfschritt werden Verifikationspunkte ausgewertet. Dadurch kann sichergestellt werden, dass das Ergebnis auch den Vorgaben und damit dem erwarteten Verhalten entspricht.
Werden Abweichungen registriert, wird ein negatives Testergebnis inkl. Fehlerprotokoll zurückgegeben. Man unterscheidet verschiedene Level, an denen eine Testautomatisierung aufsetzen kann:
- Tests auf einer grafischen Benutzeroberfläche
- Schnittstellen-Tests (z.B. HTTP, REST)
- Unit-Tests (Codeebene – Modultests & Komponententests genannt)
Befindet sich eine Software beispielsweise in ihrer Anfangsphase, bei der sie sich sehr stark und oft ändert, kann eine Testautomatisierung auch hinderlich sein. Durch die permanenten Änderungen an der Software resultieren bei der Testautomatisierung nicht zu unterschätzende Wartungsaufwände.
Gerade in der Agilen Softwareentwicklung (CI-Continuous Integration und CD-Continuous Delivery), kann und sollte auf automatisierte Tests nicht verzichtet werden. Unit-Tests und Headless-Tests lassen sich in den automatischen Build-Prozess integrieren und helfen bei kurzen Iterationen oder jedem Code-Check-In lassen sich schnelle Ergebnisse und somit Rückschlüsse auf die Softwarequalität schließen.
Testservices für:
- Testmanagement
- Coaching von Projektmitarbeitern
- Testautomatisierung
- Security Awareness Schulungen
- Penetrationstest
- Barrierefreiheitstest
Was sind die Ziele der Testautomatisierung im Vergleich zum manuellen Testen?
- Sicherstellung einer dauerhaft hohen Qualität des Produkts
- Effizientes Arbeiten und Kostenersparnis durch Zeitgewinn
- Schnelle Analyse und Rückmeldung zur Softwarequalität
- Aufspüren von Seiteneffekten die durch Fehlerbehebung oder Neuimplementierung hinzugekommen sind
- Kostenersparnis durch Verkürzung der Entwicklungszeit aufgrund früher gefundenen Fehler
Testservices für:
- Testmanagement
- Coaching von Projektmitarbeitern
- Testautomatisierung
- Security Awareness Schulungen
- Penetrationstest
- Barrierefreiheitstest
Braucht es den manuellen Test dann noch?
Testservices für:
- Testmanagement
- Coaching von Projektmitarbeitern
- Testautomatisierung
- Security Awareness Schulungen
- Penetrationstest
- Barrierefreiheitstest
Werden manuelle Tests dann noch benötigt?
Bei Softwareänderungen ist es nötig Änderungen im Testskript vorzunehmen. Es kann passieren, dass das Testskript zwar noch durchläuft, aber nicht mehr alles korrekt prüft.
Die Testarchitektur
Proof of Concept
Mit einem PoC gewinnt man relevante Erkenntnisse für weitere Entscheidungen auf Anbieter und Kundenseite und erhält erste Einblicke in die technische Leistungsfähigkeit des eingesetzten Automatisierungstools unter Kundenbedingungen
Umsetzung der Testautomatisierung
Testautomatisierungs-Experten helfen Ihnen, eine funktionierende und wartbare Testautomatisierung für Ihr Projekt zu erstellen oder eine vorhandene Automatisierung auszubauen.
Reporting
Um den aktuellen Stand der Qualität einschätzen zu können, wird ein Reporting benötigt. Dies gilt für das manuelle Testen, aber noch mehr für das automatisierte Testen, da diese Einschätzung hier alleine nicht ausreichen. Es müssen Daten, wie Tabellen, Diagramme und Statistiken, geliefert werden.
Test Automation Engineer
Sie fragen sich, wer die Testautomatisierung durchführt bzw. diese entwickelt? Ein Softwaretester, eine Softwareentwicklerin? Die Entwicklung der Testskripte ist eine Aufgabe, die zwischen dem Testbereich und der Entwicklung verortet werden kann. Deshalb gibt es hierfür auch eine neue Rolle:
Der Test Automation Engineer.