Automatisiertes Testing: mehr testen, bessere Software liefern

Wer erstklassige Software ausliefern möchte, muss sie vor dem Einsatz umfassend testen. Dafür nutzen wir unter anderem automatisierte Verfahren. Was das ist, wann es sinnvoll ist und warum wir es tun, lesen Sie hier.

Funktion und Nutzerfreundlichkeit auf dem Prüfstand

Wir von brainbits haben einen besonders hohen Qualitätsanspruch. Das heißt aber nicht, dass wir keine Fehler machen. Sondern dass wir sie finden und beseitigen, bevor unsere Kunden von ihnen überrascht werden. Ein Mitarbeiter und eine Mitarbeiterin in unserem Haus sind eigens darauf spezialisiert, unsere Software eingehend unter die Lupe nehmen. Dabei geht es aber nicht nur darum, Fehler aufzuspüren, sondern auch z. B. darum, das Verhalten der Software unter Belastung oder bei der Bedienung zu prüfen.

Die Teststufen der Qualitätssicherung gehen vom funktionalen Testing des Codes (einzelne Komponenten, Zusammenspiel der Komponenten, Systemtest) bis hin zum User Testing bzw. Akzeptanztest, bei dem wir zusammen mit den Kunden ausprobieren, ob die Software jederzeit gut bedienbar und nutzerfreundlich ist. Hier stehen vor allem die möglichst praxisnahen Bedingungen im Vordergrund. Im Test müssen möglichst alle Verhaltensoptionen vorhergesehen und miteinander kombiniert werden, um sämtliche Anwendungsfälle (sog. User Stories) abzudecken.

Ziel: eine möglichst hohe Testabdeckung

Da wir häufig sehr komplexe Software erstellen, z. B. komplette Portale für große Dienstleister, kann der Aufwand schnell enorm werden. Und bestimmte Testarten erweisen sich manuell ausgeführt als extrem aufwendig. Für Tests mit hoher Wiederholungsrate empfiehlt sich dann die Automatisierung.

In diesem Fall setzen wir bei brainbits die Software Ranorex ein. Ranorex spricht die zu testende Software automatisch an und steuert sie. Das Ergebnis wird in einem anschließenden Bericht festgehalten.

Regressionstest: automatisiert ein Kinderspiel

Ein sehr sinnvoller Bereich für die Automatisierung sind Regressionstests. Regressionstest müssen bei jeglicher Aktualisierung bzw. Änderung des Codes durchgeführt werden. Damit wird sichergestellt, dass alle Funktionen auch nach der Änderung störungsfrei laufen. Da diese Regressionstests eine hohe Anzahl und Wiederholungsrate aufweisen, eignen sie sich besonders gut für das automatisierte Testing.

Automatische Testverfahren unterstützen agiles Arbeiten

brainbits arbeitet agil in kurzen Iterationen. Der Einsatz von automatischem Testing passt gut dazu: Fehler werden in einer frühen Entwicklungsphase aufgespürt und in einer automatischen schnellen Feedbackschleife an den/die Entwickler/in zurückgespielt. Ein weiterer Vorteil: Die Funktion wird automatisch auf allen Browsern getestet. Dieser Schritt musste früher manuell durchgeführt werden.

Automatisierung erhöht vor allem die Qualität

Natürlich spart man durch automatisiertes Testing Ressourcen. Uns geht es aber vor allem darum, die Codequalität zu erhöhen: durch umfassendere Tests, wie sie in manchen Bereichen nicht händisch aufgeboten werden können. Denn vor allem bei sich wiederholenden Testfällen mit nur marginalen Unterschieden versagt das menschliche Auge häufig. Automatisiert werden hier durch Verifizierungspunkte genau zu überprüfende Merkmale gesetzt, die nicht durch die Fehlerquelle Mensch übersehen werden können.

Wir konnten mit Ranorex bisher 138 Testfälle bei brainbits automatisieren. Für das Kundenportal eines großen Dienstleisters haben wir 13 Kernprozesse identifiziert, die sonst nur einmal pro Woche nach dem Deployment getestet wurden. Ranorex testet nun automatisch jede Nacht. Die reine Testdurchführung erfordert damit keinen personellen Aufwand mehr. So sparen wir nicht nur Ressourcen; durch die häufigeren Tests kommen wir im Störfall häufig auch den Usern zuvor. Unser Kunde profitiert also von geringeren Belastungen im Service-Center.