Banken sollten IT-Tests nicht blind automatisieren!
Bank-IT: Ob Kunden-Apps oder Kernbanksoftware, agil zu entwickeln ist eine gute Sache, um die Time to Market zu verringern. Allerdings nur, wenn Banken es schaffen, dass das Testen der Software mit den Sprints mithält. Der Griff zur Testautomatisierung liegt nahe, kann aber auch dazu führen, dass es im Ergebnis zu höheren Entwicklungskosten kommt.
von Leo Bach, Senior Consultant bei Sopra Steria
Im Idealfall können Tests komplett automatisiert ablaufen. Das spart Zeit, und agile Teams können sich um das Fehlermanagement kümmern, während der Testautomat die Fälle abarbeitet. Zudem verlieren automatisierte Tests nicht an Qualität, wohingegen Menschen irgendwann in ihrer Konzentration nachlassen.Bei Regressionstestfällen ist der Effekt am stärksten. Verbessern Entwickler beispielsweise die Benutzerfreundlichkeit bei Online-Kreditanträgen, muss sichergestellt sein, dass Backend-Prozesse wie das Auszahlen der Kreditsumme weiterhin funktionieren. Diese Testfälle werden wiederholt über den Systemlebenszyklus durchgeführt. Damit minimiert sich das Risiko, dass sich die Entwicklung neuer Inkremente eines Sprints negativ auf die bestehende Funktionalität auswirkt.
Ab einem bestimmten Zeitpunkt ist eine manuelle Ausführung der Regressionstestfälle in agilen Projekten innerhalb einer Iteration nicht mehr möglich.”
Erst die Automatisierung dieser Testfälle erlaubt dem Team, sie innerhalb der aktuellen Iteration auszuführen und die angestrebte Testabdeckung zu erreichen.
Testautomatisierung sollte kein Selbstzweck sein
Automatisiertes Testen verkürzt somit die Feedbackschleife signifikant. Die agilen Teams wissen schneller, ob die gestellten Anforderungen durch das Inkrement richtig umgesetzt wurden. Das Ganze hat allerdings einen Haken:
Das Management muss sicherstellen, dass die Testautomatisierung entweder die Qualitätsrisiken oder die Testkosten reduziert. Erst wenn das der Fall ist, lohnt sich die Testautomatisierung aus unternehmerischer Sicht.”
Inwieweit die Testautomatisierung den Aufwand oder die Risiken reduziert, lässt sich leider nicht immer im Vorfeld sagen und sollte vom Management anhand von KPIs überwacht und gesteuert werden.
Die größte Herausforderung für eine Testautomatisierung betrifft Funktionstests oder User-Story-Tests (Q2-Tests in der Grafik). Im Falle eines Kundenportals wird beispielsweise die Funktionalität auf der Eingabemaske oder die Maskenführung getestet. Das Team muss hierzu die fachlich erwarteten Ergebnisse kennen und zusätzlich das technische Testautomatisierungs- und das Tool-Know-how besitzen.
Nicht immer ist es möglich, diese Art von Tests zu automatisieren. Vielfach handelt es sich bei diesen Testfällen um End-to-End-Testfälle. Sie setzen viele Eingangs- und Ausgangsvariablen sowie komplexe Testdaten voraus. Ein klassischer Fall ist das Testen eines bestimmten Verhaltens für bestimmte Ereignisse: Bekommt beispielsweise eine Kundin einen Warnhinweis, sobald ihr Konto ins Minus rutscht? Oder gibt das System einer Förderbank die richtige Rückmeldung bei einem bestimmten Mix vorhandener Förderkriterien? Der manuelle Test gilt für sämtliche fachlich motivierten Testfälle hier weiterhin als ein probates Mittel der Qualitätssicherung.
Speziell für Banken kommen die heterogenen IT-Landschaften mit vielfältigen Anwendungen unterschiedlicher Technologien und Generationen erschwerend hinzu. Wird eine neue Software entwickelt, muss sie meistens in die bestehende Systemlandschaft integriert werden.”
Dieser Vorgang wird mithilfe von Systemintegrationstests überprüft. Deren Automatisierung ist häufig nicht wirtschaftlich, weil die Automatisierung über mehrere Applikationen hinweg mit unterschiedlichen Technologien vorgenommen werden muss. Diese Medien- bzw. Technologiebrüche verteuern die Automatisierung.
Ein weiterer Aufwandstreiber ist die Plattformstrategie vieler Banken. Die Einbindung von Fremdservices spielt eine immer größere Rolle in der Branche. Externe Services für das Onboarding und das KYC-Verfahren, Scoring-Services sowie die Einbindung von Online-Händlern und Payment-Dienstleistern sind Bankenalltag. Diese Dienste müssen in die Applikationslandschaft integriert und mit Systemintegrationstests überprüft werden. Die Testautomatisierung ist ebenfalls äußerst herausfordernd.
Testautomatisierung erfordert hohe Investitionen und Vorarbeiten
Darüber hinaus ist eine Testautomatisierung immer mit organisatorischen Anpassungen und Investitionen verbunden. Das beginnt bereits mit der Tool-Auswahl. Diese Tool-Evaluierung und der anschließende Einkaufsvorgang sind in der Regel ein Projekt für sich, indem ein Team die eigenen Anforderungen erhebt und sie mit dem Markt abgleicht.
Zudem müssen die Mitarbeitenden geschult werden. Das notwendige Know-how unterscheidet sich von Tool zu Tool und von Technologie zu Technologie sehr stark. Externe Schulungen sind kostspielig und Spezialisten sehr rar.
Darüber hinaus muss die Testautomatisierung in die gelebten Testprozesse integriert werden. Das erfordert ein Umdenken bei den Teams.”
Denn der Testprozess selbst ändert sich mit der Einführung. Es müssen unter anderem Testautomatisierungsskripte geschrieben werden. Das Schreiben und die Validierung der Skripte bedeuten zusätzliche Prozessschritte und zusätzlichen Aufwand. Banken sollten sich somit immer vergegenwärtigen: Das Plus an Effizienz durch die automatisierte Testdurchführung und die Wiederholbarkeit der Tests erkauft man sich mit einem Mehraufwand für die Vorbereitung der Testautomatisierung.
Für Regressionstestfälle müssen Banken weiteren Aufwand einkalkulieren. Diese Testfälle werden fortdauernd ausgeführt, wenn neue Features in bestehende Software integriert werden. Bei einer solchen „Continuous Integration“ erfolgt die Ausführung der Testfälle teilweise automatisiert, sobald ein Entwickler seinen Code integrieren will. Die Testskripte für diese Testfälle müssen analog zu anderem Programmcode über die Softwarelebensdauer gewartet werden.
Idealwelt: optimale Organisation des agilen Tests mit Testautomatisierung
Autor Leo Bach, Sopra SteriaLeo Bach ist Senior Consultant bei Sopra Steria (Webseite). Er ist Diplom-Volkswirt mit den Schwerpunkten Spieltheorie und Finanzwirtschaft. Seit 2012 arbeitet er in namhaften Beratungshäusern für Kunden unterschiedlicher Branchen und verschiedenen Projekten. Er ist ein zertifizierter IT-Service Manager nach ITIL, Lean Six Sigma Green-Belt-Träger (Practitioner) und ISTQB-Zertifizierter Testmanager. Heute berät und begleitet er Kunden der Finanzbranche bei der technischen Anforderungskonkretisierung und beim Testmanagement. Durch sein Fachwissen und seiner Branchensicht betont Leo Bach die Bedeutung interdisziplinärer Teams. Beim Testmanagement zählen für ihn pragmatische Ansätze, die in der Praxis funktionieren.
Im Idealfall setzen Banken auf eine risikobasierte Teststrategie. Diese sollte darauf ausgerichtet sein, die Qualitäts- und Produktrisiken zu minimieren. Definierte KPIs messen, welche Kosten eine Automatisierung verursacht und welche Mehrwerte sie bringt. Damit können Institute eindeutige Vorgaben in ihre Teststrategie schreiben. Agile Teams erhalten eine klare Vorstellung, welche Testfälle automatisiert werden sollen und welche Testfälle manuell getestet werden müssen. Entsprechend wird diese Strategie in der Definition of Done (DoD) einer User-Story formalisiert. Das Team strebt ein Gleichgewicht an zwischen dem notwendigen Automatisierungsgrad und leichtgewichtigen manuellen Tests.
In dieser Idealwelt gibt es eine Person, die die Qualität gegenüber dem Tempo verteidigt. Es werden in Iterationen möglichst fertige Features entwickelt. Da die Dauer des Sprints immer fix ist, ist die Qualität häufig die verbleibende Variable. Innerhalb des Teams gibt es ein Teammitglied, das die Qualitätsziele über die Iterationen hinweg im Blick hat und dafür sorgt, dass sie auch erreicht werden. Diese Person greift korrigierend ein und sorgt für eine Konsensbildung innerhalb des Teams.
So können Banken bei der Testautomatisierung vorgehen
Agiles Testen und Testautomatisierung sind somit keine Selbstgänger für Banken. Es empfiehlt sich, die Testautomatisierung in die Gesamtstrategie für mehr Agilität und Entwicklung einzubetten. Diese strategischen Eckpfeiler sollten nicht fehlen:
In den agilen Teams sollten die Rollen „Tester“ und „Entwickler“ weiter verschmelzen. Zudem sollte gelten: möglichst früh und laufend testen. Durch eine gemeinsame Erstellung der Testfälle können die Teams eine hohe Testabdeckung erreichen. Dann haben die entwicklergetesteten Features bereits eine sehr hohe Qualität.
Banken sollten sich darauf einstellen, dass sich der Testprozess durch Automatisierung stark verändert. Nicht immer wird die Testautomatisierung am Anfang reibungslos funktionieren. Am besten fängt man bei der Testautomatisierung klein an, beispielsweise mit einfacheren Funktionstests und Storytests, und versucht über die Zeit immer komplexere Testfälle zu automatisieren.
Speziell bei Banken stehen häufig die Testdaten einer Automatisierung im Weg. Banken sollten für ein geeignetes Testdatenmanagement sorgen, beispielsweise durch eine automatisierte Anonymisierung und Pseudonymisierung der Testdaten oder den Einsatz synthetischer Testdaten.
Für Fälle, bei denen über mehrere Applikationen hinweg getestet wird – das ist bei Banken häufig der Fall –, wird man gegebenenfalls die Testfälle nicht vollständig automatisieren können. Hier kann eine Teilautomatisierung ein probates Mittel sein, um eine hohe Testabdeckung zu erreichen.
Die Erstellung der Testskripte ist eine sehr zeitaufwändige Arbeit. Gegebenenfalls lohnt sich die codelose, toolbasierte Testautomatisierung. In diesem Fall benötigt die automatisierende Person keine tiefen Kenntnisse der jeweils zugrundeliegenden Programmiersprache. Der Anwender des Testautomatisierungstools muss Skripte nicht selbst schreiben. Er interagiert mit dem Frontend des Tools. Die User-Interaktion wird durch eine Abstraktionsschicht in Testautomatisierungsskripte übersetzt. Die Skripte können wiederum automatisiert ablaufen.
Und was bei Banken immer hineinspielt:
Bei allen Bestrebungen, agiler zu werden und Abläufe zu automatisieren, müssen Banken weiterhin regulatorische Anforderungen erfüllen.”
Projektdokumente wie eine Anwenderdokumentation, technische Systemdokumentation, Betriebsdokumentation und Testdokumentation müssen weiterhin erstellt werden, sollen jedoch die Agilitätsziele nicht stören oder gefährden. Zur Entwicklungs- und Teststrategie gehört damit immer auch eine Dokumentations- und Meldestrategie. Banken sollten Prozesse entwickeln, wie sie beispielsweise das Erstellen von Dokumentationen ebenfalls automatisieren können.Leo Bach, Sopra Steria
Sie finden diesen Artikel im Internet auf der Website:
https://itfm.link/139969
Schreiben Sie einen Kommentar