Ab drei einen Apfelstrudel? Testen vs. Checken

Obviously, I do know that QA, at least a tester, is at the bottom of the totem pole. (Will Cyrus) [1]

Es scheint zum guten Selbstverständnis des Softwaretesters zu gehören, dass er einen der undankbarsten Jobs nicht nur der Industrie, sondern des gesamten Arbeitsmarktes inne hat.[2] Nicht ganz zu unrecht wird man dann auch nicht selten gefragt, ob einem der Job denn wirklich Spaß mache – kein Wunder, ist man doch im Gegensatz zu Managern oder Codern zu einer recht ausgewogenen Meeting/Doing Balance verdammt. Ist zusätzlich gleichermaßen von Entwicklern, Projektleitern und Kunden als konstruktiver Informationsträger geschätzt. Darf hemmungslos strukturiert und ordentlich arbeiten und den eigenen peniblen Geist ungestört ausleben. Kann sich uneingeschränkt allen interessanten und komplexen Verstrickungen des Software Development Live Cycles widmen – und zwar sowohl in den Maschinen-, Prozess- als auch den Menscheninteraktion desselben. Und darf dabei jeglicher Neugier hemmungslos fröhnen: Oh, ein Käfer! Woher kommt er? Wohin geht er? Hat er Geschwister? Ob ich ihn wohl nachmittags bei ofenwarmem Apfelstrudel mit Vanilleeis nochmal wiedertreffen werde?

Recht unverständlich also das Mitleidheischen eines Softwaretesters. Verständlicher hingegen das Mitleidheischen des viel zu oft alleine gelassenen Software’checkers’ [3] – dem nur angetragen ist, stupide nachzuprüfen, ob das vermeintlich fertige Programm auch alles tut was es tun soll. Der streng nach Spezifikation alles durchcheckt, Haken setzt, klick hier, passiert das, hier die Eingabedaten und bitte alles auch in allen Browsern prüfen, und ja, natürlich unterstützten wir IE auch in Version 7. Ach ja, und Release ist übrigens nächsten Montag früh, du hast doch Zeit am Wochenende?

Bei solch reinem Checklistenabarbeiten, braucht man dafür wirklich einen Softwaretester? Das könnte man doch auch dem deutlich billigeren Praktikanten oder Werkstudenten geben? Oder man teilt die Arbeit über die Abteilung auf – jeder darf mal, alle müssen bisschen mitleiden und die Langeweile verteilt sich im Kollektiv alle paar Wochen? Und braucht man das überhaupt? Der Coder muss doch den Check ohnehin machen, prüft der denn nicht nochmal nach, ob das was er da gebaut hat, auch funktioniert? Legitime Fragen, falsche Fragen.

Warum nicht lieber so: Wenn ich genau weiß, was ich vom Programm erwarte, und diese bestehende Funktionalität wiederholt überprüfen und verifizieren will, könnte ich dann nicht Routinen einbauen, die mir eben das automatisch prüfen, wann immer ich eine Änderung am Code vornehme? Und entlaste damit mein Team, das nun Resourcen frei hat, den Blick von oben zu wagen, den schwarzen Schwan zu suchen [4], sich die ausgefallenen Anwederfälle und komplexeren Testszenarion auszudenken, UI-Tests, Testskripte und Unittests zu schreiben, Code Reviews vorzunehmen, und neue Skills zu lernen? Die automatisierten Checks zu checken und ihnen dann Freitag nachmittags bei ofenwarmem Apfelstrudel gemeinsam nochmal abschließend beim grün werden zuzusehen?

Was dem Softwaretester dann noch bleibt, sind die kleinen Details, die schönen Fehler und die wichtigen Fragen (und das Vanilleeis und der Apfelstrudel). Es werden mehr als drei fehlgeschlagene Anmeldeversuche schon nach genau drei fehlgeschlagenen Anmeldeversuchen gemeldet? Wording. Wöchentlicher Newsletter wird einen Tag zu früh rausgeschickt, aber nur der erste batch, dann re-adjustiert der cron auf das korrekte Datum? Passiert nur nach Monatswechsel, wenn der Monat weniger als 31 Tage hat. [6] Who owns the fish? [7] Eh, ein Glasaugenbarsch als Haustier? Einem absoluten Volltrottel mit Swimming Pool gehört der Fisch. [8]

Software auf erwartete Funktionalität checken ist wichtig. Regression Tests sind wichtig. Ebenso wichtig ist aber, besonders in agiler Softwareentwicklung, mit ihren naselangen Releasezyklen, diese auf eine automatisierte Basis zu stellen. [5] Sonst bleibt der Softwarechecker in aller Monotonie irgendwann gegenüber der Regressionen blind, in der Folge frustriert und dann auch bald abwandern. Dahin wo es Apfelstrudel mit Vanilleeis gibt. Dahin, wo es eine Community gibt, die Module entwickelt, die schon durch viele Köpfe gelaufen sind. Köpfe, die die naheliegenden Fragen bereits gefragt und gecheckt haben: Ich werbe einen neuen Nutzer auf meinem Portal, per mail-Formular. Oh, den Nutzer gibts schon auf dem Portal? Oh, der Nutzer wurde bereits geworben? Oh, will ich vielleicht nicht einen, sondern zehn Nutzer gleichzeitig werben? Und wenn ein geworbener Nutzer dem Portal beigetreten ist, will ich dann nicht vielleicht auch noch ein kurze Nachricht? Und dann vielleicht auch noch einen Preis gewinnen, für den geworbenen neuen Nutzer? Ab drei einen Apfelstrudel? Drupal, anyone?

QA  testing