Automatisierte Softwaretests mit Software Robotics
Es ist der Traum eines jeden Softwareentwicklers und Projektleiters: Bei einem Produktupdate testet ein Software-Roboter die Anwendung vollständig durch. Geduldig prüft er alle Funktionen und Dialoge und meldet am Ende, ob etwas nicht funktioniert hat.
Automatisierte Softwaretests mit Software Robotics
Da wir im Zeitalter der Software-Robotics angekommen sind, wird dieser Traum gerade Wirklichkeit. Das heißt aber nicht, dass man keine Arbeit mit Software Tests und Qualitätssicherung mehr hat. Die Arbeit hat sich nur verändert und ist sehr viel effizienter geworden.
Was hat ein Affe damit zu tun?
Warum nun ist ein automatisierter Softwaretest über Roboter der Traum eines jeden Softwareentwicklers? Das Testen von Software ist sogenanntes „Monkey Work“ (auf Schwäbisch: „Dommagschäft“). Darunter versteht man eine sehr stumpfsinnige und sich ständig wiederholende Tätigkeit. Diese ist zeitaufwändig, langweilig und wird im Volksmund gehässig auch „Praktikanten-“ oder „Strafarbeit“ genannt. Natürlich macht im Leben nicht alles Spaß, doch Monkey Work hat entscheidende negative Effekte, die über Spaß weit hinaus gehen:
- Aufgrund des Zeitaufwandes sind die Tätigkeiten mit hohen Kosten verbunden
- Da die Arbeit langweilig ist, wird der Mitarbeiter unkonzentriert. So schleichen sich oft Fehler in die Tests ein. Das passiert vor allem, wenn ein Test wiederholt werden muss
- Um Leichtsinnsfehler zu vermeiden, müssen Tests auf mehrere Mitarbeiter oder auf mehrere Arbeitstage verteilt werden. Updates können nicht so schnell freigegeben werden, wie man sich das wünscht
- Es ist schwierig, Personal zu finden, welches diese Tätigkeiten gewissenhaft und mit Engagement umsetzen kann
- Nebenbei: Affen mögen diese Art von monotonem Zeitvertreib auch nicht.
Nicht jeder Software Test ist Monkey Work
Nicht alle Arbeiten in der Qualitätssicherung können von jedem Mitarbeiter durchgeführt werden. Gerade Enterprise Anwendungen, wie sie von SYSTAG entwickelt werden, bilden Geschäftsprozesse ab. Diese Prozesse können sehr komplex werden. In so einem Fall ist sogar Expertenwissen bei einigen der Tests notwendig. Wenn nun aber ein Experte ein Softwareupdate testen muss, steigen die Kosten noch viel weiter an. In so einem Fall können die Tests viel Stunden Zeit in Anspruch nehmen. Schnelle und zugleich qualitativ hochwertige Updates sind damit fast nicht mehr möglich.
Nicht in jedem Projekt lohnt es sich, Roboter zum Testen von Software einzusetzen. Es gibt Software-Projekte, die „fertig“ entwickelt werden und danach nur sehr selten Updates bekommen. Hierfür sind klassische Qualitätssicherungsmaßnamen am besten geeignet.
Wenn die Software jedoch lebendig ist und über Monate oder Jahre hinweg immer wieder verbessert werden soll, dann lohnen sich Roboter sehr schnell. „Es ist eine Investition in die Zukunft“ erklärt unser Teamleiter Entwicklung bei der SYSTAG GmbH. „Man bringt einmal zusammen mit den Experten einem Roboter in einigen Stunden Arbeit bei, wie die Software zu testen ist. Ist dies geschafft, laufen die Tests in Zukunft praktisch kostenlos durch – so oft man möchte.“
Wissensmanagement²
Enterprise Anwendungen von SYSTAG digitalisieren Unternehmensprozesse. Jeder weiß, warum Digitalisierung so wichtig ist: Die Arbeit wird effizienter und transparenter und Dokumentation wird automatisch erstellt. Mitarbeiter haben mehr Freude an ihrer Arbeit, da Verwaltungsaufgaben wegfallen und das Management hat einen besseren Überblick über die aktuelle Lage.
Nicht jedem ist klar, dass es noch einen weiteren wichtigen Effekt der Digitalisierung gibt: Unternehmen bauen nebenbei ein Wissensmanagement auf. Unternehmensprozesse auf dem Papier weichen oft stark von den tatsächlich gelebten Prozessen ab. Sobald diese gelebten Prozesse jedoch in einer Software umgesetzt werden, ist das tatsächliche Prozesswissen nicht mehr nur bei einzelnen Mitarbeitern bekannt. Das Wissen wird fester Bestandteil des Unternehmens. Das reduziert Risiken und erlaubt das schnellere Einarbeiten von neuen Mitarbeitern.
Und genau diesen Effekt kann man bei Softwaretests einsetzen. Ist ein Softwaretest einmal geschrieben, enthält er Prozesswissen über eine Anwendung. Der Roboter weiß dann, was die Mitarbeiter genau mit der Software machen und worauf dabei zu achten ist. Spezialisten werden nur noch benötigt, wenn neue Tests erstellt werden müssen. Wissensmanagement in der Software und im Test: Das ist Wissensmanagement im Quadrat. Oder eine Win-Win-Situation.
Und wie läuft das nun konkret ab?
Zuerst muss man sich im Team überlegen, was überhaupt getestet werden soll. Wichtig sind vor allem die Kernprozesse einer Anwendung. Sind diese vollständig abgebildet, können auch Sonderfunktionen getestet werden. Man muss unbedingt sicherstellen, dass man eine Testumgebung mit sehr guten Daten hat. Irgendwelche Felder mit „Test1“ oder „Test2“ zu befüllen reicht nicht aus. Es müssen wirklich reale Situationen aus der Praxis abgebildet werden. Außerdem muss man in der Lage sein, die Daten der Testumgebung nach einem Test zurücksetzen zu können. Damit wird garantiert, dass bei jedem Testdurchlauf immer das gleiche Ergebnis zu erwarten ist. Weicht das Ergebnis ab, gibt es vermutlich einen Fehler in der Anwendung.
Sind diese Rahmenbedingungen geklärt, muss ein Entwickler die Tests in den Software Roboter programmieren. Das kann einige Stunden je Test dauern, vor allem dann, wenn Ergebnisse kontrolliert werden müssen. Es ist einfach zu prüfen, ob bestimmte Funktionen wie der Upload eines Dokumentes noch funktionieren. Komplexe Tests in Business-Anwendungen erfordern aber zum Beispiel auch das Nachrechnen von Summen in Kundenaufträgen oder Ähnliches. Was genau in einem Test überprüft werden muss, hängt stark von der zu prüfenden Anwendung selbst ab.
Hat der Roboter alles Nötige gelernt und ist ein Mechanismus gefunden, die Anwendungsdaten inkl. aller Schnittstellen für einen Testlauf zurücksetzen zu können, ist nur noch ein Befehl nötig: „Roboter, los!“. Und was ist das Ergebnis? Tritt eine Störung auf, bekommt man einen Bericht in Form einer PDF-Datei mit Screenshots und Erklärungen. So weiß das Projektteam schnell, an welcher Stelle es klemmt und kann die Qualität der Anwendung sofort verbessern.
Für uns und unsere Kunden sind unsere SoftwaretestRoboter gute Kollegen geworden, die beide nicht mehr missen wollen. Gerne beantworten wir Ihre Fragen dazu und unterstützen Sie dabei, Ihren Softwaretest Roboter auszusuchen und zu programmieren.
P.S. „Wir danken unserem neuen Teamleiter der Entwicklung sehr für die Unterstützung bei der Herstellung dieses Blogeintrags.“