© Ekaphon maneechot/Shutterstock.com
Wie manuelle Softwaretests durch eine wirtschaftlichere Testautomatisierung abgelöst werden können

Qualitätsautomaten


Die Testautomatisierung hat nicht ohne Grund in den letzten Jahren immer mehr Aufmerksamkeit gewonnen: Sie bietet den Vorteil, sich wiederholende Tests schnell und unkompliziert durchzuführen. Gerade im Bereich der Produktentwicklung, aber auch im Rahmen komplexer Anwendungen mit einer hohen Anzahl von Abhängigkeiten und Plausibilitäten zahlt sich das aus. Dieser Artikel skizziert anhand eines praktischen Beispiels, was Testautomatisierung ist, wie eine Automatisierung eingeführt werden kann, und gibt Unternehmen, die bereits automatisierte Tests verwenden, einen Einblick, wie ein praxiserprobtes Framework bei der Entwicklung von Tests helfen kann.

Der Begriff „Testautomatisierung“ beinhaltet den „Einsatz von Softwarewerkzeugen zur Durchführung oder Unterstützung von Testaktivitäten, z. B. Testmanagement, Testentwurf, Testausführung und Soll/Ist-Vergleich.“ [1]. Um den Nutzen darzustellen, möchte ich ein einfaches Beispiel verwenden: Ein Kunde benötigt eine Adressverwaltung für seine Mitarbeiter. In dieser Applikation können vorerst die Namen, Adressen und Telefonnummern der Angestellten gespeichert, bearbeitet und gelöscht werden. Zugang erhält man nur durch seine User-ID und Passwort. Entsprechend der zugeordneten Rolle besteht die Möglichkeit, verschiedene Funktionen zu nutzen. So kann ein einfacher User nur die Daten sehen, während die Personalabteilung die Daten ändern und ggf. löschen kann, zum Beispiel wenn ein Mitarbeiter umzieht oder aus dem Unternehmen ausscheidet. Ziel des Kunden ist es, aus dieser Adressverwaltung langfristig ein Tool zu entwickeln, mit dem die Personalabteilung alle laufenden Geschäftsprozesse durchführen kann, vom Druck neuer Arbeitsverträge bis hin zur Gehaltsabrechnung. Dazu werden verschiedene Stufen der Applikation konzeptualisiert, entwickelt und auch getestet. Mit jedem neuen Release wächst also die Funktionalität dieses Tools, die aber keinen Einfluss auf bereits vorhandene Funktionen haben darf. Selbst kleine Änderungen können dazu führen, dass komplette Systeme neu getestet werden müssen. Dies ändert sich mit der Testautomatisierung nicht, jedoch wird der Aufwand des Testens erheblich reduziert. Wie dies konkret aussehen kann, möchte ich Ihnen im Folgenden darstellen.

Vorbedingung

Als Erstes möchte ich Ihnen die Strukturen der Testautomatisierung etwas näher erläutern. Eine Applikation, wie die oben genannte Adressverwaltung, besteht aus verschiedenen Masken und Funktionen. Die Masken wiederum bestehen aus verschiedenen GUI-Elementen, wie Textfeldern, Comboboxen, Buttons, Links, Tabellen usw. Für jedes Anwendungsobjekt auf jeder Oberfläche definiert man ein Testobjekt. Dabei empfiehlt es sich, die Unterteilung der Testobjekte mithilfe der Masken vorzunehmen. Dadurch entsteht eine Baumstruktur, die je nach Komplexität, zum Beispiel durch die Anzahl von Panels oder Webtables, verschieden tiefe Zweige hat. Der wichtigste Aspekt ist aber die eindeutige Identifizierung der Testobjekte, bei denen die Entwickler unterstützen können, müssen, sollen. Nur durch die Eindeutigkeit der Testobjekte ist ein stabiles Ausführen der Automatisierung möglich. Bei Webapplikationen können Sie dafür beispielsweise das Tag id verwenden. Die Identifizierung der Testobjekte mithilfe von Indizes oder Koordinaten ist kein guter Ansatz. Früher oder später werden hier Anpassungen nötig sein, die den Aufwand enorm in die Höhe treiben können und somit Kosten verursachen.

Aufbau eines Frameworks

Zum Framework gehören nicht nur die Testobjekte, sondern auch verschiedene Bibliotheken, die aus Funktionen bestehen, sowie die Testdaten, die zur Ausführung der Tests notwendig sind. Ein Framework hilft Ihnen dabei, den Ablauf des Tests von der Logik und den Testdaten zu trennen und getrennt zu bearbeiten. Ein schönes Beispiel hierfür ist das „Login“ in unserer Adressverwaltung: Als erstes wird das Starten des Systems, zum Beispiel durch das Ausführen einer Startdatei oder den Aufruf eines URL automatisiert. Die zweite Funktion trägt den Usernamen und das Passwort in die Startmaske ein und bestätigt die Eingaben. Die Anmeldung soll nur dann erfolgreich sein, wenn das Passwort auch zu dem Usernamen passt. Für dieses Beispiel ist zu prüfen, ob wir uns korrekt anmelden können und wie sich die Applikation bei Fehleingaben verhält. Durch das Auslagern der Testdaten kann der Test mit allen möglichen Variationen iterativ durchgeführt werden. Weiterhin können Sie Änderungen im Ablauf tätigen, ohne die L...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang