In vielen Softwareprodukten und -projekten ist es schwierig, adäquate Personen zu finden, die die Rolle der Testperson qualifiziert ausfüllen.
Dabei ist doch die Aufgabe, die Software umfassend und mit Sachkenntnis unter die Lupe zu nehmen, um Fehler und Anomalien frühzeitig zu finden, damit diese behoben werden können, bevor diese beim Kunden auffallen.
Was ist das Besondere an der Spezies „Tester“ und warum kann das nicht jede Person tun? Dieser Fragestellung wollen wir uns im Folgenden widmen.
Wie wird man Tester?
In Deutschland gibt es weder eine Ausbildung noch einen Studiengang zum „Software-Tester“. In den einschlägigen Stellenbörsen gibt es keine einheitliche Job-Bezeichnung für den Tester. So findet man beispielsweise:
In allen o. g. Positionen beinhaltet das Job-Profil Aufgaben aus dem Themenbereich Test. Was man hier erkennt, ist, dass es nicht „den Tester“ gibt. Viel mehr sind Testende auf bestimmte Bereiche und Themen hochspezialisierte Fachleute.
Zur Professionalisierung des Berufsbildes hat sich das International Software Testing Qualifications Board (ISTQB) als gemeinnützige Zertifizierungsstelle zur Aufgabe gemacht, eine standardisierte Ausbildung für Softwaretester zu erarbeiten. Hier werden stufenweise Zertifizierung mit Spezialisierungen für Softwaretesting angeboten.
Was sind die Aufgaben von Testern?
Testende sollten frühzeitig in den Prozess eingebunden werden, denn der Test beginnt nicht erst am Ende der Entwicklung, sondern bereits in frühen Phasen der Softwareentwicklung.
In diesen Phasen unterstützen Testende bereits das Design- und Entwicklungsteam und analysieren die Spezifikationen, fertigen ein Testkonzept an und beginnt mit der Erstellung der Testfälle.
Je nach Fertigstellungsgrad der Software sollte jetzt schon mit der Testdurchführung begonnen werden, sofern dies sinnvoll ist. So können über sogenannte funktionale Tests und nicht-funktionale Test die ersten Testergebnisse erzielt werden und bei Fehlern und Anomalien frühzeitig Massnahmen getroffen werden.
Mit zunehmender Reife der Software steigen die Anforderungen an den Test ebenfalls. Neben den funktionalen und nicht-funktionalen Tests kommen jetzt weitere Teststufen hinzu. So wird das System im Verbund mit weiteren Systemen (End-to-End) geprüft. Es wird nach möglichen Sicherheitslücken im Penetration-Test gesucht und im Rahmen von Last- und Performancetests wird das Antwortzeitverhalten geprüft, um nur einige Teststufen zu nennen.
Das Aufgabenspektrum von Testerinnen und Testern ist hierbei sehr gross und reicht von der Testplanung, der Erstellung und Pflege von Testfällen und Testdaten, der Ausführung der Testfälle über die Bewertung und Dokumentation der Testergebnisse bis hin zur Unterstützung bei der Fehleranalyse und Fehlerbehebung sowie Dokumentation und Präsentation der Ergebnisse. Dies bedeutet, dass die Testenden jederzeit im engen Austausch mit allen Beteiligten stehen müssen.
Aber was sind Qualifikationen und Verhaltenskompetenzen, die eine Testperson für diese Aufgaben haben muss?
Anforderungen an Testpersonal
Oftmals werden Mitarbeitende zum Test verpflichtet, die weder die intrinsische Motivation noch die notwendigen Anforderungen erfüllen, weil die Aufgaben häufig von Projekt-/Produktverantwortlichen unterschätzt werden.
„Jeder kann doch testen“ ist eine häufig gehörte Aussage.
Nein, das ist leider nicht der Fall. Als testende Person muss man über ein Set an Hard- und Softskills verfügen, um die Aufgaben zu bewältigen.
Da die Aufgaben sehr vielseitig sind, muss die testende Person die Vorgaben der Requirement Engineers und Entwickelnden verstehen und zusätzlich immer die Endkundinnen und Kunden im Hinterkopf behalten, damit das System auch den Vorstellungen der späteren User entspricht. Neben IT-Wissen sind Methodenkenntnisse im Test notwendig. Nur so können Testfälle abgeleitet werden, die mit einer hohen Wahrscheinlichkeit unbekannte Fehler entdecken. Neben dem IT- und Test-Wissen ist das Domänen-Wissen (das Fachwissen im Umfeld der Testobjekte) notwendig, um das System zu überprüfen.
Auch die Sozialkompetenz bzw. Verhaltenskompetenz ist eine wichtige Anforderung. Da Testende im Laufe des Prozesses mit vielen Menschen (vom Requirements Engineer bis zum Endkunden) zusammenkommen, sind Teamfähigkeit, politisches Geschick und die Fähigkeit, Perspektivwechsel durchzuführen, essenziell. Darüber hinaus dürfen Neugierde, Kreativität, analytisches Denken und Frustrationstoleranz ebenso wenig fehlen wie die Bereitschaft, scheinbare Tatsachen zu hinterfragen.
Das klingt doch nach sympathischen Menschen, oder?
Warum sind Softwaretester trotzdem meist unbeliebt?
Man stelle sich vor, es wird ein neues Softwareprodukt entwickelt. Es kommen Projektleitende, Requirement Engineers und Entwickler:innen zusammen und planen das Produkt. Sie alle glauben an den Projekterfolg und an die Möglichkeit, ein neues System zu konstruieren. Von der Spezifikation bis zur Anwendung arbeiten alle Hand in Hand, damit das „Baby“ das Licht der Welt erblicken kann.
Ferner stelle man sich vor, dass nach der „Geburt“ Testende auf der Bildfläche erscheinen, die das System unter „destruktiven“ Gesichtspunkten analysieren und nach Fehlern sowie Anomalien suchen.
Augenscheinlich tritt hier ein Interessenkonflikt auf. Die Konstrukteure fühlen sich angegriffen – ihre Arbeit wird zerstört und kritisiert. Das führt zu einem Image-Problem der Testenden.
Zweifelsohne denken Testende „destruktiv“ – aber das ist ihre Aufgabe. Gute Testerinnen und Tester gehen davon aus, dass das System nicht fehlerfrei ist. Jeder Fehler, der gefunden wird, kann vor einer Auslieferung behoben werden und macht das Produkt noch besser.
In Summe erschaffen so alle Beteiligten ein neues System. Testende unterstützen das Team, um das System „perfekt“ zu machen.
Testen kann die Anwesenheit von Fehlern aufzeigen, aber nie einen Nachweis von Fehlerfreiheit liefern!
Fehlerfreie Software gibt es nicht und ein vollständiger Test ist nicht möglich, auch wenn man unbegrenzte Zeit, Budget und Ressourcen hat. Tests sind immer nur Stichproben und die Wahl der Testfälle muss so gestaltet sein, dass mit einer hohen Wahrscheinlichkeit Fehler gefunden werden. Das ist die Kunst, die Tester bewerkstelligen müssen.
„Testen ist eine extrem kreative und intellektuell herausfordernde Aufgabe.“
Diese Aufgabe gehört in die Hände von Fachleuten, die die Anforderungen erfüllen und intrinsisch motiviert sind, das System zu verbessern.
Man muss Software-Testerinnen und Tester als wichtigen Bestandteil im Prozess betrachten und nicht als reine „Click-Roboter“, die Testfälle abarbeiten.
Sie möchten mehr darüber erfahren, was unsere Software für Versicherer leisten kann? Dann wenden Sie sich gerne an unseren Experten Karsten Schmidt, Head of Business Development.