Im Spannungsfeld von DevOps und Continuous Development

Wege zum agilen Testmanagement

von - 27.10.2021
Foto: Shutterstock / Andrey Suslov
Wie Unternehmen Funktionsfähigkeit, Benutzerfreundlichkeit und Sicherheit von Applikationen optimieren können.
Kann man sich auf Software verlassen, die seit 25 Jahren kontinuierlich weiterentwickelt wird  und die bei Millionen von Unternehmen im Einsatz ist? Die Antwort lautet: lieber nicht! Zumindest nicht, wenn es sich um Microsoft Exchange Server handelt. Gravierende Sicherheitslücken in den Versionen 2010 bis 2019 führten im Januar und Februar 2021 dazu, dass Hacker Hunderttausende von Exchange-Servern übernehmen konnten.
Das nach einer vermutlich regierungsnahen chinesischen Hackergruppe namens Hafnium benannte Debakel ist nur die Spitze des Eisbergs. Die CVE-Liste (Common Vulnerabilities and Exposures), eine Sammlung öffentlich bekannter Schwachstellen, umfasst mehr als 200.000 Einträge. Allein dieses Jahr kamen bis Mitte April über 8000 neue hinzu. Die auf der Plattform Hacker One organisierten Pentester und Cybersecurity-Spezialisten finden im Durchschnitt alle 2,5 Minuten eine Sicherheitslücke. Die Gesamtmenge aller dort dokumentierten Lücken beläuft sich auf mehr als 565.000. Diese Zahlen dürften eigentlich niemanden überraschen. Laut der von Veracode, einem Spezialisten für Applikationssicherheit, herausgegebenen Studie „State of Software Security“ weisen 76 Prozent aller Anwendungen mindestens eine Sicherheitslücke auf. Rund die Hälfte der Schwachstellen ist sechs Monate nach ihrer Entdeckung noch nicht behoben.
Jürgen Bernert, Geschäftsführer von Avision, Spezialist für Software-Modernisierung, glaubt, dass diese Zahlen sogar noch untertrieben sind: „Ich gehe davon aus, dass sich in 100 Prozent der Software Sicherheitslücken finden lassen.“ Mit Testlösungen wie Vega Vulnerability Scanner, HP Fortify und anderen ließen sich viele Schwachstellen zwar aufdecken, das allein reiche aber nicht aus. „Wenn Entwickler keinen Wert auf Sicherheit legen, nutzt das beste Testen nichts.“
Hinzu kommt laut Klaus Lambertz, Gründer und Geschäftsführer der Verifysoft Technology GmbH, dass außerhalb sicherheitskritischer Bereiche die Überprüfung von Software auf Bugs noch immer eher stiefmütterlich behandelt wird. „Bei den funktionalen Tests mag das Produkt dann funktionieren“, erklärt Lambertz. „Ändern sich aber die Umstände – etwa durch eine andere Nutzung oder Erweiterung der Software, können Fehler auftreten, die bei den funktionalen Tests nicht aufgedeckt worden sind.“
„Testen ist nicht dazu da, Fehler zu finden“
com! professional sprach mit Oral Avcι, Leiter Competence Center Testing beim IT-Dienstleister  Adesso, darüber, warum Unternehmen nicht aus Fehlern lernen und was die wirklichen Ziele des Software-Testens sind.
com! professional: Herr Dr. Avcι, Sie beschäftigen sich seit vielen Jahren mit dem Software-Testen in der Software-Entwicklung. Wo sehen Sie aktuell die größten Herausforderungen?
Oral Avcι: Das Testen wird zunehmend komplexer und anspruchsvoller. Zwar entwickeln sich auch die Methoden weiter, aber die Praxis hinkt oft hinterher. Darüber hinaus beschleunigen sich die Release-Zyklen, was die Anforderungen an das Testtempo erhöht. Schließlich steigt auch der Anteil der Abläufe, die digital abgebildet und durch Software-Systeme unterstützt werden. Der Digitalisierungsschub im vergangenen Jahr hat diesen Trend noch verstärkt. Und wo viel Software eingesetzt wird, muss auch viel getestet werden.
com! professional: Welchen Stellenwert hat das Testen in den Unter­nehmen?
Avcι: Das Thema wird unterschätzt, sowohl was den Aufwand und Zeitbedarf angeht, als auch was die Qualifikation des Testpersonals betrifft.
com! professional: Gilt das Testen denn immer noch als Kostenfaktor und Bremse?
Avcι: Zum Glück muss man nicht mehr generell über die Notwendigkeit des Testens diskutieren. Aber das Thema ist nach wie vor von Missverständnissen geprägt. In der Wahrnehmung vieler Unternehmen generiert ein Entwickler Mehrwert, ein Tester vor allem Kosten. Es herrscht immer noch die Vorstellung, das Ziel des Testens sei es, Fehler zu finden.
com! professional: Ist das denn nicht so?
Avcι: Nein, Testen ist nicht dazu da, Fehler zu finden, sondern Transparenz über die Qualität einer Software zu schaffen. Fehler sind ein Baustein dieser Transparenz genauso wie erfolgreich ausgeführte Testfälle. Das Testen stellt eine Momentaufnahme des aktuellen Zustands dar und hilft Entscheidungsträgern dabei, die Frage zu klären, wie kritisch die gefundenen Software-Fehler sind, und ob ein Release veröffentlicht werden kann oder nicht. Testen ist wie eine Versicherung. Man nutzt es, um bestimmte Risiken zu vermeiden. Wenn nichts passiert, kann wie bei einer Versicherung leicht der Eindruck entstehen, dass die Maßnahmen eigentlich überflüssig sind und nur Kosten verursachen.
com! professional: Wie entscheide ich über Art und Umfang der Tests?
Avcι: Das hängt vom Qualitätszielprofil der Software ab. Die Steuerung für einen Herzschrittmacher stellt andere Herausforderungen an das Testen als ein Handy-Spiel. Auch die Zielgruppe spielt eine wichtige Rolle. Auf einem öffentlich zugänglichen E-Commerce-Portal sind Usability-Tests wesentlich wichtiger als bei einem internen System, wo man Schwächen in der Benutzerführung unter Umständen durch intensivere Schulungen kompensieren kann.
com! professional: Wann kann eine Software als ausreichend getestet gelten?
Avcι: Viele Unternehmen denken, wenn die Software einmal geprüft und veröffentlicht wurde, ist die Sache erledigt. Tatsache ist aber: Bei jeder Anpassung muss wieder getestet werden. Gerade bei Modernisierungsprojekten, wo oft wenig an der Funktionalität, aber viel an der Architektur geändert wird, sind gründliche Tests unerlässlich. Vor allem bei Fachanwendern herrscht allerdings oft Unverständnis, warum sie erneut testen sollen, obwohl sich an den Funktionen gar nichts geändert hat. Bestimmte Probleme, etwa im Zeitverhalten oder bei der Sicherheit einer Software, findet man außerdem nicht, wenn man nur punktuell auf Funktionalität prüft. Dazu braucht es qualifiziertes Testpersonal.
com! professional: Wie gehen Unternehmen mit Software-Fehlern um? Lernen Sie daraus?
Avcι: Das ist leider viel zu selten der Fall. Meist werden Fehler erfasst, in ein Defect-Management-System eingetragen und behoben. Die Ursachen werden aber nicht analysiert. Um wirklich daraus lernen zu können, muss man einen Schritt zurückgehen und sich fragen: Wie ist das Problem entstanden? Gibt es bestimmte Muster? Häufen sich Fehler an bestimmten Stellen? Nur so kann man die Ursachen an der Wurzel bekämpfen.
com! professional: Und was sind die häufigsten Ursachen für Software-Fehler?
Avcι: Meines Erachtens liegt es in der Mehrzahl der Fälle an einem mangelhaften Requirements Engineering. Vergessene, unvollständige oder missverstandene Anforderungen führen zu Change Requests, die man hätte vermeiden können. Wenn Fehler aber nur stur abgearbeitet werden, fallen diese Zusammenhänge nicht auf.
com! professional: Wie kann man Fehler finden, die man nicht erwartet hätte? Ist das überhaupt möglich?
Avcι: Das ist tatsächlich ein Problem. Qualifizierte Tester prüfen daher auch Anwendungsfälle, die gar nicht vorgesehen sind. Wenn etwa ein Feld für einen bestimmten Zeichensatz und eine definierte Maximallänge der Zeichenkette spezifiziert ist, wird es der Tester mit Eingaben außerhalb dieser Spezifikation konfrontieren. Es gibt immer noch Systeme, die durch solche unerwarteten Ereignisse in einen undefinierten Zustand gebracht werden können. Ein anderes Beispiel sind mobile Lösungen. Sie müssen natürlich auch bei schwacher Netzabdeckung oder Verbindungsabbrüchen funktionieren – was getestet werden muss.
com! professional: Lässt sich so das Ziel einer fehlerlosen „Zero Defect“-Software erreichen?
Avcι: Das wird eine Wunschvorstellung bleiben. Tests können immer nur stichprobenartig prüfen, man kann nicht erschöpfend testen. Es handelt sich stets um eine Risikoabschätzung.
com! professional: Wie lassen sich Tests effizienter gestalten?
Avcι: Es gibt empirische Untersuchungen, dass sich Fehler an bestimmten Stellen häufen. Auf solche Bereiche muss man sich konzentrieren, statt nach dem Gießkannenprinzip das Lastenheft durchzutesten. Diesen risikobasierten Ansatz muss man aber auch methodisch umsetzen und nicht einfach nur „nach Gefühl“.
com! professional: Welche Rolle spielt dabei die Automatisierung?
Avcι: Ohne Testautomatisierung wird keine Organisation Release-Zyklen beschleunigen und gleichzeitig die Testabdeckung aufrechterhalten oder sogar erweitern können. Die Frage ist nur, was genau man automatisiert. Auch da gibt es häufig falsche Erwartungen. Die Hoffnung, mit Automatisierung schnell Personal einsparen und auf Tester verzichten zu können, ist fatal.
com! professional: Wie können Unternehmen eine Testautomatisierungs-Strategie erfolgreich umsetzen?
Avcι: Sie sollten die Testautomatisierung wie ein Entwicklungsprojekt betrachten. Letztendlich ist die Automatisierungslösung auch nur ein Stück Software, an das die üblichen Kriterien der Wartbarkeit, Modularität und Erweiterbarkeit anzulegen sind. Vor allem aber muss die Architektur der Automatisierungslösung so flexibel sein, dass sie sich einfach an Veränderungen in der zu testenden Software anpassen lässt. Wir erleben immer wieder, dass Automatisierungsprojekte „mal schnell“ aufgesetzt werden, ohne auf diese Flexibilität zu achten. Beim nächsten Release-Wechsel ist dann der Aufwand für die Anpassung so hoch, dass lieber wieder auf manuelles Testen umgestellt wird.
com! professional: Sie betonen immer wieder die Bedeutung qualifizierter Tester. Finden Unternehmen solche Experten überhaupt am Markt?
Avcι: Das ist schwierig, es gibt ein krasses Missverhältnis zwischen dem Riesenbedarf an Testern und den Ausbildungsangeboten. Das Thema ist in den Lehrplänen der Studiengänge Informatik und Wirtschaftsinformatik völlig unterrepräsentiert. Es ist allenfalls ein kleiner Abschnitt in einer Vorlesung. Das müsste sich dringend ändern, um dem Bedarf an Experten und der Bedeutung des Testens in der Praxis gerecht zu werden.
com! professional: Die Rolle des Testers ist natürlich auch nicht so attraktiv wie die eines Data Scientists oder Cloud-Architekten …
Avcι: … dabei ist das ein ausgesprochen anspruchsvoller und interessanter Beruf. Tester stehen im Mittelpunkt der Software-Erstellung, sie sind der Brückenbauer zwischen Fachbereich, Entwicklung und Betrieb, haben koordinierende, planende und technische Aufgaben. Sie können mit einer Fehlerstichprobe nicht nur Aussagen über die Software-Qualität machen, sondern auch gezielt Hinweise geben, wie die Ursachen abgestellt werden können.
com! professional: Was muss man mitbringen, um für den Testberuf geeignet zu sein?
Avcι: Neben der fachlichen Expertise zeichnet Tester ein gewisser kritischer Professionalismus aus. Man muss Spaß daran haben, eine Software auseinanderzunehmen, Annahmen auf ihre Korrektheit zu überprüfen und Fehler zu finden.
Dr. Oral Avcι
Leiter Competence Center Testing bei Adesso
Foto: Sonja Dirscherl
Viele Unternehmen denken, wenn die Software einmal geprüft und veröffentlicht wurde, ist die Sache erledigt.
Verwandte Themen