Warum scheitern Testautomatisierungen?

Kennen Sie das: Nach erfolgreicher Einführung der Testautomatisierung (TA) läuft alles perfekt:

Alle Testfälle zum Test einer Software werden in kürzester Zeit ausgeführt und als erfolgreich durchgeführt gemeldet.

Aber mit der Zeit läuft es nicht mehr so glatt.

Probleme der Testautomatisierung

Die Aufwände steigen statt zu sinken

  • Sie kommen nicht hinterher die Skripte an die Änderungen der Leistungsmerkmale und im Testsystem anzupassen.
  • Vor dem Nachttestlauf wurde Ihnen kurzfristig das mühevoll zusammengestellte und konfigurierte System unter dem Hintern weggezogen oder ein Password geändert und am nächsten Morgen lagen keine Testergebnisse vor.
  • Die Zusammenführung der Testergebnisse ist zeitraubend und fehleranfällig.

Hinzu kommen die „normalen“ Schwierigkeiten bei der Testautomatisierung, wie

  • Einige Testfälle lassen sich nicht oder nur aufwendig automatisieren, da Interface verwendet werden müssen, die sich automatisch nur schwer ansprechen lassen (z.B. leuchtet eine Leuchtdiode, den Einschaltknopf drücken, etc.)
  • Einige Tests, die ein Tester „mit einem Blick“ erfasst (z.B. geändertes Layout und Farbwahl bei einer GUI), müssen für die Automatisierung bei jedem Durchlauf angepasst werden.
  • Die Tests können nicht durchlaufen weil einzelne Komponenten nicht lauffähig sind.

Summa summarum, die erwarteten Einspareffekte der TA werden durch umfangreiche Anpassung der Skripte und mangelnde Koordination der Infrastruktur aufgefressen. Die Mitarbeiter beginnen am Nutzen der TA grundsätzlich zu zweifeln. Der erwartete Einspareffekt stellt sich nicht ein.

In der Konsequenz treffen wir immer wieder auf „Testautomatisierungen“, die eigentlich nur eine Testhilfe für den Tester darstellen. Es sind Skripte, die Systemkommandos oder Bedienschritte an eine GUI absetzen und Systemrückmeldung für einzelne Testschritte einsammeln.

Die Testautomatisierung richtig einsetzen

Die Herausforderung ist die „artgerechte“ Verwendung der Testautomatisierung. Also die richtigen Ziele für eine TA finden und an den richtigen Stellen umsetzen.

Dazu gehören:

  • Werden die mit dem Kunden vereinbarten Leistungsmerkmale erbracht (Abnahmetest)
  • Werden die nichtfunktionalen Leistungsmerkmale eingehalten (Load- & Robustness- Test)
  • Ist die Integration eines neuen Release-Kandidaten testbar (Smoke Test)
  • Wurden nicht geänderte Funktionen nach einer Erweiterung beschädigt (Regression Test A)
  • Ist die Anwendung auch nach einem Wartungsupdate der Umgebung noch benutzbar (Regression Test B)
  • Laufen die Anwendungen auch auf anderen Plattformen (Kompatibilitätstest)

Für jedes der Testziele werden Testszenarien ausgeführt, die schon einmal funktioniert haben! Denn die TA soll keine Fehler finden. Dazu ist sie nicht geeignet. Wie soll etwas automatisch ablaufen, wenn immer wieder fundamentale Fehlfunktionen erkannt werden?

Die eigentlichen Fehler in den Softwarekomponenten werden von einem Tester gefunden, der den „richtigen Riecher“ hat.

Es soll eine automatische Ausführung von Testfällen im Rahmen des Testprozesses erfolgen, um zu zeigen, dass „alte“ Funktionen noch ihren Dienst erbringen oder ein Release reif für die Auslieferung ist. Sicher werden auch hier Fehlfunktionen gefunden. Diese sind dann aber auf einer Ebene, die den technischen Ablauf nicht weiter stören oder wenn sie auftreten, nicht gleich zu einem Abbruch der Testsequenz führen müssen.

Das Testumfeld (Testprozess) mit einbeziehen

Gefragt sind also Lösungen (Entlastungen), die eine effektive Nutzung der Testautomatisierung über einen langen Produktlebenszyklus in einem immer komplexer werdenden Umfeld sicherstellen. Dazu gehören ein angemessenes Testdesign, eine, wenn möglich, Tool unterstützte Pflege der Testskripte und Leistungsmerkmal bezogene Testabläufe.

Es müssen die Testvor- und -nachbereitung und das gesamte Testumfeld effektiv mit der eigentlichen TA vernetzt und auch weitestgehend automatisiert werden (Testmanagement). Der Testprozess muss  so angepasst sein, dass er optimal auf die Automatisierung von Testaufgaben ausgerichtet ist und mit adäquaten Testmanagementtools die Ausführung der Testabläufe, wie z.B. Continuous Integration, unterstützen kann.

Werden die Ziele der TA schon bei der Entscheidung zu einer TA als Maßstab angelegt, wird eine TA auch erfolgreich über lange Zeit zum Einsatz kommen können und eine Einsparung (RoI) im Test zeigen. Nicht zu übersehen ist die Steigerung der Qualität der ausgelieferten Produkte.

TH/RB

Nie wieder einen Blogartikel verpassen >>> Zum Blog-Newsletter anmelden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

siebzehn − 15 =