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 Vielzahl am Markt befindlicher Tools oder aber mit eigens entwickelter Testsoftware werden Aktivitäten eines Softwareproduktes im Testlauf überprüft und anschließend ausgewertet. Auftretende Anomalien werden in der Log datei festgehalten. In der Softwareentwicklung sind dabei vor allem die Qualität und der Status einer Anwendung entscheidend, sowie die Frage, ob ein neues Release besser ist als das alte. In konkreten Anwendungsfällen, wie beispielsweise 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 durchgeführt. Bei den automatisierten Tests werden im Vorfeld festgelegte Aktivitäten in Form von Testfällen zu defnierten 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ühzeitig aufspüren. Vor allem sind sie langfristig kostengünstiger und liefern signifikant stabilere Ergebnisse.
Die Testautomatisierung verfolgt primär das Ziel, die Qualität einer Software sicherzustellen. Dies gelingt unter anderem durch wiederholte Tests, wo durch die Qualität einer Software messbar gemacht wird – Fehler oder Nebeneffekte werden transparent und direkt an die Entwicklungs-Teams zurückgespielt. Diese sogenannten Regressionstests stellen sicher, dass durch Änderungen oder Erweiterungen einer Anwendung keine neuen Fehler in bereits getesteten Teilen der Anwendung entstanden sind. Durch die ermittelte Anzahl erfolgreich durchgeführter Testfälle pro Testlauf werden Ergebnisse auf Richtigkeit und Vollständigkeit geprüft. Es wird getestet, ob Fehler bereits behoben sind, ReleaseVergleiche werden
angestellt und der stabile Livebetrieb einer Anwendung wird sichergestellt. Vor allem in komplexen Softwareprojekten bietet sich die Testautomatisierung an, da sehr schnell eine große Anzahl an Testfällen erreicht wird, die jeweils einen langen Testzeitraum benötigen und durch manuelle Tester nur mit erheblichem Aufwand abgedeckt werden können.
Testmanagement als Basis für valide Ergebnisse
In der Praxis werden automatisierte Software-Tests jedoch noch nicht in allen Bereichen vollumfänglich eingesetzt. Vor allem im Banken und Versicherungsumfeld bestehen nach wie vor Schwierigkeiten, Testumgebungen herzustellen. Daneben werden vielerorts 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 semimanuelle Tests entstehen. „Eine Testautomatisierung beschleunigt den Prozess der Überprüfung in signifikantem Maß“, beschreibt Dr. Lars Werner, Entwicklungsleiter der agentes Unternehmensgruppe, den wesentlichen Vorteil des Verfahrens. „Die Aufwände entstehen vor allem durch Fehler in der Vorbereitung und Durchführung“, so Dr. Lars Werner weiter.
Häufig fehlt es im ersten Schritt an einem festinstallierten Testmanagement. Statt im Vorfeld Use-Cases zu definieren und eine Systematik der zu testenden Funktionen anzulegen, werden häufig erst hinterher, etwa am Ende eines Entwicklungsvorhabens, stichprobenartig Testfä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 werden, 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 Ergebnisse: hier kommt es vor allem auf eine gute Zusammenarbeit zwischen den Entwicklerteams und den Fachabteilungen 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 Strategie zugrunde, kann auch das Tool nicht den gewünschten Erfolg herbeiführen.
Systemgrenzen überwinden, fachliche Logik, zertifzierteTester
Als größte Herausforderung in der Testautomatisierung sehen die Experten das Zusammenbringen verschiedener RegistrySysteme an. Beim Einsatz gängiger 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 Interface Connector geht agentes den umgekehrten 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 Schnittstelle an und bietet von Anfang an eine Automatisierung. Dank der erweiterten Funktionalitäten können Systemgrenzen überwunden werden – ein nicht zu unterschätzendes Unterfangen im Rahmen der Testautomatisierung. Denn im Gegensatz zu reinen Tests von Oberflächen, ist genau die Überwindung von Systemgrenzen die große Herausforderung, die es zu bewältigen gilt, um erfolgreiches Testmanagement zu betreiben.
Daneben gelten Zertifizierungen sowie fachliches Knowhow als weitere Erfolgsgaranten. Ersteres versucht man international mit einer Zertifizierungsstelle für Softwaretester, dem International Software Testing Qualification Board (ISTQB) sicherzustellen. Das ehrenamtliche Expertengremium hat sich zum Ziel gesetzt, eine standardisierte 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 bereits über diese Zertifizierung. Tiefgreifendes Verständnis für die Fachlichkeit von Prozessen ist ebenfalls integrale Voraussetzung für die Testautomatisierung 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 Risikomanagement (MaRisk BA) festgeschrieben. 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 regulatorischen Anforderungen vernachlässigt. 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 Risiken für die Qualität der Daten und damit letztlich für den gesamten laufenden Betrieb. Die Situation im Bankenumfeld ist in verschiedener Hinsicht besonders: viele Häuser sind nach wie vor in Altsystemen gefangen und arbeiten mit in die Jahre gekommenen Systemen. Und auch die Herausforderungen rund um den Einsatz von Tabellenkalkulationsdateien 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 zusammen. Auch hier können häufig nicht die für die Tests benötigten Daten bereitgestellt werden, beispielsweise im Bereich Zahlungsverkehr. Als auf die Finanzbranche spezialisierter IT-Dienstleister steht agentes Unternehmen und Softwarehäusern genauso für die Test automatisierung zur Seite wie Banken und Sparkassen. Mit der eigens entwickelten 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 haben die Erfahrung gemacht, dass gerade Unternehmen oder auch Finanzinstitute, die Kleinanwendungen im Einsatz haben, die Testautomatisierung scheuen“, berichtet Dr. Lars Werner. „Hier setzen wir an und bieten neben der Beratung vor allem individualisierte, auf die jeweilige Situation vor Ort zugeschnittene UseCases an. Der Vorteil: aUIC kann auf Ergebnisse reagieren und UseCases 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/