Warum heute ein Software-Entwickler nie ein agiler Software-Tester werden kann

Oder – Was für eine Provokation!

JA – es ist eine provokative Aussage! Was zeichnet einen SW-Entwickler aus, um ein (sehr) guter SW-Tester zu sein? Was fehlt ihm, um in dieser Rolle aktiv zu werden?

Zunächst die Frage: Was bringt ein Software-Entwickler aufgrund seiner Erfahrung für das Testing im agilen Umfeld mit? Jeder Entwickler kennt meist verschiedenste SW-Entwicklungsplattformen. Dazu kommt eine Vielzahl kleiner Helferlein, wie die Tools dieser Plattformen, à la Compiler, Linter, Tools für statische Code Analyse etc. Er kann sich auch weitere Werkzeuge selbst bauen.

Sein Know-how als Entwickler befähigt ihn, analytisch und lösungsorientiert zu denken. Auch ist er gewohnt, sein Arbeitsprodukt zu verifizieren. Er nennt es Testen, wir, die professionellen SW-Tester nennen es «ausprobieren». Warum?

Software-Entwickler stecken in der Regel sehr detailliert in dem ganz konkreten SW-Kontext, den Sie prüfen. Der Kosmos, den sie betrachten, ist meist recht eng umschrieben und lokal auf die Logik ihres SW-Codes fokussiert. Sie testen daher auch oftmals nur diese Logik und nicht unbedingt das Requirement.

Entwickler gehen konstruktiv vor, sie kreieren ein SW-Produkt. Der SW-Tester hingegen versucht, diese Konstruktion zum Wanken zu bringen. Er verfolgt einen destruktiven Ansatz. Wenn der SW-Entwickler ein guter Tester werden möchte, muss er motiviert sein, Tests zu entwickeln, welche versuchen, die Schwachpunkte der Software zu identifizieren – er muss sich sozusagen auf die «dunkle» Seite der Macht begeben.

Eine gute Möglichkeit ist es, den «Test First»- oder «Test Driven Development» Ansatz zu verfolgen. Da er aus seiner Praxis weiss, zu welchen «Tricks» ggf. gegriffen wird, um unter Zeit- und Budgetdruck zu Ergebnissen zu kommen, kann er diese Erfahrung auch gezielt zur Fehlersuche nutzen. Insbesondere um Seiteneffekte in lokalen SW-Konstrukten zu identifizieren, muss der Entwickler oft seinen Testkosmos erweitern, da hier oftmals applikations- oder sogar systemübergreifende Tests vonnöten sind.

 

Blog - Softwareentwickler kein Tester

Know-how muss auch bezüglich der Testmethodik erworben werden, damit aus dem «Ausprobieren» ein systematisches «Testen» wird. Im agilen Testen von iterativ erstellten SW-Artefakten wird ziemlich schnell der Ruf nach Testautomation laut. Hier kann der SW-Entwickler in der Rolle «Testautomatisierer» aus dem Vollen schöpfen. Er erstellt Software zum Testen von Software (wir nennen es auch «Testware») und kann meist «seine» Werkzeuge hierfür sehr effizient zum Einsatz bringen. Sowohl SW-Entwickler als auch Tester basieren auf den gleichen Vorgaben, ggf. interpretieren sie diese unterschiedlich.

ACHTUNG! Beide Seiten können dabei auch fehlinterpretieren.

Fazit:

Was hilft dem Entwickler beim Testen:

  • Ein sehr gutes technisches Implementierungswissen
  • Die Kenntnis mehrerer Entwicklungs-Technologien und deren Frameworks
  • Die Kenntnis vieler (nicht immer sauberer) Tricks und Kniffe
  • Das Können «Testware» zu entwickeln

Was hindert den Entwickler beim Testen:

  • Ein teilweise fehlendes Methodenwissen zum Software-Testing
  • Eine starke Fokussierung auf konkrete Lösungen

Ein Entwickler kann also doch sehr wohl ein agiler Tester werden, nur müssen bestimmte Fähigkeiten neu erlernt werden und diverse Angewohnheiten abgelegt werden. Die Aufgabenerweiterung eines SW-Entwicklers mit echten Testaufgaben in einem agilen Delivery Team kann zudem eine sehr gute Bereicherung des Tätigkeitsfeldes sein und ist im Sinne eines Q-Gewinns in der SW-Produktion.

Autor

Andreas Kiessling, Agile & Quality Professional

«In der Ruhe liegt die Kraft», das ist das Motto von Andreas. In der Analyse komplexer Sachverhalte und deren Abstraktion wird die Aufgabenstellung neu strukturiert und einer praxisorientierten Lösung zugeführt. Seine Ausdauer und jahrzehntelange Erfahrung helfen den Teams schnell auf Speed zu kommen.