Dienstag, 22. Januar 2013

Welche Skills braucht ein Tester?

Aus meiner Sicht ist ein Tester nicht jemand, der ein Dokument vorgesetzt bekommt und dann die Test-Schritte ausführt. Nein. Ein Tester (besser gefällt mir die englische Bezeichnung TE - Test Engineer) benötigt deutlich mehr Skills.

Testing Know-How
Der TE benötigt methodisches Know-How zum Erstellen von Testkonzepten, wie zum Beispiel die Äquivalenzklassenanalyse, Entscheidungstabellen oder die Grenzwertanalyse. Er beherrscht außerdem Review-Techniken, um in frühen Entwicklungsphasen Qualität sichernd mitzuwirken.
Er kennt die Begriffe zum Testing (wichtig ISTQB Curriculum) und aus dem Entwicklungsvorgehen (V-Modell XT, Agile Vorgehensweisen, CMMI etc.). Sonst klappt die Verständigung zwischen TE's und mit den Softwareentwicklern (SE) einfach nicht - auf jeden Fall nicht mit TEs aus anderen Unternehmen. 

Testziele und Testfälle definieren
Die Qualitätsfaktoren (Funktionalität, Zuverlässigkeit, Robustheit, Benutzbarkeit, etc.) sind bekannt und für alle diese Faktoren kann er Testziele festlegen und Testfälle definieren. Damit nicht immer alles getestet wird, legt er Prioritäten pro Test fest und kann Risiken (Produktrisiken, Fehlerrisiken, Komplexitätsrisiken etc.) abschätzen. Er hat also eine Teststrategie.

Tests organisieren
Selbstverständlich kann er auch Tests managen. Testumgebungen und Testdaten definieren und erstellen. Testressourcen (Maschine, Mensch, Testzeiten)  festlegen ist selbstverständliches Handwerkszeug.

Werkzeuge kennen und nutzen
Viele dieser Aufgaben kann man nur effizient erfüllen, wenn man die entsprechenden Testwerkzeuge kennt und intensiv nutzt. Und jeder im Team muss die festgelegten Werkzeuge nutzen. Da spielt es keine Rolle, ob zur Testplanung Excel oder ein High-End Werkzeug genutzt wird. Natürlich machen integrierte Werkzeuge wie Quality Center, MS Test Manager, Test Bench oder auch Open Source Werkzeuge Sinn, in denen manuelle und automatische Testfälle (als Bestandteil von Testsuiten) definiert werden können und nach der Testausführung auch die Fehler gleich im System dokumentiert und verfolgt (Bug Life Cycle) werden können.


Fachliches Know-How
Für hochwertige Tests benötigt der TE natürlich fachliches Wissen zum Produkt oder technisches Wissen, wenn das Testgebiet z. B. eher im Bereich von Backends oder Datenbanken liegt (in dem Fall ist das Fachwissen eben Wissen über die Technik). Ohne fachlichen Hintergrund kann kein guter Testfall und kein gutes Testkonzept entstehen. Dazu muss ein TE auch Fachkonzepte und Use Cases verstehen können.

Testen...
Ja klar. Selber testen ist auch ein wichtiger Teil des Jobs. Die Testfälle ausführen und Abweichungen hochwertig dokumentieren, machen ebenfalls einen guten TE aus. Dazu gehören z. B. die Fähigkeiten der  Klassifikationen von Fehlern, der Bewertung von Fehlerschwere und -dringlichkeit aus Sicht des Kunden und auch eine Dokumentation, die ein SE nachvollziehen kann, um einen Fehler zu reproduzieren.
Gute Tester mit viel Erfahrung finden Fehler, an die vorher kein Entwickler gedacht hat.

Und er kann programmieren. Muss er das wirklich können? Wenn ja, ist das klasse. Dann steht der Testautomatisierung, und damit einer weiteren Qualitätssteigerung, nichts mehr im Wege. Aber viele TEs können es (noch) nicht. Doch vielleicht gibt ja auch hier Google vor, wohin der Weg in der Softwareentwicklung führt. Wie habe ich vor kurzem gelesen: "Test Engineers at Google do code".

Noch eine Anforderung mehr an den TE. Dabei ist sein benötigtes Fachwissen und Aufgabengebiet schon sehr umfangreich. Eine permanente Weiterbildung ist unabdingbar, da geht des dem Test Engineer genau so wie dem Software Engineer...




Keine Kommentare:

Kommentar veröffentlichen