Gemeinsam stark
Software-Produkte müssen mit hoher Qualität schnell auf den Markt gebracht werden. Entscheidender Faktor dabei ist die Zusammenarbeit zwischen Entwicklern und Testern.

» Von , 28.09.2009 10:42. Letztes Update, 28.09.2009 10:46.
Frank Beeh ist Software-Architekt, Christian Heldstab Software-Entwickler bei Zühlke
Viele Software-Projekte werden noch mit einer klassischen Arbeitsteilung durchgeführt, die unter anderem eine strikte Trennung von Entwicklung und Test vorsieht. Diese Kluft kann zu seltsamen Auswüchsen führen, wie ein fiktives Beispiel von Ernst, dem Entwickler, und Tilo, dem Tester, zeigt.
Ernst hat einen fixen Termin für die Übergabe seiner Software an Tilo. Bis zu diesem Zeitpunkt implementiert er wie wild und übergibt das Produkt leicht verspätet. Tilo stellt sehr schnell fest, dass kaum etwas funktioniert. Erst nach einigen Nachbesserungen durch Ernst kann Tilo mit dem Testen beginnen. Die Nerven liegen bereits jetzt blank. Tilo meldet unzählige Fehler; es gibt heisse Diskussionen. Dies zieht sich über Wochen hin. Mit grosser Verspätung und geringer Qualität wird schliesslich doch ausgeliefert. Ernst und Tilo sind erschöpft und frustriert. Trotz grosser Anstrengungen ist nichts entstanden, worauf sie stolz sein könnten.
Brücken schlagen
Was ist hier falsch gelaufen? Die Ursache für das Scheitern ist zunächst in falsch verstandenen Zielen auf beiden Seiten zu suchen. Tilos Ziel ist, möglichst viele Fehler zu finden. Je mehr er aufdeckt, umso besser ist seine Arbeitsqualität. Ernst hingegen versteht eine geringe Fehlerquote als Zeichen dafür, dass er gute Qualität geliefert hat. Ihr gemeinsames Ziel - das bestmögliche Produkt für den Kunden zu entwickeln - tritt in den Hintergrund.
Eine hohe Qualität ist nur durch einen ganzheitlichen Ansatz zu erreichen, bei dem das Testen als kontinuierliche Aufgabe aller gesehen wird und nicht auf spezielle Rollen und Phasen beschränkt ist. Erst wenn auch die Entwickler ihre Verantwortung übernehmen, lassen sich grundlegende Verbesserungen erreichen.
Bei der Übergabe zum Systemtest muss die Software testbereit sein. Dies kann nur durch entwicklungsbegleitendes Testen sichergestellt werden. Hier ist eine Automatisierung unbedingt notwendig, ansonsten ufert der Aufwand für das kontinuierliche Testen schnell aus.
Bei der Automatisierung bietet eine enge Zusammenarbeit grosse Vorteile. Während die Entwickler technisches Wissen und Detailkenntnisse einbringen, können die Tester ihr systematisches Wissen einsetzen und die Gesamtsicht wahren. Idealerweise wird für gefundene Fehler gemeinsam ein Testfall erstellt, der diesen reproduziert. Somit wächst die Anzahl der Regressionstests ständig, womit neue Versionen sehr schnell getestet werden können. Diese Art der Zusammenarbeit sollte an Stelle der Taskforce-Spirale treten, in der sich Ernst und Tilo am Schluss drehen.
Wenn Entwickler und Tester eng zusammenarbeiten, vereinfacht sich auch die Projektleitung. Das kontinuierliche und automatische Testen liefert zu jedem Zeitpunkt ein klares Bild der aktuellen Qualität. Die Testphase wird damit kontrollierbarer und der Aufwand zum Finden und Beheben von Fehlern wird reduziert.






KOMMENTARE
KOMMENTAR SCHREIBEN