Agiles Testen Handwerkszeug zur Prävention von Fehlern und technischen Schulden Entwicklertag 2014 Lars Alvincz, Daniel Knapp
© 2014 andrena objects ag
2
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
3
© 2014 andrena objects ag
§ Der Vortrag gibt eine grundlegende Übersicht, wie Entwicklungsteams von Anfang an dem Aufhäufen von technischen Schulden und Fehlern entgegenwirken können, indem sie konsequent agile Testtechniken im Entwicklungsprozess verankern
§ Zunächst findet eine grundlegende Begriffsklärung zum agilen Testen statt
§ Im Anschluss werden Anwendungsbeispiele verschiedener Aspekte vorgestellt
Ziel dieses Vortrags
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
© 2014 andrena objects ag
4
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
© 2014 andrena objects ag
5
Vorüberlegungen
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Relative Kosten zur Beseitigung von Fehlern
100
10
3
1 Anforder
ungen
Code
Test
Produktion
Relative Kosten zur Fehlerbeseitigung nach Lebensdauer
100 % 100 %
ohne agile Tests mit agilen Tests
Kapazität für Features vs. Bugs
© 2014 andrena objects ag
6
Grundzüge des agilen Testens I
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Exkurs: agile Entwicklungsprozesse (Scrum etc.) verfolgen das Ziel
§ fertige Software zum Ende des Entwicklungszyklus auszuliefern
§ eine hohe Entwicklungsgeschwindigkeit bei effizientem Aufwand zu ermöglichen
Agiles Testen verfolgt den Ansatz
§ Testen und Entwickeln zeitlich und eng zu verzahnen § eine möglichst hohe Testabdeckung der Software zu erzeugen
§ mangelhafte Codequalität bzw. Bugs so früh als möglich offen zu legen, um frühzeitige Korrekturmaßnahmen zu ermöglichen
§ die entwickelte Funktionalität auch über den Entwicklungszyklus hinaus gegen Seiteneffekte bei Erweiterungen abzusichern.
© 2014 andrena objects ag
7
Grundzüge des agilen Testens II
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Zielbild
§ Entwicklungsteam liefert am Ende des Entwicklungszyklus funktionierende Software ab, die im Anschluss produktiv genutzt werden kann
§ Automatisierte Akzeptanztests sichern neben den Entwicklertests das bestehende Verhalten
§ Ggf. erforderliche manuelle Tests werden nach einem schlanken Verfahren durchgeführt
§ Das fertige Entwicklungsinkrement wird so zeitnah als möglich in die Produktion überführt
© 2014 andrena objects ag
8
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
© 2014 andrena objects ag
9
Voraussetzungen für agiles Testen I
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Agile Software Engineering (ASE) I
§ 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.
© 2014 andrena objects ag
10
Voraussetzungen für agiles Testen II
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Agile Software Engineering (ASE) II
§ 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
11
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
© 2014 andrena objects ag
12
Alle Tests
Agile Testquadranten
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Für d
as T
eam
Für das Produkt
fachlich
technisch
Q2
Q1
Q3
Q4
© 2014 andrena objects ag
13
Alle Tests
Agile Testquadranten
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Q2
Q1
Q3
Q4
Für d
as T
eam
Für das Produkt
fachlich
technisch
Entwicklertests § Unit Tests § Komponententests
Ziel § Verbesserung der internen Qualität
(Struktur der Software, Schichtung) § Testbarkeit herstellen
Effekt § Team kann schneller arbeiten § Sicherheitsnetz für Refactorings § Team wird selbstbewusster und mutiger
automatisiert
© 2014 andrena objects ag
14
Alle Tests
Agile Testquadranten
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Q2
Q1
Q3
Q4
Für d
as T
eam
Für das Produkt
fachlich
technisch
Entwicklertests § Unit Tests § Komponententests
Ziel § Verbesserung der externen Qualität § Kooperation von Anwendern und Entwicklern
§ Fallkonstellationen § Beispiele
Effekt § Fallkonstellationen in Tests umwandeln mittels
Test-Werkzeugen
automatisiert
automatisiert / manuell
Funktionstests § Beispiele § Prototypen § Story Tests § Simulationen
© 2014 andrena objects ag
15
Alle Tests
Funktionstests § Beispiele § Prototypen § Story Tests § Simulationen
Agile Testquadranten
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Q2
Q1
Q3
Q4
Für d
as T
eam
Für das Produkt
fachlich
technisch
Entwicklertests § Unit Tests § Komponententests
automatisiert
automatisiert / manuell
Effekt § Usability-Test der Anwendung § Lebendige Test-Dokumentation
bzw. -spezifikation
manuell
§ Manuelle explorative Tests § Benutzer-Akzeptanztests § Usability Tests
Ziel § Evaluierung des SW-Produkts
§ Formell: Sprint Review § Informell: manuelles, z.B.
exploratives Testen
© 2014 andrena objects ag
16
Alle Tests
Funktionstests § Beispiele § Prototypen § Story Tests § Simulationen
Agile Testquadranten
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Q2
Q1
Q3
Q4
Für d
as T
eam
Für das Produkt
fachlich
technisch
Entwicklertests § Unit Tests § Komponententests
automatisiert
automatisiert / manuell
Ziel § Flaschenhälse ermitteln § Speicherlücken ermitteln § Systemgrenzen ausloten
Effekt § robuste Software § gutes Antwortzeitverhalten
manuell
Werkzeuge
§ Performance-Tests § Lasttests
§ Manuelle explorative Tests § Benutzer-Akzeptanztests § Usability Tests
© 2014 andrena objects ag
17
Alle Tests
Agile Testquadranten
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Q2
Q1
Q3
Q4
Für d
as T
eam
Für das Produkt
fachlich
technisch
automatisiert / manuell manuell
automatisiert Werkzeuge
Entwicklertests § Unit Tests § Komponententests
§ Performance-Tests § Lasttests
Funktionstests § Beispiele § Prototypen § Story Tests § Simulationen
§ Manuelle explorative Tests § Benutzer-Akzeptanztests § Usability Tests
© 2014 andrena objects ag
18
Definition of done
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Tests als integraler Bestandteil des Softwareentwicklungsprozesses
§ Keine Anforderung ist „fertig“, bis das Testen abgeschlossen ist
§ dies betrifft im Zweifelsfalle alle Quadranten
§ d.h. automatisierte und manuelle Regressionstests
§ Akzeptanzkriterien der Endanwender werden in lauffähige Tests umformuliert
© 2014 andrena objects ag
19
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
© 2014 andrena objects ag
20
Die Testpyramide ?
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Nein, eher ein Abbild der Realität in vielen Projekten...
© 2014 andrena objects ag
21
Die Testpyramide
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Dauer Anzahl
Automatisierte Unit Tests
Automatisierte Integrations- und Komponenten - Tests
Automatisierte Systemtests
Funktionale Tests
© 2014 andrena objects ag
22
Die Testpyramide - Umsetzungshinweise
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Hinweise
§ Zielorientierter Einsatz von Werkzeugen
§ Anwender und Entwickler arbeiten gemeinsam
§ Lernorientierung hinsichtlich manueller Tests: Gelerntes zur Verbesserung heranziehen
© 2014 andrena objects ag
23
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
© 2014 andrena objects ag
24
Quadrant 1 / Ebene 1: JUnit
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
© 2014 andrena objects ag
25
Quadrant 2 / Ebene 2: JUnit
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
© 2014 andrena objects ag
26
Quadrant 2 / Ebene 2/3: FitNesse
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
DB
WP- DL
HSQL-DB
RFC
© 2014 andrena objects ag
27
Quadrant 2 / Ebene 2/3: FitNesse
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
© 2014 andrena objects ag
28
Quadrant 2 / Ebene 3: Selenium
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
© 2014 andrena objects ag
29
Quadrant 3 – manuelles Testen I
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Hauptziel agile Softwareentwicklung: Das Ausliefern und Bereitstellen neuer Funktionalitäten nach jedem Entwicklungssprint Anwenden des manuellen Testens um
§ nicht-triviale Fehler aufzufinden
§ Definierter Soll-Zustand vs. „Was wäre wenn?“
§ zu erforschen, wie eine Anforderung getestet werden kann
§ Tests auszuführen, deren Automatisierung zu aufwändig bzw. „teuer“ ist
§ „Sonderkonstellationen“ abzudecken
© 2014 andrena objects ag
30
Quadrant 3 – manuelles Testen II
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Exploratives Testen als leichtgewichtiger Ansatz für manuelle Tests
§ Paralleles Testdesign und -ausführung
§ Im Gegensatz zu „fixen“ Testvorgaben nach Plänen (die meist allerdings gewisse Interpretationsspielräume offen lassen)
§ Vorgehen nach einem strukturiertem Ansatz
§ Beinhaltet Protokolle, auch als Inspiration für künftige Testsitzungen
§ Letzter Test beeinflusst den nächsten Test
§ Kein Widerspruch zu klassischen Testplänen, sondern ergänzend
© 2014 andrena objects ag
31
Quadrant 3 – manuelles Testen III
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Analogie:
Software-Tester vergleichbar einem Tourist § Man sieht nicht alles, bzw. nur bestimmte Teile der Software
§ Es gibt viele Wege, um das Ziel zu erkunden
§ Man möchte sicherstellen, dass man die wichtigsten Punkte gesehen hat
Zutaten:
§ Feste Zeitvorgabe (Timebox)
§ Dokumentation (Testprotokoll)
§ Umfang und Art der Test-Tour (Scope)
Vorgehen:
§ Spezifische Touren (FedEx, Supermodel...)
© 2014 andrena objects ag
32
Agenda
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Ziel dieses Vortrags
§ Grundzüge des agilen Testens
§ Voraussetzungen für agiles Testen
§ Vorstellung der agilen Testquadranten
§ Die Testpyramide
§ Anwendungsbeispiele für die Umsetzung agiler Tests
§ Fazit, Fragen, Diskussion, Kontakt
© 2014 andrena objects ag
33
Fazit
Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
§ Testautomatisierung und agiles Testen erhöhen die Testabdeckung und damit mittelbar die Code-Qualität.
§ Eine hohe Testabdeckung ist elementare Voraussetzung für Refactorings
§ Kosten zur späten Fehlerbehebung sinken deutlich
§ Entwicklungsteams können eine hohe Entwicklungsgeschwindigkeit beibehalten
§ Agiles Testen unterstützt insofern Entwickler dabei, guten Code zu entwickeln.
§ Guter Code ist das Ziel eines jeden Entwicklers – und wirtschaftlich sinnvoll !
© 2014 andrena objects ag
34 Lars Alvincz, Daniel Knapp | Agiles Testen | Entwicklertag 2014, Karlsruhe
Lars Alvincz
07 21 - 61 05 - 122
______________________
Daniel Knapp
07 21 - 61 05 - 13 66
______________________
Weitere Fragen?
meet the SPEAKER@speakerlounge 1. OG DIREKT ÜBER DEM EMPFANG
Top Related