Die Grundidee des Periodensystems besteht darin, die «Hard Skills» (Fachkompetenzen), die im Software Testing benötigt werden, zu gruppieren und auf eine einfach verständliche Art darzustellen. Die «Soft Skills» (soziale Kompetenzen) wurden bewusst weggelassen, sind aber natürlich ein fundamentaler Baustein der erfolgreichen Tester Karriere. Das Periodensystem beinhaltet in der ersten Version 30 Kompetenzen, die in 6 farblich gekennzeichneten Gruppen zusammengefasst wurden.
Testentwurf
Unter Testentwurf versteht man die Aktivität, die Testfälle aus Anforderungen ableitet und die notwendigen Testdaten definiert. Für den Testentwurf haben wir folgende Kompetenzen erfasst:
- Anforderungsreviews
- Analyse der Testbasis
- Testfälle erstellen
- Testdaten bereitstellen
- Prüfen des Testsystems
Die Analyse der Testbasis setzt den Grundbaustein für die Erstellung eines soliden Testfalls. Angemessen beschriebene und mit Abnahmekriterien versehene Anforderungen erlauben es, abzuleiten, welche Testszenarien notwendig sind, um die Funktionalitäten zu testen. Die Testfallermittlung erfordert viel Know-How. Die Kunst besteht darin, mit möglichst wenigen repräsentativen Testfällen eine dem Risiko entsprechende hohe Testabdeckung sicher zu stellen.
Testdurchführung
In der Testdurchführung werden die Tests für ein Softwaresystem oder für eine Komponente ausgeführt. Diese können systematisch und/oder explorativ durchgeführt werden. Folgende Kompetenzen wurden für die Testdurchführung definiert:
- Fachtest
- Exploratives Testing
- Usability Testing
- Agile Testing
- Scaled Agile Testing
Das explorative Testen sowie das Testen im agilen Team als Embedded Tester gewinnt hier immer mehr an Bedeutung. Hinzu kommt der Umgang mit Tests im skalierten agilen Umfeld (z.B. SAFe), um nebst User Storys auch Features oder Epics end-to-end zu testen. Unabhängig von der Testmethodik müssen Defects angemessen verfolgt, und Nachtests und Regressionstests aufgesetzt und durchgeführt werden.
Test Engineering
Das Test Engineering behandelt die technischen Aspekte des Testings. Es beinhaltet die folgenden Kompetenzen:
- Entwicklertest
- API Automatisierung
- GUI Automatisierung
- Last und Performance Testing
- Security Testing
Der Entwicklertest umfasst Tests, die auf Code Ebene durchgeführt werden, wie Test Driven Development und statische Analyse. Nebst der Testautomatisierung gehören sodann die nicht-funktionalen technischen Tests zum Test Engineering, namentlich Last & Performance und Security.
Quality Architecture
Bei der Quality Architecture geht es darum, ein Testsystem zu entwerfen, welches den Prozess auf stabile und konsistente Weise steuert. Weiter soll dies eine kontinuierliche Verbesserung der Qualität ermöglichen. Dazu gehören folgende Kompetenzen:
- Clean Coding
- Testautomatisierung konzipieren
- Testdaten Management
- DevOps Pipeline aufsetzen
- Testumgebungs Management
Nebst dem Aufsetzen und Verwalten der Testinfrastruktur gehört dazu insbesondere eine stabile Continuous Integration, Testing und Delivery Pipeline, welche auf den CALMS Prinzipien (Culture, Automation, Lean, Measurement und Sharing) von DevOps basiert.
Test Management
Unter Testmanagement versteht man die Koordination aller Tätigkeiten im gesamten Testprozess innerhalb eines Vorhabens. Das Testmanagement besteht dabei aus vielen einzelnen Aktivitäten, die wie folgt gruppiert werden können:
- Testkonzeption
- Testplanung
- Defect Management
- Testmeetings planen und moderieren
- (stakeholdergerechte) Berichterstattung
- Testteam führen, coachen
In traditionellen Projekten wird der Testmanager oftmals mit der Aussage «Vertrauen ist gut, Kontrolle ist besser» verbunden. Diese Aussage kann im agilen Umfeld auf «Vertrauen ist gut, Transparenz und kontinuierlicher Feedback ist das Beste» adaptiert werden.
Test Organisation
Es ist wichtig, das Fundament für die Organisation des Testings frühzeitg zu legen, die korrekte Zuweisung von Ressourcen (Zeit, Personen und Infrastruktur) sicherzustellen und die Softwarequalitäts-Ziele festzulegen. Um dieses sicherzustellen, bedarf es:
- Der Evaluation geeigneter Tools
- der Durchführung von Testassessments
- der Verbesserung des Testprozesses
- des Erstellen eines Testhandbuchs
Idealerweise nicht einmalig, sondern im Rahmen eines kontinuierlichen Verbesserungsprozesses. Dies damit die Testorganisation sowie der damit einhergehende Testprozess stetig optimiert und weiterentwickelt werden kann.
Den agil-explorativ automatisierenden DevOps Test Manager gibt es natürlich nicht. Je nach Rolle gibt es verschiedene Ausprägungen. Embedded Tester oder Fachtester haben den Fokus auf Testentwurf- und Durchführung. Technische Tester oder Software Developer hingegen in Test (SDET) auf Test Engineering und Quality Architecture. Test Manager oder Test Coach's auf Test Management und Test Organisation. Die Kompetenzen sollen helfen aufzuzeigen, wo die eigenen Stärken liegen und in welche Richtung ich mich entwickeln kann und will.
Die Liste der Fachkompetenzen im Periodensystem des Software Testings ist sicherlich nicht komplett. Die Fähigkeiten könnten auch anders geschnitten werden. Ideen und Anregungen nehmen wir gerne entgegen.