Viele Softwarehersteller sind in den letzten Jahren nicht zuletzt auf Druck des Marktes dazu übergangen, ihre Update-Zyklen zu verkürzen. Selbst Softwaregiganten wie Microsoft (‚Rumor: Microsoft to speed up Windows release cycle, next update codenamed „Blue“‚) und SAP („Startschuss Business ByDesign 4.0? Das Rennen ist längst gelaufen!„) scheuen sich nicht davor, ihre bisherige Release-Strategie zu ändern. Was man als Softwarehersteller dabei unbedingt vermeiden möchte, ist eine Verschlechterung der Softwarequalität. Das würde die positiven Effekte schnell zunichtemachen und der Reputation des Produktes schaden.
Qualität messbar machen
Um eine Veränderung der Produktqualität zu erkennen, muss diese zunächst messbar gemacht werden. Dabei hilft z. B. die ISO 9126 mit einer Definition konkreter Qualitätsmerkmale. Mithilfe der Testautomation und der Auswertung der dabei entstehenden Protokolle ist es möglich, Veränderungen am Verhalten der Software zu erkennen und die Ursachen dafür gezielt zu untersuchen. Wenn z. B. die Testausführung in Version 2 doppelt so lange dauert wie in Version 1, dann hat die Testautomation vermutlich ein Performanceproblem aufgedeckt, das sich mithilfe der Testprotokolle durch den Tester weiter lokalisieren lässt.
Nun zu den konkreten Schritten, die sich für uns in der Praxis bewährt haben:
Schritt 1: Teststrategie festlegen
Klarheit über die Teststrategie ist Voraussetzung für erfolgreiches Testen. Dabei geht es vor allem um das „Big Picture“ und die Ausrichtung der Testaktivitäten an den Produkt- und Unternehmenszielen. In der Teststrategie sollte eine Gewichtung der Qualitätsmerkmale erfolgen, da sich diese durchaus widersprechen können (z. B. „Analysierbarkeit“ und „Performance“). An der Formulierung der Teststrategie sollten verschiedene Stakeholder wie Auftraggeber, Projektleiter und evtl. auch die Geschäftsleitung beteiligt sein.
Schritt 2: Testfälle erstellen
Auf Basis der Teststrategie kann der Tester die Testfälle erstellen. Eine gute Unterstützung dabei bietet die Ausbildung nach ISTQB-Standard, die im „Foundation Level“ methodische Grundlagen vermittelt und einen guten Überblick der Testmethoden gibt. Für das Testen aus Anwendersicht eigenen sich für die Testautomation Blackbox-Tests, die ohne Zugriff auf den Quellcode erstellt werden.
Schritt 3: Testfälle mit Testautomation abbilden
Testautomation kommt im dritten Schritt zum Einsatz, um die zuvor manuell ausgeführten und protokollierten Testfälle zu automatisieren. Die dabei verwendeten Werkzeuge sollten gut zu den Technologien passen, die bei der Softwareentwicklung eingesetzt werden. So nutzen wir z. B. das Produkt „TestComplete“ der Firma SmartBear, um ein Produkt zu testen, dass in Microsoft .Net und C# erstellt worden ist. Da jedes Softwareprojekt seine eigenen Besonderheiten hat, empfiehlt es sich, verschiedene Tools auszuprobieren. Ein guter Ausgangspunkt dafür ist die Tools-Guide auf stickyminds.com.
Mit dem Aufzeichnen des zuvor manuell durchgeführten Tests gelangt man schnell zu einem ersten Testscript. Die Testschritte werden einfach drehbuchartig nacheinander aufgezeichnet. In TestComplete gibt es dafür den „Keyword Test„. Anschließend sollte der Test so überarbeitet werden, dass die wiederholte Ausführung möglich ist (z. B., dass eine Datenbank am Anfang des Tests immer leer ist) und die Fernsteuerung der Anwendung möglichst „robust“ gegen kleinere Änderungen an der Benutzeroberfläche ist (z. B., indem Objekte und deren Werte statt Pixelgrafiken verglichen werden).
Während der Testaufzeichnung können Prüfpunkte („checkpoints“) erstellt werden, z. B. der Inhalt einer Liste. Bei der nächsten Ausführung des Tests erfolgt dann ein automatischer Abgleich mit dem Prüfpunkt. So kann z. B. in einer Datenbank mit über 1.000 Einträgen innerhalb weniger Sekunden jede kleinste Änderung gefunden werden, das Testwerkzeug listet die Unterschiede zur weiteren Analyse tabellarisch auf. Testfälle können in Gruppen zusammengefasst werden und völlig selbstständig ablaufen.
Der Lohn: eine Qualitätsaussage binnen Minuten
Ist der (signifikante) Aufwand zur Einführung einer Testautomation erst einmal erbracht, beginnt es, Spaß zu machen. Statt wie bisher mehrere Tage manuell zu testen, gibt uns die Testautomation jetzt binnen Minuten Auskunft darüber, ob sich am bisherigen Verhalten der Anwendung etwas geändert hat. Besteht eine neue Programmversion die Tests nicht, darf der Tester die Version ablehnen und an den Entwickler zurückgeben. So vermeiden wir unnötige Testzeit. Und je näher der Freigabetermin rückt, desto größer wird der Nutzen der Testautomation, indem nach letzten Korrekturen und Optimierungen in kürzester Zeit auf unerwünschte Nebenwirkungen getestet werden kann.
Fazit
Die Einführung von Testautomation bedeutet kontinuierliche Folgearbeit. Testscripte müssen an neue Programmversionen angepasst und neue Tests für neue Funktionalitäten erstellt werden. Die Testautomation muss sich mit der Software weiter entwickeln. Auch erfordert es einige Disziplin, die Testdokumentation aktuell zu halten, ohne die man schnell den Überblick verliert. Dem gegenüber stehen ein großes Plus an Qualitätssicherheit und Zeitgewinn bei der Ermittlung einer Qualitätsaussage. Und der Tester kann seine Zeit z. B. mit zusätzlichem „Exploratory Testing“ effektiver nutzen, als gleiche Testabläufe immer wieder zu wiederholen.
Autor: Carsten Schult, Geschäftsführung, ISTQB Certified Tester
Gefällt Ihnen der Artikel? Haben Sie andere Erfahrungen gemacht? Sprechen Sie uns an – wir nehmen uns gerne Zeit für den Dialog mit Ihnen!
EVAS Softwarelösungen GmbH & Co. KG· Eisenstr. 2-4 · 65428 Rüsselsheim