Prüfungskommission

Das Testen von Software wird durch komplexere Programme und kürzere Markteinführungszeiten immer wichtiger. Werkzeuge, die Routineabläufe automatisiert durchführen, können Testzeiten stark verkürzen.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Thomas J. Heistracher
  • Michael Thalmeier
  • Tobias Witek
  • Stefan Zeppetzauer

Software-Tests sind notwendig, um die Qualität eines Produktes sicherzustellen, doch die Arbeit ist meist wegen der aufzuwendenden Mühe und Zeit ungeliebt [1]. Zudem wächst der Aufwand für Tests mit dem Funktionsumfang eines Produkts.

Aus diesen Gründen beschränkt sich die Qualitätskontrolle nicht selten auf einen isolierten Gesamttest am Ende der Entwicklung, was das Potenzial begleitender Tests unausgeschöpft lässt. Das kontinuierliche Prüfen bietet die Möglichkeit, einerseits die Produktqualität zu erhöhen und andererseits die Kontrollen enger in den Entwicklungsprozess einzubinden. Mehr dazu ab Seite 42. Allerdings stellt sich die Frage, ob das Ergebnis den zusätzlichen Aufwand rechtfertigt. Eine positive Antwort darauf wollen automatisiert testende Software-Lösungen geben, mit denen sich Routinearbeiten schnell und effizient erledigen lassen. In diesem Zusammenhang heißt das getestete Produkt oder System oft AUT (Application Under Test), um eine klare Unterscheidung zwischen der Testsoftware und dem untersuchten Programm zu ermöglichen.

Zur Testerstellung dienen meist Aufzeichnungs- und Wiedergabefunktionen (Capture, Replay). Der Benutzer führt den Ablauf einmal von Hand vor, damit ihn die Testsoftware aufnehmen und später automatisch wiederholen kann.

Für die funktionale Prüfung muss hingegen meist der Ersteller der Tests Hand an das automatisch erzeugte Skript legen. Die Art und Weise, wie sie die oben genannten Anforderungen erfüllen, variiert zwischen den Werkzeugen. Im Rahmen eines Projektes an der FH Salzburg mit der Salzburger Firma COPA-DATA GmbH verglichen die Autoren vier Softwaretest-Werkzeuge anhand ausgewählter Kriterien.

Aufgrund unterschiedlicher Qualitätsanforderungen diverser Fachdomänen (beispielsweise Echtzeit-Systeme oder Office-Anwendungen) gibt es im Bereich der Software-Entwicklung divergierende Anforderungen an die Tests und damit an die verwendeten Werkzeuge. Einige allgemein gültige Kriterien lassen sich jedoch ausmachen:

  • Einarbeitungsaufwand,
  • Verwaltung der GUI-Elemente,
  • Variabilität der Testwerte,
  • Ausführlichkeit der Ergebnisdokumentation,
  • Fehlerbehandlung und
  • Unterstützung von Bildvergleichen.

In erster Linie bestimmt die Erlernbarkeit die rasche, produktive Einsetzbarkeit des Produkts, aber auch die Akzeptanz bei Test-Experten und Einsteigern wird davon maßgeblich beeinflusst. Wesentlich ist eine ausführliche Dokumentation der verwendeten Skriptsprache. Ein Tutorial hilft beim flotteren Einstieg, da es den praxisnahen Einsatz der Software demonstriert.

Ein so genanntes Name-Mapping erlaubt es Testern, leicht wartbare Skripte zu erstellen, da es die Verständlichkeit des Codes deutlich verbessern kann. Dies erfolgt durch die Festlegung eines logischen Bezeichners für die oft unhandlichen, aus Laufzeitinformationen gewonnenen Namen grafischer Elemente. Bei Veränderungen des AUT-GUI erweist sich Name-Mapping ebenfalls als nützlich, da nur die meist zentral gespeicherte Zuweisungstabelle den Laufzeitnamen verwendet. In ihr identifiziert eine konfigurierbare Menge von Eigenschaften (Klasse, Label und so weiter) die GUI-Objekte eindeutig.

In der Printausgabe finden Sie den vollständigen Vergleich der vier GUI-Checker Teststudio (IBM Rational), Silktest (Segue), Testcomplete (Automated QA Corp.) und Winrunner (Mercury Interactive). Außerdem: eine Einführung ins Thema automatisches Testen und den Erfahrungsbericht eines sd&m-Mitarbeiters über den Einsatz des Verfahrens in einem Großprojekt. (ck)