Testautomatisierung

In fast allen Entwicklungsprojekten gelangt man irgendwann an einen Punkt, an dem man feststellt, dass die verfügbare Zeit nicht ausreicht, um alle Tests manuell auszuführen. Schnell kommt dann die Idee auf, Tests zu automatisieren. Es werden schnell erste Skripte geschrieben, die automatisierte Ausführung gibt den Beteiligten Sicherheit.

Häufig kommt es dann mit der Testphase für die nächste Version zu einer großen Enttäuschung. Die geschriebenen Skripte schlagen fehl. Man entdeckt, dass die Skripte die Applikation nicht mehr „bedienen“ können, da es Änderungen in der Oberfläche der Applikation gegeben hat. Da man auch in Zukunft die Oberfläche an zukünftige Anforderungen anpassen möchte, werden viele Testautomatisierungsprojekte wieder eingestellt und man hat gelernt, dass Testautomatisierung für die eigene Software nicht zielführend ist.

In den agilen Vorgehensmodellen findet sich die Forderung, dass über automatisierte Tests die Entwicklung ein schnelles Feedback gekommen soll, ob die letzten Änderungen den gewünschten Erfolg gebracht haben und die bestehende Funktionalität nicht beeinträchtigt ist.

Nur wenn Testautomatisierung ordentlich geplant und eingeführt wird, kann sie ein Erfolg werden und das Entwicklungsprojekt zuverlässig unterstützen.

Erfolgsfaktor Werkzeugauswahl

Eine weitere grundlegende Frage ist auch die Art der Testfalldarstellung, die bevorzugt genutzt werden soll. Im Wesentlichen wird zwischen den folgenden Strategien unterschieden:

Erfolgsfaktor Testfalldarstellung

Eine weitere grundlegende Frage ist auch die Art der Testfalldarstellung, die bevorzugt genutzt werden soll. Im Wesentlichen wird zwischen den folgenden Strategien unterschieden:

  • Datengetriebenes Testen
    In diesem Fall wird ein konstantes Testskript zur Verfügung gestellt, das mit einer gewissen Anzahl von Parametern aufgerufen wird. Jeder Satz von Parametern entspricht in diesem Fall einem konkreten Testfall.
    Dieser Ansatz erlaubt eine tabellarische Darstellung der Testfälle, die auch durch den Fachbereich einfach aufgebaut und gepflegt werden kann. Dieser Ansatz wird allerdings dann problematisch, wenn die Anzahl der Parameter zu hoch wird oder im Testskript zu viele Entscheidungen davon abhängig sind, welche Werte in den Parametern übergeben werden.
  • Schlüsselwortgetriebenes Testen
    Bei diesem Ansatz kann der Tester die Abfolge der Testdurchführung durch bereitgestellte Schlüsselwörter definieren. Ein Schlüsselwort bildet jeweils eine fachliche Aktion in der zu testenden Applikation ab.
    Dieser Ansatz ist flexibler und gleichzeitig auch etwas technischer, da die Schlüsselwörter nicht in beliebiger Reihenfolge ausgeführt werden können. Der Erfolg ist auch abhängig von der „richtigen Größe“ der Schlüsselwörter. Zu wenige Aktionen im Schlüsselwort erhöhen die Flexibilität, damit besteht ein Testfall unter Umständen aus sehr vielen Testschritten, was Lesbarkeit und Wartbarkeit verringert. Zu viele Aktionen im Schlüsselwort können den Tester beim Testdesign stark einschränken.

Design for Testability

Bei automatisierten Tests über eine Oberfläche ist die Erkennung der Elemente auf der Benutzeroberfläche ein wichtiges Thema. Hat eine Schaltfläche eine sprechende und eindeutige Kennung, so kann das Testautomatisierungswerkzeug diese nutzen und „erkennt“ die Schaltfläche auch nach einer Überarbeitung der Benutzeroberfläche.

Für die Funktion der Applikation ist es in aller Regel völlig unerheblich, ob die Kennungen vorhanden sind oder nicht. Aus der Testautomatisierung können solche Anforderungen aber schnell aufkommen. Der Fachbegriff hierfür ist „Design for Testability“.

Derartige Anforderungen sind für ein Team im ersten Augenblick neu und natürlich steckt auch ein gewisser Mehraufwand dahinter. Der Mehraufwand lohnt sich aber, da auf diese Weise die Testautomatisierung wartungsärmer und einfacher entwickelt werden kann und am Ende der manuelle Testaufwand deutlich reduziert wird.

Auch aus Sicht des Produktmanagements kann sich ein gutes Design for Testability lohnen. Die eigenen Kunden können für das Produkt sehr einfach automatisierte Akzeptanztests entwickeln und werden auch eher glauben, dass der Hersteller mit automatisierten Tests die Qualität sicherstellt.

Kontaktieren Sie mich gerne, um zu besprechen, wie Ihre Testautomatisierung ein Erfolg werden kann.