Mensch vs. Skript – Widerspruch oder Synthese?

Warum die Kombination automatisierter und manueller Tests zum Erfolg führt. Regelmäßig getestet und überprüft wird bekanntlich vieles. Berufsfahrer und Piloten unterliegen Tauglichkeitsprüfungen, externe Debrillatoren in Unternehmen führen Selbsttests durch. Solche Tests sind auch in der Softwareentwicklung bekannt. Getestet wird hier, um die Qualität einer Software zu sichern und Entwicklungszeiten zu verkürzen.

Im Entwicklungsstatus, aber auch im Vorfeld der Implementierung, werden Anwendungen getestet. Dabei geht es
vor allem um die Anforderungen, die an eine neue Software gestellt werden, aber auch darum, mögliche Programm fehler zu beheben. Mit Hilfe einer Viel­zahl am Markt befindlicher Tools oder aber mit eigens entwickelter Testsoft­ware werden Aktivitäten eines Soft­wareproduktes im Testlauf überprüft und anschließend ausgewertet. Auftretende Anomalien werden in der Log­ datei festgehalten. In der Softwareent­wicklung sind dabei vor allem die Qua­lität und der Status einer Anwendung entscheidend, sowie die Frage, ob ein neues Release besser ist als das alte. In konkreten Anwendungsfällen, wie bei­spielsweise bei Banken und Versiche rungen, geht es darum, Fehler bereits vor Auslieferung zu vermeiden und die Revisionssicherheit zu steigern.

Manuelle vs. automatisierte Tests

Softwareprodukte können sowohl manuell als auch automatisiert getestet werden. Dabei werden manuelle Tests von Usern einer Anwendung durchge­führt. Bei den automatisierten Tests werden im Vorfeld festgelegte Aktivitä­ten in Form von Testfällen zu defnier­ten Zeiten sowie vor jedem neuen Release systemseitig ausgeführt und an­ schließend überprüft. Die Vorteile der automatisierten Tests liegen auf der Hand: Nicht nur können sie deutlich früher im Entwicklungszyklus eingesetzt werden und damit Fehler frühzei­tig aufspüren. Vor allem sind sie lang­fristig kostengünstiger und liefern sig­nifikant stabilere Ergebnisse.

Die Testautomatisierung verfolgt pri­mär das Ziel, die Qualität einer Soft­ware sicherzustellen. Dies gelingt unter anderem durch wiederholte Tests, wo­ durch die Qualität einer Software mess­bar gemacht wird – Fehler oder Neben­effekte werden transparent und direkt an die Entwicklungs-Teams zurückge­spielt. Diese sogenannten Regressions­tests stellen sicher, dass durch Ände­rungen oder Erweiterungen einer An­wendung keine neuen Fehler in bereits getesteten Teilen der Anwendung ent­standen sind. Durch die ermittelte An­zahl erfolgreich durchgeführter Testfäl­le pro Testlauf werden Ergebnisse auf Richtigkeit und Vollständigkeit geprüft. Es wird getestet, ob Fehler bereits be­hoben sind, Release­Vergleiche werden
angestellt und der stabile Livebetrieb einer Anwendung wird sichergestellt. Vor allem in komplexen Softwarepro­jekten bietet sich die Testautomatisie­rung an, da sehr schnell eine große An­zahl an Testfällen erreicht wird, die je­weils einen langen Testzeitraum benöti­gen und durch manuelle Tester nur mit erheblichem Aufwand abgedeckt wer­den können.

Testmanagement als Basis für valide Ergebnisse

In der Praxis werden automatisierte Software-Tests jedoch noch nicht in allen Bereichen vollumfänglich einge­setzt. Vor allem im Banken­ und Ver­sicherungsumfeld bestehen nach wie vor Schwierigkeiten, Testumgebungen herzustellen. Daneben werden vieler­orts die Aufwände gescheut, die eine Überprüfung der eigenen Software mit sich bringt. Dabei wird oftmals jedoch nicht bedacht, dass hohe Aufwände vor allem durch manuelle oder semi­manu­elle Tests entstehen. „Eine Testautoma­tisierung beschleunigt den Prozess der Überprüfung in signifikantem Maß“, beschreibt Dr. Lars Werner, Entwicklungsleiter der agentes Unterneh­mensgruppe, den wesentlichen Vorteil des Verfahrens. „Die Aufwände entste­hen vor allem durch Fehler in der Vorbereitung und Durchführung“, so Dr. Lars Werner weiter.

Häufig fehlt es im ersten Schritt an einem fest­installierten Testmanagement. Statt im Vorfeld Use-Cases zu definieren und eine Systematik der zu testenden Funk­tionen anzulegen, werden häufig erst hinterher, etwa am Ende eines Entwick­lungsvorhabens, stichprobenartig Test­fälle ausgewählt. Aber auch für die Überprüfung einer bereits bestehenden Anwendung ist ein Testmanagement unerlässlich: Testfälle müssen nicht nur geplant, sondern auch verwaltet wer­den, die Durchführung der Tests selbst muss organisiert und gesteuert werden, zudem müssen alle Tests und deren Ergebnisse dokumentiert werden.

Daneben ist auch die Erfassung der Testdaten nicht zu unterschätzen. Diese sollten vollständig sein und dauerhaft verwaltet werden. Dabei gilt es auch, Aktualisierungen vorzunehmen oder optimale Sets an Daten zu generieren. Testet man manuell, so ist in jedem Fall entsprechendes Know-how der Tester Voraussetzung für den Erfolg. Aber auch in der Testautomatisierung ist das Know-how die Basis für valide Ergeb­nisse: hier kommt es vor allem auf eine gute Zusammenarbeit zwischen den Entwicklerteams und den Fachabteilun­gen an. Die Wahl der Testsoftware ist dabei zunächst sekundär. Denn egal ob Einzellösung, Open Source oder als Suite: Liegt der Testphase keine Strate­gie zugrunde, kann auch das Tool nicht den gewünschten Erfolg herbeiführen.

Systemgrenzen überwinden, fachliche Logik, zertifzierteTester

Als größte Herausforderung in der Test­automatisierung sehen die Experten das Zusammenbringen verschiedener Re­gistry­Systeme an. Beim Einsatz gängi­ger Tools zur Testautomatisierung wird meist am Frontend begonnen und erst in einem zweiten Schritt geplant, wie die Automatisierung erfolgen kann. Kommt dann beispielsweise eine neue Businesslogik hinzu, stoßen viele Tools an ihre Grenzen. Mit dem User Inter­face Connector geht agentes den umge­kehrten Weg. Da die Lösung zunächst dafür entwickelt wurde, relevante Datenbestände aus Altsystemen so auf­ zubereiten, dass sie in neue, moderne Systeme migriert werden können, setzt das Unternehmen direkt an der Schnitt­stelle an und bietet von Anfang an eine Automatisierung. Dank der erweiterten Funktionalitäten können Systemgren­zen überwunden werden – ein nicht zu unterschätzendes Unterfangen im Rahmen der Testautomatisierung. Denn im Gegensatz zu reinen Tests von Ober­flächen, ist genau die Überwindung von Systemgrenzen die große Heraus­forderung, die es zu bewältigen gilt, um erfolgreiches Testmanagement zu betreiben.

Daneben gelten Zertifizierungen sowie fachliches Know­how als weitere Er­folgsgaranten. Ersteres versucht man international mit einer Zertifizierungs­stelle für Softwaretester, dem Internati­onal Software Testing Qualification Board (ISTQB) sicherzustellen. Das ehrenamtliche Expertengremium hat sich zum Ziel gesetzt, eine standardi­sierte Ausbildung für professionelle Softwaretester zu erarbeiten und bietet eine stufenweise Zertifizierung für eben diese an, den ISTQB Certifed Tester. Unternehmen wie agentes verfügen be­reits über diese Zertifizierung. Tiefgrei­fendes Verständnis für die Fachlichkeit von Prozessen ist ebenfalls integrale Voraussetzung für die Testautomatisie­rung und kann nicht immer zwingend vorausgesetzt werden.

Exkurs: Softwaretests für Banken als Teil der MaRisk

Für Banken ist die IT-Sicherheit in den Mindestanforderungen an das Risiko­management (MaRisk BA) festge­schrieben. Die Regularien fordern die Institute explizit auf, neue Software vor Betriebsstart zu testen. Darüber hinaus muss eine Software, die einer Bank von Dritten zugeliefert wird, ebenfalls mit Blick auf Funktionalität, Sicherheit und Verlässlichkeit sorgfältig geprüft wer­ den. Und dennoch werden oft die regu­latorischen Anforderungen vernachläs­sigt. Aktuellen Studien zur Folge führt nur etwa die Hälfte aller deutscher Finanzunternehmen Systemtests durch. Dies kann verheerende Folgen haben. Werden keine Tests in den Häusern durchgeführt, dann birgt das hohe Risi­ken für die Qualität der Daten und damit letztlich für den gesamten laufen­den Betrieb. Die Situation im Banken­umfeld ist in verschiedener Hinsicht besonders: viele Häuser sind nach wie vor in Altsystemen gefangen und arbei­ten mit in die Jahre gekommenen Syste­men. Und auch die Herausforderungen rund um den Einsatz von Tabellenkal­kulationsdateien wie Microsoft Excel sind keineswegs ad acta gelegt.

Beides hat zur Folge, dass die für die Testautomatisierung benötigten Daten nicht immer inhouse generiert werden können. Darüber hinaus arbeiten viele Institute mit externen Partnern zusam­men. Auch hier können häufig nicht die für die Tests benötigten Daten bereitgestellt werden, beispielsweise im Be­reich Zahlungsverkehr. Als auf die Fi­nanzbranche spezialisierter IT-Dienst­leister steht agentes Unternehmen und Softwarehäusern genauso für die Test­ automatisierung zur Seite wie Banken und Sparkassen. Mit der eigens entwi­ckelten Lösung agentes User Interface Connector (aUIC) bietet das Unter­ nehmen automatisierte Tests an, die bei Bedarf auch in der eigenen Testfabrik durchgeführt werden können. „Wir ha­ben die Erfahrung gemacht, dass gerade Unternehmen oder auch Finanzinsti­tute, die Kleinanwendungen im Einsatz haben, die Testautomatisierung scheuen“, berichtet Dr. Lars Werner. „Hier setzen wir an und bieten neben der Beratung vor allem individuali­sierte, auf die jeweilige Situation vor Ort zugeschnittene Use­Cases an. Der Vorteil: aUIC kann auf Ergebnisse reagieren und Use­Cases können bei Bedarf angepasst werden.“

Zusammenspiel zwischen Tester und Testautomatisierung

Ob Skripte und Testautomatisierungstools besser sind als menschliche Tester, kann auch agentes nicht sagen. Beide haben ihre Stärken und Schwächen – und beide können sicherlich Fehler machen. User oder Entwickler, die die zu testende Anwendung sehr gut kennen, können sich keineswegs frei machen von Betriebsblindheit. Umgekehrt können auch Testautomatisierungstools mit Bugs behaftet sein. „Entscheidend für uns ist, dass die Vorteile automatisierter Tests überwiegen“, so Dr. Lars Werner. „Zu geringen Kosten lassen sich gerade auch Lastentests problemlos durchführen, die zudem viele Bereiche abdecken können“, führt Werner aus. Aber auch mit Blick auf die Qualität punktet die Automatisierung: Tests werden exakt und fehlerfrei wiederholt, Bugs werden frühzeitig erkannt und können beseitigt werden. Automatisierte Tests können auch über Nacht durchgeführt werden und laufen unabhängig vom Tagesgeschäft – das schafft Freiräume für qualitative Arbeit wie etwa die Entwicklung neuer Funktionalitäten oder – mit Blick auf die Fachabteilungen in Banken – Zeit für wertschöpfende Tätigkeiten. Wie immer aber, wenn es um Mensch und Maschine geht, gilt: das perfekte Zusammenspiel macht den Unterschied! So können große Teile an Tests effizient automatisiert durchgeführt werden, es empfiehlt sich aber durchaus, stichprobenartig auch manuelle Tester eine Software prüfen zu lassen, die dann ihre fachliche Expertise und letztlich ihre menschliche Intelligenz mit einbringen.

Autor:
Ralf Klein, Produktmanager bei der agentes Unternehmensgruppe

Weitere Informationen zur Testautomatisierung:
www.agentes.de/auic/