Von der Eistüte zur Testpyramide - JUGS · " erfordert zeitlich enge Verzahnung von Testen und...
Transcript of Von der Eistüte zur Testpyramide - JUGS · " erfordert zeitlich enge Verzahnung von Testen und...
Agilisierung von Testsystemen Von der Eistüte zur Testpyramide ObjektForum Stuttgart, 15.09.2014 Daniel Knapp
2
© 2014 andrena objects ag
Typische Probleme in historisch gewachsenen Systemlandschaften § Ausgedehnte QS- und Stabilisierungsphasen
§ Dadurch Verzögerung der Auslieferung
Ø Hohe Time-to-Market
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
© 2014 andrena objects ag
3
Warum ist das so?
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Relative Kosten zur Beseitigung von Fehlern
100
10
3
1 Anforderungen
Code
Test
Produktion
§ Tests werden historisch bedingt fast ausschließlich nach der Entwicklungsphase durchgeführt:
§ Hohe Testaufwände, da Testfälle das Gesamtsystem adressieren, selbst wenn nur Teilaspekte getestet werden sollen.
§ Hohe Fehlerbehebungskosten, da Fehler spät gefunden werden
Systemtests
Integrationstests
Unit- Tests
4
© 2014 andrena objects ag
Konsequenz
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
time
spen
t on
feat
ures
bu
g-fix
ing
Ø Mit fortlaufender Lebensdauer entstehen immer höhere Wartungsaufwände, dadurch wenig Zeit für neue Features
5
© 2014 andrena objects ag
Ziel
Geringe Time-to-Market bei hoher Qualität
§ Stabiles und erweiterbares Gesamtsystem
§ Wenige Bugs
§ Effiziente Entwicklungs- und Testaufwände
§ Kontinuierlich testbares System
§ Permanente Lieferfähigkeit
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Wie erreichen wir diese Ziele ?
© 2014 andrena objects ag
6 Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
§ Zielbild
§ Agilisierung von Testsystemen
§ Erfahrungsberichte
§ Fazit
Agenda
7
© 2014 andrena objects ag
Agile Software-Entwicklung
Ziel: § fertige Software zum Ende
des Entwicklungszyklus ausliefern
§ hohe Entwicklungsgeschwindigkeit bei effizientem Aufwand
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Product Backlog
Sprint Backlog
Product Increment
2-4 weeks
24 hours
SPRINT
Was bedeutet das für den Test?
8
© 2014 andrena objects ag
Agilisierung von Testsystemen
Ziel: Kurze, effiziente Testzyklen, frühes Erkennen von Bugs
Ø erfordert zeitlich enge Verzahnung von Testen und Entwickeln Ø erfordert eine Absicherung der entwickelten Funktionalität gegen
Seiteneffekte über den Entwicklungszyklus hinaus (hohe Testabdeckung)
Ø erfordert einen hohen Testautomatisierungsgrad und eine effiziente Verteilung der Tests
Ergebnis:
§ Stabiles und erweiterbares System
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
© 2014 andrena objects ag
9
Effiziente Verteilung der Tests
§ Entwicklertests entstehen fortlaufend während des Entwicklungsprozesses und decken die Erweiterungen vollständig ab
§ Automatisierte Akzeptanztests motivieren bzw. sichern neben den Entwicklertests das bestehende Verhalten
§ Die automatisierten Tests laufen mindestens nächtlich, besser beim Einchecken
§ verbleibende manuelle Tests werden nach schlankem Verfahren durchgeführt
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
© 2014 andrena objects ag
10
System-
tests
Integrationstests
Unit-Tests
Effiziente Verteilung der Tests: Die Testpyramide
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Dauer Anzahl
11
© 2014 andrena objects ag
Testpyramide: Risiken und Nebenwirkungen
Wichtig:
§ Anwender und Entwickler arbeiten (auf höheren Ebenen) gemeinsam
§ Überschneidungen vermeiden
§ Lernorientierung bei manuellen Tests: Gelerntes zur Verbesserung heranziehen
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Pro Testebene Fokus auf das Testziel: Was testen, und was nicht?
§ Systemtest: Das Gesamtsystem funktioniert exemplarisch als Ganzes
§ Integrationstests: Die Bestandteile funktionieren im Zusammenspiel fachlich korrekt
§ Unit-Tests: Alle Einzelteile funktionieren technisch
12
© 2014 andrena objects ag
Ergebnis: Hohe Qualität, geringe Time-to-Market
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
time
spen
t on
feat
ures
bu
g-fix
ing
time
spen
t on
feat
ures
bu
g-fix
ing
geringe Testautomatisierung, nachgelagerte Tests
agile Entwicklung
© 2014 andrena objects ag
13 Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
§ Zielbild
§ Agilisierung von Testsystemen
§ Erfahrungsberichte
§ Fazit
Agenda
14
© 2014 andrena objects ag
Agilisierung von Testsystemen
1. Bestandsaufnahme Ist-Aufnahme zu Stand von Test-Abläufen und Test-Umsetzung
2. Diagnose und Ableiten von Maßnahmen Ist-Zustand bewerten und Maßnahmenkatalog ableiten
3. Umsetzung der Maßnahmen Testsystem agilisieren
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
15
© 2014 andrena objects ag
Gibt es vor der Auslieferung Konsolidierungs-/
Stabilisierungsphasen?
Bestandsaufnahme
Ziel: § Ist-Aufnahme zu Stand von Testabläufen und Testumsetzung
Vorgehen: § Interviews mit den Beteiligten und stichprobenartige Code/Test Reviews
§ Typische Fragen:
§ …
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Wie hoch sind die manuellen
Testaufwände?
Wie lange dauert ein kompletter Systemtest?
Wie ist das Verhältnis von Entwicklungsaufwand zu
Testaufwand?
Wie hoch ist die Abdeckung durch Unit Tests?
16
© 2014 andrena objects ag
Diagnose und Ableiten von Maßnahmen
Ziel: § Ist-Zustand bewerten und Maßnahmenkatalog ableiten
Vorgehen: § Identifizieren der Verbesserungspotentiale
§ Priorisierung (auch gemäß Erfordernissen aus dem Projekt)
§ Maßnahmen definieren mit überprüfbaren Metriken
§ Ebenen: Organisation, Prozess, Engineering
Wichtig: § Kosten/Nutzen-Verhältnis berücksichtigen
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
17
© 2014 andrena objects ag
Engineering
Organisation/Prozess
Typische Diagnose-Ergebnisse (und –cluster)
§ QA nachgelagert
§ QA nicht bei Team
§ Umgedrehte Testpyramide
§ Hoher Anteil an manuellen Tests
§ Keine Unit-Tests
§ Geringe Testabdeckung
§ Unwartbare Testsuiten
§ Lange Testlaufzeiten
§ Keine klaren Testzuständigkeiten
§ Keine reproduzierbaren Testergebnisse
§ Große Bug-Lebensdauer
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Test- abdeckung
Test- automatisierung
Test- effizienz
Testorganisation
© 2014 andrena objects ag
18
Wie drehen wir die Testpyramide um?
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Prinzip: § Hoher Automatisierungsgrad / effiziente Laufzeit
§ Hohe Testabdeckung
Verschiedene Szenarien denkbar:
1. Dedizierte Sanierungsphase: Fokus auf Umdrehen der Testpyramide
§ Sinnvoll bei Entwicklungsstillstand durch langsame Tests
Ø Hoher Invest, kurzfristige Agilisierung
2. Inkrementell, Sanierung im laufenden Betrieb
§ Sinnvoll falls noch Kapazität für Weiterentwicklung vorhanden
Ø Geringer Invest, Umstellung erfolgt nebenbei, mittelfristige Agilisierung
System-
tests
Integrationstests
Unit-Tests
19
© 2014 andrena objects ag
Maßnahmen
Vorgehen:
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Test- abdeckung
Test- automatisierung
Test- effizienz
Testorganisation § (Bestehende) Testverteilung und –zuständigkeiten hinterfragen und definieren
§ Agile Software-Entwicklungspraktiken im Team etablieren
§ Refactoring der Testlandschaft
§ Testorganisation bestehender und neu zu erstellender automatisierter Tests
Wichtig: § Regelmäßige Bewertung der Maßnahmen und bei Bedarf nachjustieren
20
© 2014 andrena objects ag
Grundvoraussetzung (1): Agile Software Entwicklung
§ Agile Entwicklungstechniken (XP, Clean Code) innerhalb des Entwicklungsteams
§ automatisierte Tests auf verschiedenen Ebenen
§ konsequente Refactorings zur Vermeidung technischer Schulden
§ Testisolationswerkzeuge und -techniken einsetzen, um wiederholbare Tests zu produzieren und Testlaufzeiten zu verkürzen.
§ Wichtig: an Test-Code gelten mindestens die gleichen Anforderungen wie an Produktiv-Code!
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
21
© 2014 andrena objects ag
Grundvoraussetzung (2): Entwicklungsprozess
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
§ Testabdeckungsgrad einer Software sollte ermittelt werden können, um
§ Testlücken gezielt schließen zu können
§ Refactorings gefahrlos durchführen zu können
§ Ergebnis der automatisierten Tests muss für Entwickler sichtbar sein
§ Stichwort: „Continuous Integration“
§ Stichwort: „Early Feedback“
§ Rasches Gegensteuern im Fehlerfall
© 2014 andrena objects ag
22
System-
tests
Integrationstests
Unit-Tests
Pattern zur Agilisierung der Testsysteme
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
§ Im folgenden stellen wir sieben verschiedene Pattern vor, die Stück für Stück die Agilisierung der Testsysteme vorantreiben
§ Dabei gehen wir nach den Ebenen der Testpyramide und nach den Diagnoseclustern vor
Test- abdeckung
Test- automatisierung
Test- effizienz
Testorganisation
© 2014 andrena objects ag
23
Pattern: Testverlagerung auf niedrigere Ebenen der Testpyramide
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Es existiert eine Vielzahl komplexer Systemtests mit vielen Varianten, die
verschiedene Aspekte unterliegender Komponenten testen
§ Bestehende Tests haben eine hohe Laufzeit
Ziel
§ Testeffizienz und -wartbarkeit erhöhen
§ Reduktion der Testdurchführungsdauer
Vorgehen § Komplexe Systemtests nach fachlichen und technischen
Aspekten auf untere Ebenen der Pyramide verlagern
§ Mittels Unit-Tests oder weniger komplexer Integrations-Tests Varianten testen.
§ Fokus auf wenige aussagekräftige Systemtests
Test- effizienz Testorganisation
#1/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
24
Pattern: Refactoring für Testbarkeit
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Das System ist historisch gewachsen. Es existieren keine Komponenten,
Klassen sind nicht isoliert testbar.
Ziel
§ Refactoring des Systems hinsichtlich Test- und Erweiterbarkeit
§ Testeffizienz ermöglichen
§ Testabdeckung sukzessive erhöhen
Vorgehen § Bestehendes Verhalten grob durch Integrationstests sichern
§ Refactoring und Neuaufbau nach Testpyramide
Test- abdeckung
Test- automatisierung
Test- effizienz
#2/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
25
Pattern: Test Isolation
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Das System hat viele Abhängigkeiten zu externen Systemen/Infrastruktur
§ Hohe Testlaufzeiten, schlechte Reproduzierbarkeit von Ergebnissen
Ziel
§ Stabile Testergebnisse
§ Kürze Durchführungsdauer
Vorgehen
§ Externe Systeme/Infrastruktur durch Testdoubles ersetzen
§ Datenbank durch In-Memory-DB ersetzen
§ Services durch Attrappen ersetzen
Achtung: § Nicht vergessen, auch ohne Testdoubles zu testen!
Test- abdeckung
Test- automatisierung
Test- effizienz
#3/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
26
Pattern: Manuelle Tests automatisieren
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Bestehende manuelle Regressionstests sind nur mit großem Aufwand und
langer Laufzeit ausführbar
Ziel
§ Testlaufzeit und -aussagekraft erhöhen
Vorgehen § Sinnhaftigkeit der Tests überprüfen, Strukturierung
§ Automatisierte Akzeptanztests schreiben, Vorbedingungen automatisiert herstellen
Achtung:
§ Ggf. weiterhin manuelle Tests nötig und sinnvoll
§ Kosten/Nutzen-Betrachtung wichtig!
Test- automatisierung
#4/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
27
Pattern: Tests auf einzelne Fachlichkeiten fokussieren
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Es existieren diverse Varianten komplexer Systemtests, die redundant sämtliche
Aspekte einer Vielzahl von Komponenten testen. Der Testfokus ist unklar.
§ Beim Vorliegen von Fehlern schlagen alle Tests an denselben Stellen fehl
Ziel
§ Aussagekräftige Systemtests erstellen
§ Testorganisation verbessern
Vorgehen § Testfälle auf einzelne Fachlichkeiten fokussieren
§ Irrelevante Werte aus dem Test ausblenden
§ Tests möglichst orthogonal aufbauen
Test- effizienz Testorganisation
#5/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
28
Pattern: GUI-Tests automatisieren/strukturieren
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituationen § Bestehende manuelle GUI-Tests sind nur mit großem Aufwand und langer
Laufzeit ausführbar.
§ Die Testskripte sind nicht wartbar und anfällig gegen strukturelle Änderungen.
Ziel
§ Testlaufzeit und -aussagekraft verbessern
§ Wartbarkeit und Wiederverwendbarkeit der Tests
Vorgehen § Masken durch Page Objects modellieren. Vorteile:
§ Wartbarkeit: GUI-Struktur in Page Objects gekapselt
§ Abstraktion: Tests greifen funktional auf GUI zu
Achtung: Kosten/Nutzen-Betrachtung wichtig!
Test- abdeckung
Test- automatisierung
Test- effizienz
#6/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
29
Pattern: Exploratives Testen
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Verbleibende manuelle Tests effizient und planbar durchführen
Vorgehen § Exploratives Testen
§ Zutaten: Scope, Timebox, Testprotokoll
§ Beispiele: Testtouren: Anti-Social Tour, Fed Ex Tour, Supermodel Tour
Test- abdeckung
Test- effizienz
#7/7
System-
tests
Integrationstests
Unit-Tests
© 2014 andrena objects ag
30 Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
§ Zielbild
§ Agilisierung von Testsystemen
§ Erfahrungsberichte
§ Fazit
Agenda
31
© 2014 andrena objects ag
Erfahrungsbericht 1: Sanierung im laufenden Betrieb
Ausgangspunkt § Übernahme eines Softwareprojekts zur Weiterentwicklung
§ Schlechte Wartbarkeit des Codes, wenig Unit-Tests
Vorgehen
§ Sanierung im laufenden Betrieb
§ Keine eigenen Refactoring-Tasks
Ergebnisse
§ Schrittweise Erhöhung der Softwarequalität
§ Weiterentwicklungen konnten schneller durchgeführt werden
§ Reduzierung der Bugs, geringere Time-to-Market
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
32
© 2014 andrena objects ag
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
33
© 2014 andrena objects ag
Erfahrungsbericht 2: QA in Team integrieren, automatisieren Ausgangssituation: • QA nachgelagert, größtenteils manuell, keine Unit-Tests; Umstellung auf agil
§ Kommunikation mit vielen externen Systemen Maßnahmen (Zeitraum: 1 Jahr) § QA in Team verlagern
§ Konsequent Unit-Tests schreiben bei Änderungen, Testsupportcode zentral § Mocks für externe Systeme
§ Manuelle Tests automatisieren Ergebnisse: § Unit-Testabdeckung 30%, manuelle Tests größtenteils automatisiert
§ Nachgelagerte QA-Aktivitäten deutlich reduziert § Monatliche Releases möglich
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
34
© 2014 andrena objects ag
Erfahrungsbericht 3: Fokus auf Agilisierung
Ausgangssituation: § Unwartbares System, keine Weiterentwicklung möglich.
§ Ausschließlich manuelle Systemtests
Maßnahmen (Zeitraum: 1/2 Jahr)
§ Automatisierung stichprobenartiger Integrationstests zum Sicherstellen des bestehenden Verhaltens
§ Refactoring/Neuentwicklung von Komponenten, um Testen gemäß Testpyramide zu ermöglichen.
§ Konsequenter Einsatz agiler Entwicklungspraktiken
§ Tester ins Sprint-Team verlagert
Ergebnis: § System wart- und erweiterbar, QA-Phasen drastisch reduziert
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
© 2014 andrena objects ag
35 Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
§ Zielbild
§ Agilisierung von Testsystemen
§ Erfahrungsberichte
§ Fazit
Agenda
36
© 2014 andrena objects ag
Fazit
Die Agilisierung von Testsystemen überführt historisch gewachsene Systemlandschaften in stabile und erweiterbare Systeme
Kernpunkte:
§ Effiziente Verteilung der Testaktivitäten gemäß der Testpyramide
§ Einsatz von agilen Entwicklungspraktiken im Projekt
§ Gezielter Einsatz der Patterns zur Agilisierung
Ergebnis:
§ Team erreicht wieder hohe Entwicklungsgeschwindigkeit
§ Geringe Time-to-Market
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
37
© 2014 andrena objects ag
Anhang
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
© 2014 andrena objects ag
38
Pattern: Neuentwicklung separieren
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Ein neues (kleines) Feature ist zu entwickeln;
bestehende Klassen sind sehr groß und schlecht testbar
Ziel
§ Neuentwicklung gemäß Testpyramide
Vorgehen § Neuen Code neben bestehendem Code entwickeln
§ TDD vorgehen, kleine Klassen (Single Responsibility)
§ Auch Tests schreiben, die den Aufruf des neuen Codes sicherstellen
System-
tests
Integrationstests
Unit-Tests
Test- abdeckung
© 2014 andrena objects ag
39
Pattern: Bei Bug-Fixing Testabdeckung ausbauen
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Es ist ein Bug aufgetreten.
Ziel § Testabdeckung erhöhen
§ ähnliche Bugs finden
§ Verhaltenssicherung (Regressionstest)
Vorgehen
§ Bug zunächst durch einen (Unit-)Test nachstellen. Dieser sollte rot sein.
§ Bug beheben, Test sollte grün werden
§ Je nach Kritikalität/Aufwand weitere Tests schreiben (Bugs sind sozial)
System-
tests
Integrationstests
Unit-Tests
Test- abdeckung
© 2014 andrena objects ag
40
Pattern: Vorbereitendes Refactoring
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Für ein neues Feature könnte bestehender Code wiederverwendet werden.
Allerdings muss er dazu noch verallgemeinert werden.
Ziel
§ Absicherung für Strukturverbesserung
Vorgehen § Bestehenden Code durch Tests abdecken.
§ Refactoring durchführen
§ Die Unit-Tests müssen am Ende nach wie vor grün sein!
System- tests
Integrationstests
Unit-Tests
Test- abdeckung
© 2014 andrena objects ag
41
Pattern: Eigene DSL für Aufbau von Testobjekten
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Oft müssen für Tests komplexe Objektstrukturen aufgebaut werden.
Ziel § Komplexität im Test-Setup reduzieren (Clean Test)
§ Explizite Formulierung relevanter Testdaten
§ Wartbarkeit und Wiederverwendbarkeit der Tests
Vorgehen
§ Hilfsklassen zum Aufbau der Strukturen entwickeln (inkrementell)
§ z.B. Fluent API:
§ einzelPerson(„Hans“,“Müller“) .mitAdresse(strasse(„Hauptstraße“,5), ort(10678,“Berlin“)) .mitGeburtsdatum(„1970-02-02“)
System-
tests
Integrationstests
Unit-Tests
Test- effizienz
© 2014 andrena objects ag
42
Pattern: Akzeptanztests für neues Feature
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Ein neues Feature hat eine hohe fachliche Komplexität und oder Kritikalität.
Tester und/oder Fachler sind verfügbar.
Ziel
§ Verhaltenssicherung, Testabdeckung erhöhen
Vorgehen § Automatisierte Akzeptanztests schreiben (idealerweise sogar vor Umsetzung)
§ Kann durch Fachler/Tester geschehen, Entwickler unterstützt
§ Herausforderung: passende DSL für die Testfälle entwickeln
§ Wichtig: Testfokus berücksichtigen; wenig Überschneidung
Achtung: § Kosten/Nutzen-Betrachtung wichtig!
System-
tests
Integrationstests
Unit-Tests
Test- abdeckung
Regressions- Test
© 2014 andrena objects ag
43
Pattern: Page-Objects für GUI-Tests
Daniel Knapp | Agilisierung von Testsystemen | ObjektForum 2014, Stuttgart
Ausgangssituation § Ein neues Feature enthält auch einen GUI-Anteil.
Ziel § Komplexität im Test-Setup reduzieren (Clean Test)
§ Explizite Formulierung relevanter Testdaten
§ Wartbarkeit und Wiederverwendbarkeit der Tests
Vorgehen
§ Zunächst Abgrenzung: was soll getestet werden (und was nicht?)
§ Betrachtete Masken der GUI durch Page Objects
modellieren
System-
tests
Integrationstests
Unit-Tests
Test- abdeckung
Test- automatisierung
Test- effizienz