6.1 Werkzeugunterstützung für das Testen
Testwerkzeuge unterstützen und erleichtern viele Testaktivitäten. Sie können die Effizienz des Testprozesses erhöhen, wiederkehrende Aufgaben automatisieren und objektive Messungen ermöglichen.
Arten von Testwerkzeugen
Testwerkzeuge lassen sich in verschiedene Kategorien einteilen, je nachdem, welche Testaktivitäten sie unterstützen:
Testmanagementwerkzeuge
Erhöhen die Effizienz des Testprozesses, indem sie das Management des SDLC, der Anforderungen, der Tests, der Fehlerzustände und der Konfiguration erleichtern.
Werkzeuge für statische Tests
Unterstützen den Tester bei der Durchführung von Reviews und statischen Analysen (z.B. Code-Analyse-Tools).
Testentwurfs- und Testrealisierungswerkzeuge
Erleichtern die Erstellung von Testfällen, Testdaten und Testabläufen (z.B. modellbasierte Testwerkzeuge).
Testdurchführungs- und Testüberdeckungswerkzeuge
Erleichtern die automatisierte Testdurchführung und die Messung der Überdeckung (z.B. Testausführungs-Tools, Coverage-Analyse).
Werkzeuge für nicht-funktionale Tests
Ermöglichen die Durchführung nicht-funktionaler Tests, die manuell nur schwer oder gar nicht durchführbar sind (z.B. Last- und Performance-Tests).
DevOps-Werkzeuge
Unterstützen die DevOps-Auslieferungskette, Verfolgung von Arbeitsabläufen, automatisierten Build-Prozess und CI/CD (z.B. Jenkins, GitLab CI).
Werkzeuge für die Zusammenarbeit
Erleichtern die Kommunikation im Team (z.B. Chat-Tools, Wiki-Systeme, Issue-Tracker).
Skalierbarkeits- und Standardisierungswerkzeuge
Unterstützen die Skalierbarkeit und Standardisierung der Bereitstellung (z.B. virtuelle Maschinen, Container-Tools wie Docker).
Weitere unterstützende Werkzeuge
Jedes andere Werkzeug, das beim Testen hilft – beispielsweise ist ein Tabellenkalkulationsprogramm im Kontext des Testens ebenfalls ein Testwerkzeug.
6.2 Nutzen und Risiken von Testautomatisierung
Testautomatisierung kann erhebliche Vorteile bringen, birgt aber auch Risiken. Es ist wichtig, sowohl die potenziellen Nutzen als auch die Risiken zu verstehen, um fundierte Entscheidungen über den Einsatz von Automatisierung treffen zu können.
Potenzieller Nutzen
- Zeitersparnis: Verringerung sich wiederholender manueller Arbeiten (z.B. Ausführung von Regressionstests, erneute Eingabe derselben Testdaten, Vergleich von erwarteten und tatsächlichen Ergebnissen)
- Konsistenz und Wiederholbarkeit: Vermeidung einfacher menschlicher Fehlhandlungen – Tests werden konsequent aus Anforderungen abgeleitet, Testdaten systematisch erstellt und Tests in gleicher Reihenfolge und Häufigkeit ausgeführt
- Objektivere Bewertung: Bereitstellung von Messungen (z.B. Überdeckung), die für Menschen zu kompliziert in ihrer Ermittlung sind
- Leichterer Zugang zu Informationen: Unterstützung des Testmanagements und der Berichterstattung durch Statistiken, Diagramme und aggregierte Daten über Testfortschritt, Ausfallraten und Testdauer
- Verkürzte Testdurchführungszeiten: Frühere Erkennung von Fehlerzuständen, schnellere Rückmeldungen und kürzere Produkteinführungszeiten
- Mehr Zeit für anspruchsvolle Tests: Tester haben mehr Zeit, um neue, intensivere und effektivere Tests zu entwerfen
Potenzielle Risiken
- Unrealistische Erwartungen: Überschätzung der Vorteile eines Werkzeugs (Funktionalität und leichte Handhabung)
- Ungenaue Schätzungen: Zeit, Kosten und Aufwand für Einführung, Pflege von Testskripten und Änderung des bestehenden manuellen Testprozesses werden unterschätzt
- Ungeeigneter Einsatz: Verwendung eines Testwerkzeugs, wenn manuelles Testen besser geeignet wäre
- Übermäßiges Vertrauen: Zu starkes Vertrauen in ein Werkzeug, Vernachlässigung der Notwendigkeit menschlichen kritischen Denkens
- Abhängigkeit vom Anbieter: Anbieter stellt möglicherweise Geschäftstätigkeit ein, nimmt Werkzeug vom Markt, verkauft an anderen Anbieter oder bietet schlechten Support
- Open-Source-Risiken: Open-Source-Software wird möglicherweise nicht mehr weiterentwickelt – keine weiteren Updates verfügbar, oder interne Komponenten müssen häufig angepasst werden
- Inkompatibilität: Automatisierungswerkzeug ist nicht mit der Entwicklungsplattform kompatibel
- Ungeeignete Werkzeugwahl: Werkzeug entspricht nicht den regulatorischen Anforderungen und/oder Sicherheitsstandards