„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 Unternehmen?
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.