top of page

Wer testet was? - Vision des Testens


Es hat sich bereits rumgesprochen, dass Softwaretests wichtig sind. Kein gutes Softwareprojekt kann es sich leisten, auf gut geplantes Testen zu verzichten. Unternehmen haben verstanden, dass spätes oder gar vernachlässigtes Testen teuer werden kann.

Aber in vielen Unternehmen wird zu wenig über die genaue Definition des Softwaretests, über die für einen Test notwendige Rollenverteilung oder den Testprozess gesprochen. Softwarehäuser haben hier einen klaren Vorteil. Denn abhängig von der Größe des Hauses sind oft ganze Testteams vorhanden, die nahe an der Entwicklung Tests designen und ausführen können. Für produzierende Unternehmen, bei denen der Bereich Entwicklung nur einen Teil der gesamten Unternehmensstruktur darstellt, ist das häufig nicht in dieser Form abbildbar. Da jede Branche dann auch wieder unterschiedliche Sicherheitsstandards bedienen muss und Anforderungen hat, ergeben sich für die Software sehr individuelle Testbedarfe und -methoden.

Es ist daher von großer Bedeutung, dass sich jedes Team bzw. jedes Projekt mit der eigenen Testvision auseinandersetzt, diese betrachtet und ausgiebig diskutiert.

Wichtig ist: In einer solchen Diskussion liegt niemand falsch. Jeder Input ist hilfreich, um eine eigene Definition, passende Rollenverteilung oder den richtigen Prozess zu finden. Und nicht nur das: Es wird auch ein gemeinsames Verständnis über den Auftrag und das gewünschte Resultat geschaffen. Dabei darf nicht vergessen werden, dass die aus der Diskussion entstandene Vision des Testens nicht in Stein gemeißelt ist, sondern im Rahmen des internen Qualitätsmanagements nach jeder Projektphase oder jedem Prozessschritt hinterfragt und neu diskutiert sowie gegebenenfalls angepasst wird. Eine Überprüfung der Vision kann und sollte nicht nur dann erfolgen, wenn etwas schiefgelaufen ist. Denn auch bei einem eigentlich gut laufenden Projektverlauf kann es Spielraum zur Verbesserung geben.

Wie beginne ich also?

1. Schritt: Definition des Softwaretest: Was bedeutet testen für uns im Projekt?

Kein Projekt kommt darum herum eine eigene Definition zu finden, was Softwaretest innerhalb des Projektes bedeutet. Eine Definition kann auf vielen Wegen gefunden werden. Wie wäre es zum Beispiel mit einem Brainstorming basierend auf den Fragen: Was ist eigentlich der Softwaretest? Was beinhaltet er? Wann und wie oft führt man ihn durch?

Das Ergebnis kann ganz unterschiedlich ausfallen. Ein Team freut sich vielleicht, dass alle Teammitglieder die gleichen oder ähnliche Antworten haben, während in einem anderen Team hier noch Diskussionsbedarf besteht. Dennoch sollte eine eigene und vor allem aktuelle Definition entstanden sein, hinter der das gesamte Team steht. Und diese steht fest, bevor man sich mit den Themen Rollen und Prozess auseinandersetzt.

2. Schritt: Rollen und Zuständigkeiten: Wer macht was? Und wer testet was?

Tester, Testmanager, Testanalyst und noch ganz viele andere Bezeichnungen findet man in den unterschiedlichen Unternehmen und Stellenbeschreibungen, wenn es um Testexperten geht. Doch wer macht eigentlich was? In der Fachliteratur ist dies überwiegend ähnlich beschrieben und lässt kaum Spielraum zur Interpretation. Viel zu oft, werden dann solche theoretischen Rollenbeschreibungen 1:1 in das Unternehmen übernommen, abgelegt und nicht weiter hinterfragt. Doch wird nicht selten im Projekt festgestellt, dass solche starren Rollen nicht passen oder zu wenig Platz für notwendige Anpassungen oder Spielräume lassen. Es fehlt an Flexibilität. Was ist also mit den Rollen, die im Projekt tatsächlich gelebt werden? Wieder empfiehlt sich zu Brainstormen: Passen unsere Rollen? Haben wir überhaupt Rollenbeschreibungen? Passen diese zu unseren Skills und zum aktuellen Projekt, oder sollten wir diese anpassen? Wenn ja, wie?

Als Ergebnis schaut man dann auf Rollen, die noch mit Leben gefüllt werden müssen. Wessen Aufgabe ist es einen Test zu designen? Wer übernimmt fachliche Verantwortung? Wer die Dokumentation? Muss der Test fachlich gereviewed werden? Und machen wir das technisch (besonders bei automatisierten Tests)? An dieser Stelle ein kleiner Exkurs: Tests können auch technisch gereviewed werden: Bei automatisierten Tests kann ein technisches Review sinnvoll sein. Je nach Testtool können auch Tester eine Code-Convention haben, an man sich halten will.

Das ein Entwicklertest von einem Entwickler durchgeführt wird, sagt jetzt ja schon der Name. Doch was beinhaltet der Entwicklertest alles? Wo fängt der Prozess an? Beim Unit-Test? Und wie sieht es mit anderen Tests aus? Wer führt einen Systemtest durch? Welche Testarten sind in meinem Projekt sinnvoll? Ist es Aufgabe des Testers, auch die Codequalität zu prüfen? Sollte der Tester überhaupt den Code kennen (Stichwort White-Box-Testing)? Oder sollte sich der Tester auf das Erstellen und Durchführen von Black-Box-Tests konzentrieren? Wenn ein Tester, der sehr nahe an der Entwicklung ist, dann auch mit der nötigen Distanz einen Abnahmetest durchführen? Oder sollte der Abnahmetest vielleicht durch eine weitere Person unterstützt werden? Oder wird der finale Abnahmetest doch lieber von einem Produktmanager gestützt durch die Testleitung durchgeführt?

Fragen über Fragen... Haben Sie sich in Ihrem Projektteam diese schonmal gestellt?

3. Schritt: Testprozess: Wann wird wie getestet?

Besonders in der agilen Softwareentwicklung ist diese Frage schnell und oft mit "am liebsten sofort" beantwortet. Der Wunsch ist nachvollziehbar und steht und fällt mit der Umgebung in der getestet wird, welche hier aber nicht das Thema sein soll.

Wir haben also die Frage nach dem "Wann" beantwortet.

Es gehört aber einiges mehr zum Testprozess. Testfälle müssen anhand von Spezifikationen, Change Requests etc. designt werden. Anschließend müssen sie angelegt und beschrieben werden. Bei automatisierten Tests müssen sie entwickelt werden. Ist ein Test fertig gebaut, muss er einem Testplan hinzugefügt werden. Dies sind nur einige Aufgaben, die es zu koordinieren gilt und die Teil des gesamten Testprozesses sind.

Als Vorbereitung zur Erstellung des idealen Testprozesses kann man nun wieder eine Runde Brainstormen und Fragen wie: Welche Tätigkeiten gehören in Ihren Testprozess? Wann fängt der Testprozess an? Wo zweigt er aus dem Entwicklungsprozess ab? Sollen Tests und deren Inhalt noch mit dem Projektleiter abgestimmt sein, oder haben die Tester freie Hand solange sie eine bestimmte Abdeckung erreichen? Was soll wann getestet werden? Welche Testpläne werden in welchem Zyklus durchgeführt? Wie und wann werden Testpläne erstellt? Wann werden bestehende Tests überarbeitet oder erweitert? Wann werden Tests neu geschrieben? Beantworten. Wie man sieht, ist besonders beim Testprozess der Fragenkatalog immens groß und sollte nicht unterschätzt werden.

Zusammenfassung

Wenn man gut und dem Projekt entsprechend testen will, sollte jedes Team seine eigene Vision vom Testen gemeinsam erarbeiten und festhalten. Der Austausch im Team ist hierbei enorm wichtig. Teamleiter und Teammitglieder müssen sich gemeinsam Gedanken machen, wie diese Vision aussieht. Das erhöht die Akzeptanz der Definition, Rollen und des Prozesses und führt langfristig zum Erfolg. Viel Spaß beim Brainstormen!


bottom of page