Was haben Koala, Samurai & Ninja mit dem Software Test zu tun?

Was haben Koala und Ninja mit dem Softwaretest zu tun? Für die Koalas lässt sich das leicht beantworten. Tester sind für die Qualitätssicherung verantwortlich. Im Englischen ist Qualitätssicherung übersetzt Quality Assurance oder kurz QA … und die Kollegen, die mit der Quality Assurance (QA) betraut sind, heißen somit „QAlas“.

 

Ob nun der Koala als kuschliger und Eukalyptus liebender Zeitgenosse das passende Wappentier für uns Tester ist, darüber kann man sich streiten. Aber die IT-Branche hat einen Hang zu „Ikonen“ und „Wappentieren“ wie Linux und Tux, JAVA und Duke oder die Agile Testing Days und das Einhorn. Und deshalb ist es nicht verwunderlich, dass die Informatiker als wahre Romantiker für sich eine Metapher geschaffen haben, um den Idealen eines guten Programmierers ein Bild zu geben: den Coding Samurai.

Dabei wird nicht der kriegerische Aspekt betont, sondern der Coding Samurai oder Samurai Developer ist das Idealbild eines Entwicklers, welcher sich durch Training zur Meisterschaft in seinem Arbeitsfeld gebracht hat. Im Blog von Sergey Vasilyev ist beschrieben, dass er sich an einen strengen Ehrenkodex hält: feststehende Regeln, die den Arbeitsprozess und die Codequalität verbessern. Dies sind zum Beispiel einfache Dinge wie erst mit dem Entwickeln zu beginnen, wenn das Problem verstanden wurde, oder sich an die gesetzten Entwicklungsvorschriften der Firma oder des Projektes zu halten. Ihr Wissen teilen die Coding Samurai in Coding Dojos. Hier trainieren und üben die Entwickler an Beispielaufgaben, sogenannten Katas, und festigen das richtige Vorgehen oder lernen neue Fertigkeiten. Beide Begriffe – Dojos (Übungshalle in den japanischen Kampfkünsten) und Katas (festgelegte und namentlich benannte Abfolgen von Techniken, die den Übenden Prinzipien vermitteln sollen) – stammen auch aus der japanischen Kampfkunst.

Wenn wir als Tester nun den Bogen weiterspannen und neben dem Koala ein etwas wehrhafteres Bild für uns aussuchen müssten, was wäre dies? In Japan und auch in unserer modernen Popkultur ist das Gegenstück zum guten Samurai der negativ belegte Ninja. Ninja gleich Tester? Mancher Entwickler würde bei diesem Gedanken nicht abgeneigt sein. Doch bei genauerer Betrachtung bietet sich der Ninja als Gleichnis für den Tester noch aus anderen Gründen an. Wobei wir wieder von der eigentlichen blutigen Aufgabe der beiden Kontrahenten Abstand nehmen wollen. Die Ansprüche an einen Entwickler in der heutigen Zeit und besonders in agilen Entwicklungsprojekten sind sehr hoch. Er muss wie ein Samurai ein disziplinierter und gut ausgebildeter Kämpfer für gute Code- und damit Produktqualität sein.

Doch die Anforderungen an den perfekten Tester in aktuellen Projekten sind noch weitaus höher. Wie bei seinem Vorbild aus Japan, dem Ninja, muss der gute Tester die Fertigkeiten seines „Gegenstücks“, dem Entwickler, beherrschen.

Warum? Er muss nicht nur die Sprache des Entwicklers sprechen, sondern im agilen Umfeld mit Hand an den Code anlegen können.
Doch das Wissen eines Entwicklers hilft ihm auch bei der Arbeit am Testobjekt. Die Arbeit von Testern im Einsatz besteht nicht nur aus dem Klicken auf Oberflächen. Der Tester muss heute Skripte auf der Bash starten können, SQL-Statements absetzen und Log-Dateien finden sowie lesen können. Als nächste Säule des Tester-Know-hows sind Kurse wie die des International Software Testing Qualifications Board (ISTQB) und der Certified Agile Tester (CAT). Leider sind die Verbindung der Fertigkeiten eines Entwicklers und die Methodik eines Testers nicht ausreichend. Auch hier können wir Anleihen in der Legende der Ninja nutzen.
Er lernt neben den Kampfkünsten wichtige Techniken wie Verkleidung und Darstellung (Henso Jutsu), Methoden zum Tarnen und Eindringen (Shinobi-iri), Strategie (Bo-ryaku), Spionage (Cho Ho), Flucht und Verstecken (Inton Jutsu), Meteorologie (Ten-mon) sowie Geografie (Chi-mon). Und die Ausbildung und tägliche Arbeit des Testers sehen neben den methodischen Fähigkeiten wie Testfallerstellungsverfahren auch weitere Lehr- und Arbeitsgebiete vor, die den oben genannten Techniken der Ninja thematisch sehr nahe kommen. Wir verfeinern unsere Kommunikationsfähigkeiten, lernen Teststrategie und üben das Infiltrieren zu testender Systeme.
Außerdem eignen wir uns für jedes Projekt durch sorgfältige Vorbereitung das Wissen der fachlichen Domäne an, in der wir tätig sind, um die zu testende Software optimal prüfen zu können.

Tester sind nicht das „dunkle“ Gegenstück zum Entwickler. Beide arbeiten Hand in Hand, um gute Software zu bauen. Und mit dem Coding Samurai und dem Testing Ninja gibt es zwei gute Metaphern, die die Anforderungen und Fähigkeiten beider Rollen zusammenfassen: Ausbildung und Disziplin. Und wir erkennen, dass der Tester sich nicht nur auf seine Testmethodik verlassen kann, sondern bei seiner Arbeit in modernen (und agilen) Projekten und der Kommunikation auf allen Projektebenen sich auf weitere Fähigkeiten wie Teststrategie, Kommunikation oder Entwicklerfähigkeiten zurückgreifen muss.

Quellen:
[1] http://nolar.info/samurai-developers/
[2] http://de.wikipedia.org/wiki/Ninjutsu