Soft Skills für Tester

Einst und heute

von Alexander Vukovic

Bereits Myers, der Begründer des traditionellen Software Testings, hat in seinem Buch „The Art of Software Testing“ (z. B. Second Edition von 2004) über Soft Skills philosophiert. Im Kapitel „The Psychology of Testing“ versucht er zu argumentieren, warum Tester eine negative Einstellung zum Testobjekt mitbringen müssen, um erfolgreiche Tester zu sein, indem sie möglichst viele Bugs finden. Er befindet sogar, dass Tester sadistisch sein müssen, weshalb der Job des Testers für viele positiv und konstruktiv denkende Menschen sehr schwierig umzusetzen ist.

Dieser destruktive Ansatz führt bei den Entwicklern zum Vorurteil, Tester seien „Kontrolleure“, deren einziges Ziel das medienwirksame „unter die Nase reiben“ von Fehlern ist. Auf dieser Basis kann keine sinnvolle Zusammenarbeit zwischen Test- und Entwicklungsteam erfolgen. Jedoch haben wir bis heute gelernt, dass sich dieser als „destruktiver“ Ansatz bereits seit den späten 1990er Jahren nicht durchgesetzte.

Innere Einstellung

Der Job des Testers besteht nicht darin hunderte von kleinen Fehlern zu finden und aufwändig in ein Tool zu dokumentieren. Der beste Tester findet gemeinsam mit der Entwicklung die wichtigen Fehler, erarbeitet Lösungsvorschläge und setzt diese um. Durch agile Vorgehensweisen und dem aktuellen State of the Art-Weg des agilen Testens wachsen Entwicklungs- und Testteams erfreulicher Weise wieder zusammen. In den letzten 20 Jahren entwickelte sich ein neues Bewusstsein für den Job des Testers.

Mittlerweile hat die Rolle des Testers im agilen Arbeitsumfeld den gleichen Stellenwert wie jede andere Rolle im Team. Eines hat sich jedoch rigoros geändert: Das Verantwortungsbewusstsein eines Testers für die Softwarequalität. Was natürlich nach wie vor besteht, ist die Tatsache, dass die Rolle eines Testers herausfordernd ist, auch was die Soft Skills betrifft. Die Aufgaben unterscheiden sich in der Aktivität und Reaktivität. Ein Codierer schafft Neues und ist in einer aktiven Rolle – er entwickelt, korrigiert, optimiert. Der Tester befindet sich in der reaktiven Rolle – er prüft, stellt fest und berichtet. Jedoch überbringt er selten gute Nachrichten für die Entwickler, kaum kommt ein „Super, die Korrektur funktioniert perfekt“. Entsprechend der Redewendung „ne nuntium nuntiorum malorum necate“ (dt.: „Tötet nicht den Boten einer schlechten Botschaft“) lautet die Botschaft leider zu oft: „Sorry, aber die Korrektur funktioniert nicht“.

Soziale & emotionale Intelligenz

Hier kommt die emotionale Intelligenz ins Spiel. In der Testerrolle muss man sich in unterschiedliche Personen und deren Sichtweisen hineinversetzen: Wie denkt der Software-User? Was benötigt der Endbenutzer? Welche technischen Skills sind vorhanden? Die größte Herausforderung an die Empathie eines Testers: Wie kommuniziere ich eventuelle Fehler an den Entwickler? Wie sage ich es ihm so, dass er es auch konstruktiv annehmen kann? Wie können Tester und Entwickler gemeinsam Problem lösen? Alles in allem ist sehr viel Fingerspitzengefühl notwendig. Lediglich eine selbstbewusste, gefestigte und auch den (eventuell aufbrausenden) Emotionen anderer gegenüber nachsichtige Persönlichkeit ist in der Lage, diesen Anforderungen zu entsprechen.

Der Ton macht die Musik! Konstruktive Kommunikation und zwischenmenschliche Beziehungen

Für einen Tester ist es wichtig, fachliches Know-how ohne persönliche Wertung objektiv formulieren zu können. Vergleichen Sie folgende Beispiele:

  • Eine Defectbeschreibung, die die Emotionen des Testers, allerdings nicht die Schritte des Testens beinhaltet, ist wenig konstruktiv: „Jetzt wollte ich etwas suchen und die Applikation ist schon wieder abgestürzt – wie sie es ständig tut. So kann ich nicht testen, ich habe es satt!
  • Eine emotionslose Defectbeschreibung des gleichen Problems mit schrittweiser Auflistung des Problems führt eher zur Lösung: „Beim Versuch Personen nach dem Nachnamen zu suchen kommt eine NullPointerException.
    1. Suchmaske öffnen
    2. Feld Nachname mit Mustermann befüllen
    3. Klick auf Suchen: Es erscheint ein Popup mit folgender Fehlermeldung: java.lang. NullPointerException at ...“

Der Job der Tester besteht somit nicht darin, Entwicklern ihre Fehler vorzuhalten, sondern ihnen mit konstruktivem Feedback die Lösung für Probleme zu erleichtern. Dabei ist es selbstverständlich, dies auf fachlicher Ebene professionell anzusprechen und keine Kritik auf persönlicher Ebene zu üben.

Negatives Denken

Muss ein Tester negativ denken können? Ja natürlich, aber es ist nicht die Hauptaufgabe sadistisch und destruktiv zu sein. Hinter dem Skill des negativen Denkens verbergen sich die Erfahrung und das Wissen des Testers über mögliche Fehlerquellen und -ursachen. Je nach Risikopriorisierung versucht er natürlich dieses Know-how auch in die Testfälle oder Testideen miteinzubringen und über den sprichwörtlichen Tellerrand der Lösung zu blicken.

Schnelles, sinnerfassendes Lesen

Teammitglieder in der Testerrolle sind mit sehr vielen Informationen gleichzeitig konfrontiert. Anforderungsbeschreibungen, Akzeptanzkriterien, Entscheidungstabellen, Research im Internet, Tools - all das erfordert eine wichtige Eigenschaft: Die des schnellen und sinnerfassenden Lesens. Tester sollten über herausragende Lese-Skills verfügen, denn diese stehen in direktem Zusammenhang mit der Effizienz beim Testen.

Beim agilen Testen wird darüber hinaus primär sessionbased, also timeboxed und explorativ, vorgegangen. Dabei werden keine Testfälle mehr dokumentiert, sondern der Tester schreibt eine Checkliste seiner Testideen und setzt diese dann im Zuge der Testsession um. Das bedeutet, der Tester muss während der Testsession alle relevanten Informationen in kürzester Zeit erfassen und umsetzen können.

Ständiges Lernen

Der Job des Testers kann für Early Adopters die Erfüllung schlechthin sein. Sie beschäftigen sich ständig mit Neuem, das noch niemand kennt, über das sie noch nichts wissen und das es zu erforschen gilt. Tester müssen somit stets auf dem Laufenden bleiben: Das Testobjekt kennenlernen, aus Fehlersituationen lernen, die Kundenfachsprache und die IT-Fachsprache lernen.

Die SEQIS Testexperten haben einen Entwicklungsbackground und bleiben auch in der Softwareentwicklung ständig am Ball. Natürlich bilden sie sich auch laufend in den Bereichen der Testautomation, den dazugehörigen Tools, der Skriptverfassung sowie dem Aufbau von Continuous Integration weiter. Die Rolle des Testers ist gerade heutzutage im ständigen Wandel und bedingt dadurch ständiges Lernen. Traditionelle Tester, die in einem agilen Team Fuß fassen möchten, aber auf dem Standpunkt stehen „Ich schaue nicht in die Datenbank, das ist nicht meine Aufgabe“, sollten sich dies in Bezug auf die nächste Eigenschaft überlegen.

Challenge accepted: Unbekanntes ausprobieren, auch ohne Vorkenntnisse und Erfahrungen

„Aus Angst gestorben ist auch tot“ lautet ein bekanntes Sprichwort. Jemand, der Angst vor Neuem und auch Unbehagen bei Veränderungen mitbringt, wird in der Testerrolle langfristig wenig glücklich werden. Man wird ständig mit Dingen konfrontiert, die es noch nicht gab und mit Problemen, die so noch nicht auftraten. Neue Versionen, geänderte Anforderungen – das Umfeld des Softwaretesters ist extrem volatil. Deshalb ist ein Tester laufend mit neuen Herausforderungen konfrontiert.

Wir sagen: Ein guter Tester macht jeden Tag etwas zum ersten Mal.

Mentoring: Wissen an Andere weitergeben

Anno dazumal wurden am Ende des Entwicklungsprozesses erst Tests aus Sicht der Endbenutzer durchgeführt. Somit hat sich der Nutzer größtenteils der Software angepasst und nicht umgekehrt.

Heutzutage wird Wissen ständig ausgetauscht. Fachbereichsmitarbeiter nehmen an den Testsessions teil, Teammitglieder mit Test-Knowhow machen temporäres Pairing mit anderen Teammitgliedern. Es wird ständig kommuniziert und damit Vieles ausgesprochen, das sonst im Verborgenen geblieben wäre. Jeder lernt von Jedem. Heutzutage wird Wissen ständig ausgetauscht. Fachbereichsmitarbeiter nehmen an den Testsessions teil, Teammitglieder mit Test-Knowhow machen temporäres Pairing mit anderen Teammitgliedern. Es wird ständig kommuniziert und damit Vieles ausgesprochen, das sonst im Verborgenen geblieben wäre. Jeder lernt von Jedem.

Timeboxing: Zeitmanagement und Aufwandpriorisierung

Häufig unterschätzte Eigenschaften sind die Selbstorganisation und eine sinnvolle Priorisierung der Aufgaben. Das Ziel des traditionellen Testens unterscheidet sich dabei signifikant von jenem des agilen Testens. Beim traditionellen Test steht eine möglichst hohe Testabdeckung im Vordergrund. Somit ist Vollständigkeit dabei das Ziel. Ganz anders im agilen Testing. Hier wird das Hauptaugenmerkt auf die Effizienz gelegt. Timeboxing ist hier das Schlagwort. Für jede Aufgabe wird eine fixe Zeitspanne definiert, die nicht überschritten werden darf. Wurde die Zeit festgelegt, so besteht die Möglichkeit den Inhalt zu priorisieren und zeitlich aufzuteilen. So werden die wichtigen Tätigkeiten abgedeckt, jedoch nicht ausufernd.

Fazit

Das Rollenbild des Testers hat sich deutlich verändert. Von der stupiden Abarbeitung einfacher, repetitiver Tätigkeiten, bei der eine Testautomation nicht angedacht war, bis hin zu der Durchführung von verpflichtenden, manuellen Tests auch bei präzisester Beschreibung wandelten sich die Aufgaben in abwechslungsreiche und herausfordernde Tätigkeiten. Eigenverantwortliche Skriptanpassungen, Korrekturen von Verknüpfungen und selbständiges Aufsetzen der Testumgebung bei denen auch Innovationsfähigkeit und Kreativität gefragt sind, machen den Job des Testers für nahezu Jeden attraktiv.

Zurück

Zum Seitenanfang navigieren