Testautomatisierung

Bei der Testautomatisierung handelt es sich um ein Verfahren, Softwaretests mit Hilfe von Analysesoftware automatisch zu testen. Durch die Automation können Entwicklungsprozesse verkürzt und die Qualität der Software erhöht werden. Häufig wird die Testautomatisierung mit Agile Methoden kombiniert.

Hintergrund

Software muss immer größeren Anforderungen gerecht werden und zum Beispiel große Datenmengen wie Big Data verarbeiten. Gleichzeitig steigen die Erwartungen von Nutzern hinsichtlich Usability und Funktionalität. Softwareentwicklung ist demnach in hohem Maße auf Tests angewiesen, um die hohe Qualität zu sichern und gleichzeitig den Entwicklungsprozess so schnell wie möglich zu gestalten.

Eine Lösung für diese Anforderungen stellt die Testautomatisierung dar. Sie ermöglicht, dass Tests zum Beispiel parallel zur Entwicklung laufen können.

Zweck der Testautomatisierung

Mit der Testautomatisierung im Rahmen der Softwareentwicklung können zwei Ziele erreicht werden. Zum einen lässt sich der Entwicklungsprozess massiv beschleunigen. Zum anderen kann die Software-Qualität erhöht werden, da die Testabdeckung deutlich höher ist als bei manuellen Einzeltests.

Insbesondere bei umfangreicher Software kann die Testautomatisierung ihre Vorteile ausspielen, da manuelle Tests bei komplexen Systemen sehr aufwändig und somit zeit- und kostenintensiv wären.

Bestandteile des automatisierten Testverfahrens

Die Testautomatisierung selbst basiert auf einem Testskript, das wiederum erst entwickelt werden muss.

Im ersten Schritt wird deshalb geprüft, ob eine Automatisierung überhaupt möglich ist. In manchen Fällen kann es erforderlich sein, das Testobjekt selbst anzupassen, damit es automatisiert per Software geprüft werden kann.

In einem zweiten Schritt wird die Testarchitektur für die automatisierten Tests erstellt. Diese Architektur hat in der Regel die Form einer typischen Testpyramide. Auf der untersten Stufe finden sich Unittests oder automatisierte Testverfahren für einzelne Komponenten der Software. In diesem Segment ergeben automatisierte Tests sehr viel Sinn, da die auf diesen Tests aufbauenden weiteren Entwicklungsschritte so schneller erfolgen können.

Nachdem erste Tests automatisiert erfolgt sind, muss die Automatisierung meist angepasst werden, da sich das Testobjekt mittlerweile weiterentwickelt hat. Entsprechende Anpassungen müssen dann am Testskript vorgenommen werden.

Um zu kontrollieren, ob die Tests erfolgreich sind, wird mit der Testautomatisierung ein eigenes Reporting eingerichtet.[1]

Arten von Testautomatisierungstools

Tools zur Testautomatisierung können je nach Ausführung für unterschiedliche Bereich der getesteten Software verwendet werden.

  • Auf Funktionen bezogene Testautomatisierung: Mit diesen Tools wird gezielt eine bestimmte Funktion innerhalb einer Software automatisch getestet.
  • Unit Tests: In diesem Fall bezieht sich der Software-Test auf einzelne Einheiten des Programms oder der Anwendung.
  • Performance Tests: Diese Tools analysieren und testen die Leistung der Software, zum Beispiel die Ladegeschwindigkeit.
  • Bug Tracker: Diese Testautomatisierung sucht und protokolliert mögliche Bugs im System.
  • Testmanagement Software: Diese Programme helfen dabei, mehrere automatisierte Testverfahren zu koordinieren und zu verwalten.

Kritik

Automatisierte Skripte zum Testen von Software haben den Vorteil, dass das System keine Ermüdungserscheinungen wie menschliche Tester aufweist. Die Testautomatisierung kann Tage oder Wochen kontinuierlich erfolgen, ohne dass die “Konzentration” nachlässt. Allerdings kann ein Testskript jedoch selbst fehlerhaft sein. Durch die Automatisierung wird dieser Fehler dann immer wieder ausgeführt. Somit spielt auch trotz hohem Automatisierungsgrad der Faktor Mensch immer noch eine zentrale Rolle. Dies gilt zum Beispiel insbesondere, wenn sich die zugrunde liegende Software ändert. Dann muss auch die Testroutine entsprechende angepasst werden. Somit eignet sich die Testautomatisierung zum Beispiel weniger in der Anfangsphase von Softwareprojekten, wenn noch viele Änderungen und Anpassungen zu erwarten sind.

Die Testautomatisierung ist immer nur so gut, wie diejenigen, die sie programmiert haben. Denn diese Systeme basieren in der Regel nicht auf selbstlernenden Algorithmen oder Künstliche Intelligenz, sondern nur auf den Daten, die Entwickler selbst erstellt haben.

Menschliche Softwaretester haben an dieser Stelle den Vorteil, dass sie über die eigentliche Aufgabe hinaus mögliche Fehler entdecken können. Darüber hinaus bringen Tester eigene Erfahrung mit und sind sensibilisiert für mögliche Fehlerquellen.

Aus diesem Grund wird die Testautomatisierung meist als Ergänzung zu bestehenden manuellen Tests eingesetzt. Sie kann zum Beispiel in Teilbereichen der Software die Qualitätskontrolle übernehmen, bis das komplette Produkt später vor dem Release von menschlichen Entwicklern abgenommen wird.

Nutzen für Softwareentwickler und Unternehmen

Die Testautomatisierung bringt für Unternehmen vor allem einen hohen Zeitgewinn. Dadurch lassen sich Software oder Anwendungen schon früher einsetzen. Gleichzeitig ermöglicht die Automatisierung von Softwaretests eine Kosteneinsparung, denn es wird dank kontinuierlicher und einheitlicher Testvorgänge weniger Entwicklungs- und somit Kostenaufwand erforderlich.

Ihre Vorteile spielt die Testautomatisierung auch bei der Verfügbarkeit aus. Denn diese Systeme lassen sich rund um die Uhr nutzen. Das Testsetting ist jederzeit aktiv und kann Ergebnisse liefern. Darüber hinaus können die Tests problemlos wiederholt werden. Die hohe Verfügbarkeit kann zusätzlich die Kundenzufriedenheit erhöhen. Im Vergleich zum Menschen “ermüdet” Testautomatisierungssoftware nicht. Damit reduziert sich die Zahl von Testfehlern.

Die Automatisierung erfordert nur geringe Entwicklerressourcen. Softwareentwickler stehen dann für andere Aufgaben zur Verfügung. Dank der automatisierten Prozesse lassen sich selbst große Datenmengen einfacher analysieren.

Einzelnachweise

Weblinks