Was ist ein Testwerkzeug?
Was ist der Zweck der Werkzeugunterstützung für den Test?
Was für Typen von Testwerkzeugen gibt es und was ist ihre grundlegende Funktionalität?
Was sind der Nutzen und die Risiken der Werkzeugunterstützung und Testautomatisierung?
Welche skriptbasierte Testausführungstechniken gibt es?
Was ist bei der Auswahl und Einführung eines Testwerkzeuges zu beachten?
Was sind die Ziele einer Pilotphase im Rahme der Werkzeugeinführung?
Was sind wesentliche Unterschiede von Testausführungs und Testmanagementwerkzeugen?
Was sind die Hauptprinzipien für die Auswahl eines Werkzeugs?
Was sind Erfolgsfaktoren für die Evaluierung, Implementierung, Vereitstellung und kontinuierliche Unterstützung von Testwerkzeugen in einem Unternehmen?
Nach welchen Kriterien lassen sich Testwerkzeuge klassifizieren?
unterstützter Aktivität/Phase des Testprozesses (hier im Fokus)
unterstützter Teststufe
unterstützter Testart
unterstützter Testrolle
unterstützter Technologie
unterstütztem Lizenzmodell (kommerziell/Shareware/Open Source)
Beeinflussung des Testobjekts (intrusiv/nicht-intrusiv)
Was für Typen von Testwerkzeugen gibt es?
Was bedeutet ALM und wozu ist es da?
ALM = Application Lifecycle Management
unterstützt den gesamten Lebenszyklus einer Software
Was sind Anforderungsmanagementwerkzeuge?
Erfassung, Katalogisierung, strukturierte Ablage, Verwaltung und Änderungsmanagement, sowie Priorisierung von Anforderungen
Fortgeschrittene Funktionalität: Prüfung auf Konsistenz von Anforderungen, Rückverfolgung, Messung des Überdekcungsgrads, ...
Was sind Fehlermanagementwerkzeuge?
Fehlermeldungen erfassen, verwalten, verteilen
Verfolgung der Fehler über die Zeit
Statistische Analysen, Fehlerberichte
Was sind Konfigurationsmanagementwerkzeuge?
Identifikation Verwaltung, Bereitstellung und Speicherung der Informationen über Versionen und Konfigurationen der Software und der benötigten Testmittel
Überwachung/Dokumentation der Änderungen
Rückverfolgbarkeit
Werkzeuge zur kontinuierlichen Integration
Kontinuierliche Integration: automatisiertes Testen, Bauen/Kompilieren, Ermittlung von Metriken, Release-Mgmt.
Schnelles Feedback nach jeder Änderung an Entwicklung
Reproduzierbare Produkterstellung
Beispiel: Jenkins
Was sind Review-Werkzeuge?
Verwaltung von Dokumenten/Reviews/Checklisten
Unterstützung der Gutachter/Reviewer
Unterstützung der Reviewsitzung
Auswertung der Reviews
Was sind statische Analysewerkzeuge?
Analyse verschiedener Eigenschaften des Programmcodes (strukturell, Datenfluss, Richtlinien/Konventionen)
Fortgeschrittene Funktionalität: Architekturprüfung/visulaisierung, Metriken, Klonerkennung, Zykluserkennung
Was sind Testentwurfswerkzeuge?
Generierung von Testfällen oder Testeingabedaten
Generierung des Testorakels
Keine Garantie für gute Testfälle
Generierung strukturierter Vorlagen
Was sind Testwerkzeuge für das modellbasierte Testen?
Unterstützung der Spezifikation/Validierung/Verifikation von Modellen
Fortgeschrittene Funktionalität: Codegenerierung, Generierung von ausführbarem Testcode
Was sind Testdatengenerator und -editoren?
Datenbankbasierte Testdatengeneratoren: Erzeugung künstlicher Testdaten nach Analyse einer Datenbank
Codebasierte Testdatengeneratoren: Analyse von Code (Datenfluss, Parametertypen) und automatische Ableitung von Testdaten (ohne erwartete Werte/Ausgaben zu beachten)
Schnittstellenbasierte Testdatengeneratoren: Analyse von Schnittstellen (z. B. API), Äquivalenzklassen- und Grenzwertanalyse
Spezifikationsbasierte / Anforderungsbasierte Testdatengeneratoren: Ableitung von Testdaten aus formaler Spezifikation
Was Werkzeuge für abnahmetest- und verhaltensgetriebene Entwicklung?
Fokus auf bestimmte Formulierung der Anforderungen, um Tests zu erleichtern: "Wenn, dann ..."; "Given X, WHEN Y, THEN Z", ...
Tools: Jbehave, Cucumber, Nbehave
Was sind Werkzeuge für testgetriebene Entwicklung?
Tools zur Unterstützung des "test first"-Ansatzes
Werkzeuge (1/4): Build-Automatisierung: Jenkins, Hudson, CruiseControl
Werkzeuge (2/4): Build & Testen: Maven (Ant, Gradle, ...) & JUnit
Werkzeuge (3/4): Mock-Objekte
Werkzeuge (4/4): Variente für Akzeptanz- und Systemtest: Fitnesse
Was sind Testausführungswerkzeuge?
(halb)automatische Ausführung von Testfällen
Verschiedene Typen: Testausführungswerkzeuge, Testrahmen/Komponententestrahmen, Simulatoren, Vergleichswerkzeuge/Komparatoren, Werkzeuge zur Überdeckungsmessung, Sicherheitsprüfwerkzeuge
Unterschiedliche Ansätze: Capture & Replay, Skriptbasiertes Testen, Datengetriebenen Testen, Schlüsselwortgetriebenes Testen
Nutzen von Testwerkzeugen
Einsparung von Ressorucen durch effiziente Bearbeitung von Aufgaben
Standardisierung der Testdokumentation
Transparenz des Testprozesses
Durch Werkzeugeinsatz objektive Messungen
Einfache Auwertung über durchgeführte Tests
Höherer Automatisierungsgrad: Konsistenz, Wiederholbarkeit, Nachweisbarkeit, Testtiefe, Geschwindigkeit, Entlast des Testteams, Ausführbarkeit, Zuverlässigkeit
Risiken von Testwerkzeugen
Unrealistische Erwartungen an Automatisierung und Werkzeug
Unterschätzung der Zeit, der Kosten und des Aufwands von Einführung/Schulung/Beratung bis Effizienzsteigerung, Anpassung der Prozesse, Wartung der Artefakte des neuen Werkzeuges
Blindes Vertrauen in das Werkzeug
Vernachlässigung der Versionskontrolle der Artefakte des Testwerkzeuges
Vernachlässigung der Komplexität der Schnittstellen zu anderen Werkzeugen
Herstellerabhängigkeit (keine Weiterentwicklung, Herstellerwechsel, schlechter Support)
Fehlende/keine funktionierende Prozesse
Welche Testaktivitäten sind eher automatisierbar, welche nicht?
Einführungsreihenfolge von Testwerkzeugen
Welche Kosten einer Werkzeugeinführung können anstehen?
Welche Schritte sollte man bei der Werkzeugauswahl durchführen?
Welche Typen von Testwerkzeugen gibt es?
Was bedeutet es, wenn ein Testwerkzeug intrusiv ist?
Welche grundlegenden Funktionen haben Testmanagementwerkzeuge?
Welche grundlegenden Funktionen haben Testausführungswerkzeuge?
Welche grundlegenden Funktionen haben Fehlermanagementwerkzeuge?
Welche typische Funktionalität bieten Werkzeuge für die Unterstützung des Reviewprozesses?
Welche Eigenschaften des Programmcodes können mit Hilfe von Werkzeugen zur statischen Analyse typischerweise analysiert werden?
Welche Typen von Testdatengeneratoren gibt es?
Welche unterschiedlichen Ansätze zur Automatisierung der Testdurchführung gibt es?
Welche Werkzeuge sind für die Unterstützung der Entwickler beim Komponenten- bzw. Integrationstest geeignet?
Welche Vorteile und Risiken sind mit einer Werkzeugeinführung verbunden?
Welche Tätigkeiten spielen bei der Einführung eines Testwerkzeugs eine Rolle?
Welche sind die Ziele eines Pilotprojekts im Rahmen der Einführung eines Testwerkzeugs?
Last changed6 years ago