Was sind Testwerkzeuge?
Testwerkzeuge werden genutzt, um Testaktivitäten zu unterstützen. Solche Werkzeuge sind u.a.:
- Testausführungswerkzeuge und Testdatengeneratoren
- Werkzeuge zur Verwaltung von Anforderungen, Testfällen, automatisierten Testskripten, Testdaten , Testergebnissen
- Werkzeuge für die Berichterstattung sowie Überwachung der Testdurchführung
- Allgemeine Werkzeuge, die beim Testen helfen (z.B. auch Excel)
Klassifizierung von Testwerkzeugen
Testwerkzeuge können, abhängig vom Kontext, unterschiedlich klassifiziert werden. Ebenfalls sind sie auf Basis verschiedener Kriterien wie Preis oder Lizenzmodell (z.B Standardsoftware oder Open-Source) eingestuft werden.
Einstufung nach der unterstützten Phase des Testprozesses
Einige Werkzeuge unterstützen nur oder hauptsächlich eine Aktivität, andere mehr als nur eine Phase des Testprozesses. Meistens werden sie unter der Aktivität klassifiziert, mit der sie am wahrscheinlichsten in Verbindung gebracht werden.
Einstufung nach der Beeinflussung des Testobjekts
Einige Arten von Testwerkzeugen können intrusiv sein, d.h., sie können das tatsächliche Ergebnis des Tests manipulieren. So kann zum Beispiel durch Code-Instrumentierung eingefügter Code das Performance Verhalten, den Speicherbedarf oder die Antwortzeiten einer Anwendung beeinflussen. Die erreichte Codeüberdeckung kann durch die Verwendung eines Überdeckungswerkzeugs ebenfalls verzerrt sein.
Typen von Testwerkzeugen
Werkzeugunterstützung für das Management des Testens und für Testmittel
Managementwerkzeuge können auf jede Testaktivität über den gesamten Softwareentwicklungslebenszyklus angewendet werden. Die Anzahl der Testfälle ist nicht selten drei- bis vierstellig, weshalb Testplanungswerkzeuge für Erfassung, Katalogisierung, Verwaltung und Priorisierung von Testfällen notwendig sind.
Diese besitzen fortgeschrittene Funktionalitäten wie die Aufzeichnung von Testergebnissen und Erstellung von Fortschrittsberichten, Traceability von Tests und Testergebnissen, Schnittstellen zu Testausführungswerkzeugen sowie zu Fehlermanagementwerkzeugen. Darüber hinaus werden ebenfalls von Entwicklern Werkzeuge zur kontinuierlichen Integration (continuous integration) benutzt.
Werkzeugunterstützung für statische Tests
Statische Testwerkzeuge stehen in Verbindung mit der manuellen Prüfung der Arbeitsergebnisse oder auf die werkzeuggestützte Bewertung des Codes. Die statische Analyse ist häufig eingebettet in automatisierten Build & Delivery-Systemen, z.B. in der agilen Entwicklung oder der kontinuierlichen Auslieferung (continuous delivery). Ein Beispiel für statische Werkzeuge sind Werkzeuge, die Reviews oder statische Analysen unterstützen.
Werkzeugunterstützung für Testentwurf und Testrealisierung
Testentwurfswerkzeuge helfen bei der Spezifikation sowie der Validierung und Verifikation von
Modellen der zu erstellenden Software. Sie ermöglichen frühzeitiges Aufdecken von Fehlern im Entwicklungsprozess und sind der Ausgangspunkt für die Generierung von Testdaten und Testfällen aus dem Modell. Beispiele für solche Werkzeuge sind:
- Testwerkzeuge für das modellbasierte Testen
- Testdateneditoren und -generatoren
- Werkzeuge für testgetriebene Entwicklung (test driven development)
Werkzeugunterstützung für Testdurchführung und Testprotokollierung
Solche Werkzeuge dienen der automatischen oder halbautomatischen Ausführung von Testfällen oder allgemein, um die Testdurchführung und –protokollierung zu unterstützen und zu verbessern. Dabei wird das zu testende Objekt mit Testdaten versorgt, das Verhalten des Testobjekts aufgezeichnet und der gesamte Testlauf protokolliert. Beispiele:
- Testausführungswerkzeuge, um Regressiontests durchzuführen
- Überdeckungswerkzeuge
- Werkzeuge für Unit-Test-Frameworks
Werkzeugunterstützung zur Performance-Messung und dynamischen Analyse
Zum Testen nicht-funktionaler Anforderungen wie beispielswiese Antwortverhalten eines Systems unter verschiedenen simulierten Nutzungsbedingungen hinsichtlich der Anzahl konkurrierender Nutzer, Hochlauf/Anlaufverhalten (ramp-up) sind Werkzeuge zur Last- und Performance-Messung unabdingbar, da diese nicht effektiv manuell durchführbar sind.
Werkzeugunterstützung für spezielle Testbedürfnisse
Zusätzlich zu Werkzeugen, die den allgemeinen Testprozess unterstützen, gibt es viele andere Werkzeuge,
die spezifische Aspekte des Testens unterstützen. Beispiele für diese sind Werkzeuge, die sich u.a. auf
Folgendes konzentrieren:
- Testen der Barrierefreiheit
- IT-Sicherheitstest
- Portabilitätstest (z.B. Testen von Software über mehrere unterstützte Plattformen)