Testautomatisierung steht für die Entlastung der Tester von manuell durchzuführenden Testaktivitäten. Dies kann einerseits die automatisierte Eingabe von Daten sein, die zur Abarbeitung eines Testfalles notwendig sind oder auch die vollautomatisierte Abarbeitung von mehreren Testfällen.
Testautomation ist eine Langzeit-Investition in eine Softwareentwicklung, die die bisherigen manuellen Tests ergänzt bzw. ersetzt und den Entwicklungsprozess letztendlich beschleunigt.
Automatische Testdurchführungen machen für Entwickler und für Tester eine Software bezüglich ihrer Qualität einfacher messbar und zeigen mögliche Nebeneffekte und Folgefehler von vorgenommenen Änderungen direkt und erkennbar an.
Aus organisatorischer Sicht ist es notwendig, dass für automatisierte Tests eine separate Benutzerkennung genutzt und protokolliert wird.
Unter Testautomatisierung ist die Verwendung eines Softwarewerkzeuges unter definierten Vorbedingungen zur maschinellen Durchführung oder Steuerung von Testaktivitäten zu verstehen und diese anschließend danach mit den erwarteten Testergebnissen zu vergleichen (Soll/Ist-Vergleich). |
Eine Durchführung von automatisierten Tests kann prinzipiell parallel in derselben Testumgebung durchgeführt werden, in der auch manuelle Tests durchgeführt werden.
In den Fachbereichen besteht im Wesentlichen nur noch die Erfordernis zu fachlichen Sichtprüfung sowie zum Testen von nicht automatisierten Rest-Funktionalitäten.
Um eine erfolgreiche Testfallautomatisierung erstellen zu können müssen in den Testfällen genaue Informationen zu den einzelnen auszuführenden Aktionen beschrieben – die nach Fachlichkeit und Technik zu trennen sind – beschrieben werden.
Für eine Testfallautomatisierung ist es weniger wichtig, dass möglichst viele Varianten des gleichen Workflows mit unterschiedlichen Daten beschrieben werden sondern vielmehr eine Beschreibung von unterschiedlichen Workflows. Die Ausführung von Tests mit verschiedenen Daten sollte von daher erst bei der Zusammenstellung der Testfälle beschrieben werden.
Die folgenden Aktivitäten können grundsätzlich toolunterstützt durchgeführt werden |
» Testfallerstellung |
» Testdatenerstellung |
» Testskripterstellung |
» Testdurchführung |
» Testauswertung |
» Testdokumentation |
Automatisierte Tests sind eine Komponente in modernen Softwareentwicklungsprozessen, insbesondere wenn es darum geht, die Effizienz, Genauigkeit und Wiederholbarkeit der Tests zu verbessern. Diese Tests werden genutzt, um manuelle Fehler zu minimieren und die Testabdeckung in großen und komplexen Systemen zu erweitern.
Ziel ist die Entlastung der Tester von repetitiven, zeitraubenden Aufgaben durch spezialisierte Testtools. Beispielsweise kann das Anlegen eines Kontos automatisiert werden, um die Basis für weitere Testfälle zu schaffen. Dies erhöht die Qualität der Eingaben und reduziert die Fehleranfälligkeit.
Vollautomatische Testtools führen komplexe Testfälle ohne menschliches Eingreifen durch, vergleichen Ergebnisse automatisch mit den Soll-Werten und generieren entsprechende Berichte. Diese Automatisierung führt zu einer erheblichen Zeitersparnis und erhöht die Konsistenz der Testausführung.
Durch die Implementierung automatisierter Tests können Teams schneller und mit höherer Qualität entwickeln, Fehler frühzeitig erkennen und effizienter auf Änderungen reagieren.
Methodische Testfallermittlung |
Applikationsanalyse |
Erstellung Datenbankmodell/ Regelmatrix |
|
Abstimmungen mit Fachbereich(en) |
|
Definition und Koordination Vertragsdatenbereitstellung |
|
Testautomation |
Konzeption Testautomation mit zentraler Testdatenhaltung |
Erstellung Testskript / Framework zur Testdatensteuerung |
|
Ergebnisverifikation |
|
Regressionstest |
Eine Testautomatisierung zielt grundsätzlich auf die Automatisierung von Regressionstestfällen, welche künftig erneut für eine Ausführung im (jeden) Release notwendig erscheinen.
Kriterium |
Beschreibung |
Stabilität Testobjekte |
Eine Automatisierung ist wirtschaftlich und aus Testsicht nur in den Systemteilen sinnvoll, die eine hohe Anwendungsreife (d.h. es werden keine großen Systemänderungen erwartet) sinnvoll. |
Release Planung |
Für Funktionen, die in einem kommenden Release entfernt oder umfangreicher geändert werden sollen, lohnt sich unter dem Aspekt einer Return-Of-Invest (ROI) eine Testfallautomatisierung nicht. |
Testdaten |
Testdaten müssen ausschließlich einem automatisierten Test zugeordnet werden können. Eine Störung durch parallele Nutzung der Testdaten im manuellen Test muss daher durch geeignete Maßnahmen verhindert werden können. |
Testumgebung |
Eine automatisierte Ausführung von ausgewählten Tests erfordert die Verfügbarkeit einer geeigneten Testumgebung. |
Testfokus |
Testfallautomatisierungen sind insbesondere für Funktionstest oder Funktionskettentest - mit Einschränkungen auch für einen User Acceptance Test - geeignet. |
Drittsysteme |
In Drittsystemen werden oft eigene Daten vorgehalten. Dadurch wird es erschwert, dass über alle Systeme konsistente Daten für eine Testfallautomatisierung zur Verfügung stehen können.
Von daher sind die Testfälle für eine Testfallautomatisierung so auszuwählen, dass die Anzahl der notwendigen Drittsysteme möglichst gering gehalten wird. |
Testfallermittlung |
Methodisch ermittelte Testfälle eignen sich (aufgrund einer allgemein höheren Qualität) grundsätzlich eher zur Testfallautomatisierung als intuitiv ermittelte Testfälle.
Dennoch kann es vorkommen, dass auch intuitiv ermittelte Testfälle von sehr guter Qualität sind und sich damit auch für eine Testfallautomatisierung eignen. |
Manuelle Ausführung |
Um eine Reife für eine Testfallautomatisierung nachzuweisen, muss ein Testfall bereits manuell erfolgreich getestet worden sein.
In diesem Zusammenhang sollte eine Risikoanalyse durchgeführt werden. Bevorzugt sind die Testfälle zur Automatisierung auszuwählen, die bei hoher Kritikalität eine möglichst niedrige Komplexität (Komplexitätsbewertung) aufweisen. |
Genauigkeit der Testfallbeschreibung |
Eingabeparameter und erwartete Ergebnisse von Testfällen, deren Testfalldurchführung automatisiert werden soll, sind so genau zu beschreiben, dass eine fachfremde Person ohne Fachwissen die Testfälle ausführen könnte.
Je höhere die Detaillierung von Testfallbeschreibungen ist, umso mehr wird die Testfallautomatisierung erleichtert. |