
Roboter unterstützen bei Softwaretests
Jeweils im Frühjahr und im Herbst wurden bisher bei der St.Galler Kantonalbank Softwareupdates eingespielt oder neue digitale Anwendungen lanciert. Nun wurde der Releasetakt auf sechs erhöht. Damit steigt auch der Testaufwand vor den Updates und Neulancierungen. Doch das neue Team Automatisierung schafft mit seinen Lösungen Abhilfe.
Das Team um Benjamin Kern ist nicht das einzige, das bei der St.Galler Kantonalbank automatisierte Testfälle programmiert und einsetzt. «Neu ist, dass wir zusätzlich zu den Avaloq- Regressionstests nun auch E2E-Tests für Umsysteme automatisieren», so der Teamleiter. Regressionstests seien zeitintensiv, aber notwendig. Denn selbst geringfügige Änderungen an der Software oder am ursprünglichen Code könnten zu erheblichen Fehlern wie Abstürzen, Störungen oder zum Verlust von Funktionalitäten führen, so der Experte. «Deswegen werden beispielsweise vor dem Einspielen eines Softwareupdates viele Funktionalitäten getestet. Diese Tests heissen End-to-End», sagt Benjamin. Damit werden die Arbeitsabläufe einer Anwendung, in der IT-Sprache Workflow genannt, aus der Nutzerperspektive überprüft. «Mit meinem Team programmiere ich diese E2E-Tests. Mit dem Avaloq-Test-Tool und den ‹Test-Robotern› können wir eine Anwendung wie das Beratungstool ‹St.Galler Finanzberatung› (SGFB) automatisch in produktionsähnlichen Szenarien von Anfang bis Ende testen», so Benjamin. Bei den E2E-Testings profitiere das Team von ihren Erfahrungen aus der Prozessautomatisierung, besser bekannt als Robotics. Und im Bereich Avaloq-Testing seien über zehn Jahre hinweg Testfälle erstellt und betrieben worden. «Diese überführen wir nun in ein neues Set-up», sagt er.
Vorteile und Herausforderungen
Die Automatisierung der Tests habe viele Vorteile. «Die Qualität der Testausführung ist immer gleich. Denn automatisierte Tests führen die gleichen Abläufe und Prüfungen jedes Mal auf dieselbe Weise durch, was zu konsistenten und zuverlässigen Testergebnissen führt. Dadurch werden menschliche Fehler minimiert.
Ausserdem kann man die Tests Tag und Nacht laufen lassen. So können wir in einer viel kürzeren Zeit eine umfassende Prüfung der Software oder der Anwendung gewährleisten», sagt Benjamin. Das heisse aber nicht, dass manuelles Testen nicht nötig sei. «Dieses macht bei komplexen oder unklaren Szenarien mehr Sinn als die Automatisierung», erklärt er weiter. Ein weiterer Vorteil sei, dass man die Testskripte wiederverwenden könne, um ähnliche Tests für verschiedene Versionen oder Teile der Software durchzuführen. «Das erhöht die Entwicklungseffizienz enorm», sagt Benjamin. Doch bei all der Euphorie dürfe man nicht vergessen, dass die Testautomatisierung einen nicht zu unterschätzenden Wartungsaufwand habe. «Die Softwareprogramme müssen regelmässig gewartet und aktualisiert werden, damit sichergestellt ist, dass sie weiterhin relevant und effektiv sind. Das liegt daran, dass Prozesse und Applikationen sich ständig ändern», so der Teamleiter. Sicher seien auch oft erhebliche anfängliche Investitionen in Tools, Schulungen und Ressourcen notwendig. Und nicht zu vergessen: «Automatisierte Tests können möglicherweise nicht alle Benutzerinteraktionen und -szenarien abdecken, die im realen Einsatz auftreten können», ergänzt er. Menschliche Tester hätten oft die Fähigkeit, unerwartete Verhaltensweisen zu erkennen und verschiedene Benutzerperspektiven einzunehmen, was automatisierten Tests fehle.
Und dennoch: «Testautomatisierung auf allen Stufen wird immer wichtiger, wollen wir unsere Anwendungen oder Softwareprogramme flexibler aktualisieren. Mit ihr können wir eine umfassende Testabdeckung und eine verbesserte Softwarequalität sicherstellen», betont Benjamin.