Die Aufgaben eines Softwaretesters

Veröffentlicht auf 16. August 2010

Haben Sie schon mal darüber nachgedacht, welche Aufgaben ein Softwaretester in Ihrem Projekt hat? Welche Aufgaben es noch vor einiger Zeit waren und in wie weit sich dieses Spektrum erweitert hat?
Falls ja, dürfen Sie diesen Abschnitt überspringen.
Falls nein, überlegen Sie es sich doch kurz einmal. Was würden Sie als "Standardaufgaben" definieren und wie ist die heutige Realität?
Was benötigt man alles, bis man einen Test starten kann? Was kann ein Tester erwarten vorgesetzt zu bekommen? Nach welchen Vorgaben sollte am Besten getestet werden, was ist für die Durchführung nötig, was ist das Ziel eines Tests? Welche Kenntnisse sind nötig, wie werden sie vermittelt? Muss eine Nachbereitung stattfinden, was wird benötigt?

Im nachfolgenden möchte ich Ihnen kurz erzählen, wie ich die Situation in einigen Projekten erlebt habe.
Am Anfang der Geschichte steht natürlich der Entwickler, der eine Software und Funktionen erstellt oder überarbeitet. In vielen Projekten gibt es ein geordnetes Versionsmanagement und es werden nur komplette und größtenteils funktionsfähige Versionen erstellt und dem Testteam übergeben. Manchmal erstellt aber auch der Entwickler eine neue Version und liefert die Software ggf. Komponentenweise an den Test aus.
Wenn es keine Testumgebungsverantwortlichen gibt, ist es oft die Aufgabe des Testers die Version und die Komponenten zu installieren. Aber selbst wenn der Tester eine fertige Installation bekommt, kann er oft nicht davon ausgehen, dass dies Installation vollkommen funktionsfähig bereits ist.


* Es gilt also als erstes die Funktionsfähigkeit herzustellen.


Wurde auch wirklich alles installiert oder fehlt etwas aus dem Installationsauftrag, fehlen vielleicht sogar Komponenten, die installiert werden hätten müssen? Muss noch etwas konfiguriert, extra angelegt oder bestimmte Rechte erteilt werden? Wie hätte das vermieden werden können?
Steht die Installation stellt sich die Frage was man nun damit anstellt.


* Der Tester muss nun also feststellen, was von ihm erwartet wird und was er zu testen hat.


Welche Vorgaben sind zu erfüllen, wo sind diese zu finden? Was hat sich seit der letzten Version geändert, welche Bereiche sind betroffen?
Des Weiteren sind die Ziele des Softwaretests enorm unterschiedlich von Projekt zu Projekt. Während es in einem Projekt reicht den ersten Fehler zu finden und zu melden, muss im anderen Projekt die komplette Version erst durchgetestet werden. In manchen Projekten kann der Tester aufhören zu arbeiten, wenn er einen Fehlerzustand festgestellt hat, in anderen Projekten muss die Fehlerursache genauer ermittelt und dem Entwicklungsteam mitgeteilt werden.
Was nun fehlt ist ein Plan, um die Anforderungen und Funktionen zu überprüfen.


* Der Tester muss nun also Testfälle erstellen und sein Vorgehen planen.


Sobald es dann an den Test geht, stellt sich die Frage, wie die Tests durchgeführt werden können.


* Der Tester muss sich also die passenden Testwerkzeuge besorgen und sich deren Funktionalität aneignen.


Oft ist es auch leider so, dass die nötigen Werkzeuge aus Kostengründen nicht zur Verfügung stehen. Hat der Tester dann Entwicklererfahrung kann er dies nützen und sich die passenden Werkzeuge selbst erstellen und Skripte bzw. Programme programmieren, die ihm den Test erleichtern.
Ein weiterer Punkt bei dem diese Fähigkeit von nutzen ist, ist der Bereich der Testdatenerstellung.


* Es ist Aufgabe des Testers die nötigen Testdaten (ggf. über Ansprechpartner) zu besorgen oder sich die entsprechenden Testdaten zu erstellen.


Die Art der Testdaten kann dabei recht unterschiedlich sein, dabei kann es sich um Softwarezwischenstände, Konfigurationsdateien, Textdateien mit Daten, XML-Dateien oder z.B Datenbankinhalte handeln.
Während der Testdurchführung muss der Tester genau darauf achten, wie er vorgeht, damit er bei einem Fehler genau berichten kann, wie es dazu kommt und wie der Fehler reproduzierbar ist.


* Es ist also eine Aufgabe des Testers einen Fehler bestmöglichst zu beschreiben, damit auch andere ihn reproduzieren können.


Dazu genügt es aber meist nicht nur das Vorgehen zu beschreiben, sondern meist müssen auch die Testmaterialien mitgeliefert werden und die Meldung an den entsprechenden Verantwortlichen in der Entwicklung übergeben werden.
Wie bereits oben erwähnt gibt es hier unterschiedliche Ansatzpunkte. Da die Software sich ja bereits im Fehlerzustand befindet erwarten manche Projekte, dass der Tester genauer hinschaut und die Ursachen in Skripten, Software, Umgebung oder Testdaten sucht. Probleme in der Testumgebung, mit Testwerkzeugen oder Testdaten kann der Tester meist selbst beheben, bei den anderen Problemen wird aber in diesen Projekten eine genaue Analyse erwartet. Die höchste Ehre ist es, wenn der Tester selbst seine Meinung vortragen darf und vielleicht sogar einen Lösungsvorschlag machen darf.


* Der Tester muss sich also nicht nur mit seinem Test, der Fachlichkeit, den Testwerkzeugen und der -umgebung auskennen, sondern auch noch oft mit den Entwicklerskripten, der Software, den Komponenten und ggf. sogar mit dem Programmcode.


Der Tester muss sich also Wissen in vielen Bereichen aneignen, ist entsprechendes Material oder Personen nicht vorhanden oder verfügbar, muss er selbst nach geeigneten internen oder externen Quellen suchen.
In manchen Projekten fehlen leider auch die Möglichkeiten die Aufgaben entsprechen zu verteilen und auszuwerten.


* In diesem Falle ist es ggf. auch die Aufgabe des Testers dem Projektleiter eine Übersicht über den aktuellen Zustand der Software und des Fortschritts zu geben.


Natürlich hilft dies aber auch dem Tester selber, da er damit weiß, wo er noch genauer hinzuschauen hat, evtl. seine Testdaten erweitern muss und welche Aufgaben noch auf ihn warten.

Soweit wollen wir es mal belassen, die Liste ist sicherlich nicht vollständig und allgemein gültig, aber ich denke es ist deutlich geworden, dass ein Tester oft nicht nur Software auf Fehler prüft, sondern oft auch weit darüber hinaus aktiv werden muss, um kleinere Schwierigkeiten und Unzulänglichkeiten im Prozess zu umgehen und beheben zu können. Aus meiner Sicht ist ein solcher Tester sogar einer der besten Ansprechpartner, wenn es darum geht den ganzen Softwareentwicklungsprozess besser zu machen, da er oft überall beteiligt ist und somit die Probleme kennt und sicherlich auch Verbesserungsvorschläge machen kann.

Vielleicht erinnern sie sich ja auch bei Ihrem nächsten Gespräch mit einem Softwaretester an diesen Artikel und können die Vorteile des konzentrierten Wissens für sich selber und Ihr Projekt nutzen, denn Softwarequalitätssicherung geht heutzutage weit über nur passives "testen" hinaus. Genauso wie sich die Arbeit eines Softwaretesters weiterentwicklet hat.

Geschrieben von Robert Bullinger

Veröffentlicht in #Testmanagement

Kommentiere diesen Post