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.Gal­ler 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 Team­leiter. Regressionstests seien zeitintensiv, aber notwendig. Denn selbst geringfügige Änderungen an der Software oder am ursprünglichen Code könnten zu erheb­lichen Fehlern wie Abstürzen, Störungen oder zum Verlust von Funktionalitäten füh­ren, so der Experte. «Deswegen werden bei­spielsweise vor dem Einspielen eines Softwareupdates viele Funktionalitäten getestet. Diese Tests heissen End-to-End», sagt Benjamin. Damit werden die Arbeitsab­läufe einer Anwendung, in der IT-Sprache Workflow genannt, aus der Nutzerperspek­tive überprüft. «Mit meinem Team pro­grammiere ich diese E2E-Tests. Mit dem Avaloq-Test-Tool und den ‹Test-Robotern› können wir eine Anwendung wie das Bera­tungstool ‹St.Galler Finanzberatung› (SGFB) automatisch in produktionsähnlichen Sze­narien von Anfang bis Ende testen», so Ben­jamin. Bei den E2E-Testings profitiere das Team von ihren Erfahrungen aus der Pro­zessautomatisierung, besser bekannt als Robotics. Und im Bereich Avaloq-Testing seien über zehn Jahre hinweg Testfälle erstellt und betrieben worden. «Diese über­fü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 Testergeb­nissen 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 Test­skripte wiederverwenden könne, um ähn­liche 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 Test­automatisierung einen nicht zu unter­schätzenden Wartungsaufwand habe. «Die Softwareprogramme müssen regelmässig gewartet und aktualisiert werden, damit sichergestellt ist, dass sie weiterhin rele­vant 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 not­wendig. Und nicht zu vergessen: «Auto­matisierte Tests können möglicherweise nicht alle Benutzerinteraktionen und -sze­narien abdecken, die im realen Einsatz auf­treten können», ergänzt er. Menschliche Tester hätten oft die Fähigkeit, unerwartete Verhaltensweisen zu erkennen und ver­schiedene Benutzerperspektiven einzu­nehmen, was automatisierten Tests fehle.

Und dennoch: «Testautomatisierung auf allen Stufen wird immer wichtiger, wollen wir unsere Anwendungen oder Softwareprogramme flexibler aktualisie­ren. Mit ihr können wir eine umfassende Testabdeckung und eine verbesserte Soft­warequalität sicherstellen», betont Benja­min.