Welche Auswirkung hat eine agiler Softwareentwicklungsprozess auf den Softwaretest und die Qualitätssicherung? Welche Änderungen muss man beachten und wie muss und kann man Softwaretester auf diese Veränderungen vorbereiten.
Dieser Vortrag wurde auf der iqnite 2014 von Michael Fischlein gehalten.
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0
1.
2. SOGETI Deutschland GmbH 2
Ich will agil testen!
Was muss ich können?
22. Mai 2014
Michael Fischlein
Technical Manager
& CAT-Trainer
… nichts besonderes, oder?!
3. International 4 Unternehmensbereiche
26.12.2014 SOGETI Deutschland GmbH 3
High Tech-
Engineering Services
Software Control
Testing
Application Services
Infrastructure
Services
Kerngeschäft in Deutschland
Testen und Qualitätssicherung von
Software
Organisation
100% Tochter des Capgemini S.A.
Konzerns, notiert an der Börse Paris
Kunden
Großunternehmen aller Branchen,
deren Erfolg von komplexen
Softwarelösungen abhängt
Mitarbeiter
21.000 weltweit
660 Deutschland
5. Dinge, über die
wir nicht
wissen, dass
wir sie nicht
wissen.
Dinge, über die
wir wissen,
dass wir sie
nicht wissen.
Dinge, über die
wir wissen,
dass wir sie
wissen.
Dinge, über die
wir nicht
wissen, dass
wir sie wissen.
„Was wir wissen, ist ein
Tropfen;
was wir nicht wissen, ein
Ozean.“
Isaac Newton
26.12.2014 SOGETI Deutschland GmbH 5
Q2Q1
Q3 Q4
6. Testen in agilen Umgebungen
World Quality Report (1 von 2)
Die meisten Unternehmen (46%) haben keinen speziellen Ansatz für das Testen in
agilen Projekten. Sie verwenden die gleichen Testansätze wie im Wasserfall-
Entwicklungsmodell. 37% arbeiten mit TMap®-Ansätzen.
8%
17%
37%
40%
42%
46%
Wir nutzen etwas anderes
Wir verwenden keine agilen
Entwicklungsmethoden
Wir nutzen agile TMap® Ansätze
Wir nutzen DSDM Testpraktiken
Wir nutzen explorative Testmethoden
Nein, wir haben keine speziellen Ansatz für
das Testen in agilen Projekten
26.12.2014 SOGETI Deutschland GmbH 6
7. Testen in agilen Umgebungen
World Quality Report (2 von 2)
64% der Führungskräfte sehen einen Mangel an einem angemessenen agilen
Testansatz. 36% sehen einen Mangel an professionellem Test-Knowhow und nur 13%
haben keine Schwierigkeiten beim Testen im agilen Umfeld.
13%
35%
36%
39%
49%
56%
64%
Keine wirklichen Schwierigkeiten beim Testen im agilen
Umfeld
Schwierigkeiten beim Wiederverwenden und Wiederholen
von Tests über Sprints hinweg
Mangel an professionellem Test-Knowhow in agilen Teams
Mangel an Testwerkzeugen um wiederverwendbare Tests
zu erstellen
Schwierigkeiten, die Bereiche zu identifizieren, auf die
sich der Test konzentrieren soll
Unfähigkeit, Testautomatisierung auf den entsprechenden
Ebenen anzuwenden.
Es fehlt ein guter Test-Ansatz, der zur agilen
Entwicklungsmethode passt
26.12.2014 SOGETI Deutschland GmbH 7
8. Herausforderung:
Qualität
26.12.2014 SOGETI Deutschland GmbH 8
„Du hast das gebaut
was ich gesagt habe.“
... und es ist zu teuer!“
aber es ist nicht das
was ich wollte!“
„Du hast das gebaut
was ich gesagt habe,
aber es ist nicht das
was ich wollte …
9. Herausforderung:
Klassisches Testen in agilen Projekten
26.12.2014 SOGETI Deutschland GmbH 9
• Keine detaillierten Anforderungen
• Kein ausführliches Testkonzept
• Keine vollständigen Testfälle
• Testen startet viel früher
• Kein definierter Teststart und -ende
• Späte Änderungen in der Entwick-
lung sind teuer – Tests müssen neu
geschrieben und nachgetestet wer-
den
• Veraltete Einstellung
– Entwickler schreiben Code
– Tester suchen nach Fehlern
Es passt nicht
zusammen
!
10. Qualität ist KEINE Option
26.12.2014 SOGETI Deutschland GmbH 10
Qualität
Zeit Geld
Umfang
Umfang
Zeit Geld
Qualität
Traditioneller Ansatz Agiler Ansatz
festflexibel
11. Was ist agiles Testen?
Eine Software-Test-Praxis, die den Regeln des
agilen Manifests folgt
Qualität sichern als Team
Die kontinuierliche Verbesserung der Testverfahren
Tests, die sich auf schrittweise ausgeliefert Software-Inkremente
konzentrieren
So früh wie möglich Test aus und mit Kundensicht
Nachdenken über Benutzerinteraktionen
– Ein- und Ausgabegrößen steht über dem Folgen von Checklisten
– Auffinden von Fehlern steht über der Erreichung der Testabdeckung
26.12.2014 SOGETI Deutschland GmbH 11
The job of tests, and the people
that develop and run tests, is to
prevent defects, not to find
them. ”
- Mary Poppendieck!
12. Ein agiler Testansatz …
Steht zu den Prinzipien von Agile & Lean
Nimmt späte Änderungen in der Entwicklung
bereitwillig an
Führt Entwicklung und Test zur gleichen Zeit aus
Nimmt User Storys als Basis für positive
Testfälle
Hat das Ziel einer kontinuierlichen Lieferung je
Sprint (Getestet und fertig!)
Testet in einem übergreifenden Team
Startet mit einer Testbasis die sich ständig
verändert und weiterentwickelt
Nimmt Nicht-funktionale Anforderungen ins
Produkt-Backlog auf
Setzt auf einen hohen Automatisationsgrad
26.12.2014 SOGETI Deutschland GmbH 12
13. Kontinuierliche Qualitätssicherung
26.12.2014 SOGETI Deutschland GmbH 13
Analyse
Design
Entwicklung
Test
Auslieferung
Sprint n
Sprint n+1
Sprint n+2
Sprint n+3
Sprint n+4
Wasserfall Iterativ Agile/Scrum
Iteration n
Iteration n+1
Frühes und
kontinuierliches
Feedback!
14. Personalanpassung Klassisch vers. Agile
26.12.2014 SOGETI Deutschland GmbH 14
Jan Feb Mar Apr Mai Jun Jul Aug Sept Oct Nov Dez
Klassische Personalanpassung
Analyse
Design
Entwicklung
Test
Auslieferung
Jan Feb Mar Apr Mai Jun Jul Aug Sept Oct Nov Dez
Agile Personalanpassung
Test vom Start
an eingebunden
!
Qualitäts-
verständnis von
Anfang an!
15. Agile Testquadranten
26.12.2014 SOGETI Deutschland GmbH 15
Funktionstest
Beispiele
Story-Test
Prototyping
Simulation
Exploratives Testen
Szenarien
Benutzbarkeitstest
Benutzerakzeptenztest
Alpha-/Beta-Test
Unit Test
Komponententest
Last - & Performancetest
Sicherheitstest
Zuverlässigkeitstest
(Die vier Testquadranten agilen Testens nach (Chispin/Gregory)
manuell
Werkzeug
automatisiert
& manuell
automatisiert
produkthinterfragend
fachlich
technisch
teamunterstützend
Q1
Q2
Q4
Q3
17. Anforderung an ein Teammitglied mit
Migrationshintergrund Tester
SOGETI Deutschland GmbH 17
Zeitmanagement, Planungskompetenz und
Kommunikation, Aufwandsschätzung der Auf-
gaben, Schätztechniken, Teamfähigkeit, …
Selbstorganisation und Verplanung
Prozesskenntnis, Mindset der agilen Entwick-
lung, Teamfähigkeit, …
Unterstützen des Scrum-Prozesses
Konfliktmanagement, Streitgespräche, Inter-
viewtechnik, Schätztechniken, Domain-
Kenntnisse, Kommunikation, Anforderungs-
analyse, UML, …
Verbessern der User Stories
Testdesigntechniken, Testprozesskenntnisse,
Know-how bei der Testdurchführung, Testauto-
matisierung, Gestaltung von Testumgebungen,
Testwerkzeuge (Automatisierung), …
Effektives und effizientes Testen
Testautomatisierung, Continuous Integration
Bewältigung eines hohen
Aufkommens an Regressionstests
Fehlermanagement, Fehlerbeschreibung,
Nachtest, Kommunikation, Konfliktge-
spräche, …
Umgang mit Fehlern
Testdatenerstellung, Modellerstellung,
Codereview, Technische Dokumentation, …
Unterstützen der Entwicklung
Kommunikation, fundierte Fachkenntnisse,
didaktische Fähigkeiten, …
Ausbildung anderer
Teammitglieder zum Testen
26.12.2014
18. Schulungsmodel
SOGETI Deutschland GmbH 18
Soft Skill
Schulungen
Kommuni-
kation
Konflikt-
gespräche
Zeit-
management
…
Der Wille, agil zu arbeiten!
Teammitglied mit einem Mehrwert
Testtechnik
ISTQB® CTFL
ISTQB® CTAL
TMap NEXT®
…
Methoden &
Werkzeuge
CAT ®
Scrum-Master
…
Migrationshintergrund Tester
26.12.2014
28. Schulungen – Werkzeuge I
SOGETI Deutschland GmbH 28
• Testverwaltung
• Planerstellung
• Testfallverwaltung
• Fehlerverwaltung
Verwaltung
• Individuen und
Interaktionen
mehr als
Prozesse und
Werkzeuge
• Funktionierende
Software
mehr als
umfassende
Dokumentation
Agiles Manifest
26.12.2014
29. Schulungen – Werkzeuge II
SOGETI Deutschland GmbH 29
Automatisierung
• Testdatengenerierung
• Model Based Testing
• Testautomatisierung
• Liefere funktionierende Software
regelmäßig innerhalb weniger
Wochen oder Monate und bevorzuge
dabei die kürzere Zeitspanne.
• Agile Prozesse fördern nachhaltige
Entwicklung. Die Auftraggeber,
Entwickler und Benutzer sollten ein
gleichmäßiges Tempo auf
unbegrenzte Zeit halten können.
• Ständiges Augenmerk auf technische
Exzellenz und gutes Design fördert
Agilität.
• Einfachheit – die Kunst, die Menge
nicht getaner Arbeit zu maximieren –
ist essenziell.
Agile Prinzipien
26.12.2014
30. Certified Agile Tester ® - Ziele
Prozesse und Begriffe
verstehen
Schärfen der
Testmethoden
Explorativ –
Grenzwertanalyse –
Äquivalenzklassen-
analyse
Erweitern des
Testerhorizontes –
„Agil verstehen“
Erleben von Agil
(Mindset)
Tester zu einem
wertvolleren
Teammitglied machen
26.12.2014 SOGETI Deutschland GmbH 30
31. Introduction
Daily SCRUM
Problems with
Traditional
Agile Manifes-
to & Principles
Agile Methods
Agile Process
Option
Roles
Intro to Agile
Exercise
Sample
Questions
Day 1
Agile Methods
and Process
Requirements &
Specifications
Iteration 0
Release
Planning
Task Board
Test Strategy
Estimation
Iteration
Planning
Burndown
Charts
Sprint Practice
Exercises
Continuous
Integration
Version
Management
Pairing
Acceptance
Criteria
Regression
Testing
Defect
Management
Testing
Exercises
Sample
Questions
Test Automation
Non Functional
Testing
Debt Technical
& Testing
TDD
Teams
Agile For Large Projects
Summary Testing Exercises
Sample Questions
Practical
Assessment
Written Exam
Revision
Written
Examination
Day 2
Planning
Day 3
Testing
Day 4
Teams
Day 5
Assessment
Sample
Questions
Certified Agile Tester ® - Ablauf
26.12.2014 SOGETI Deutschland GmbH 31
34. 26.12.2014 Sogeti Deutschland GmbH 34
Mein Fazit II
Agile braucht Fachleute!
Nicht jeder ist geeignet!
Ausbildung ist sehr wichtig!
Schulungen sind vorhanden!
Noch wird zu wenig getan!
35. Dinge, über die
wir nicht
wissen, dass
wir sie nicht
wissen.
Dinge, über die
wir wissen,
dass wir sie
nicht wissen.
Dinge, über die
wir wissen,
dass wir sie
wissen.
Dinge, über die
wir nicht
wissen, dass
wir sie wissen.
„Was wir wissen, ist
ein Tropfen;
was wir nicht wissen,
ein Ozean.“
Isaac Newton
26.12.2014 SOGETI Deutschland GmbH 35
Q2Q1
Q3 Q4
36. Vielen Dank für Ihre
Aufmerksamkeit!
Michael Fischlein
Technical Manager
Mehlbeerenstr. 2
82024 Taufkirchen
Tel: +49 89 200005-545
Fax: +49 89 200005-501
Mobile: +49 172 2944996
Mail: michael.fischlein@sogeti.de
http://www.sogeti.de
26.12.2014 SOGETI Deutschland GmbH 36
Notes de l'éditeur
1 GRUNDLAGEN DES SOFTWARETESTENS (K2) ............................................................................... 10
1.1 WARUM SIND SOFTWARETESTS NOTWENDIG? (K2) ............................................................................... 11
1.1.1 Softwaresystemzusammenhang (K1) ............................................................................................. 11
1.1.2 Ursachen von Softwarefehlern (K2) .............................................................................................. 11
1.1.3 Die Rolle des Testens bei Entwicklung, Wartung und Betrieb von Software (K2) ........................ 11
1.1.4 Testen und Qualität (K2) ............................................................................................................... 11
1.1.5 Wie viel Testaufwand ist notwendig? (K2) .................................................................................... 12
1.2 WAS IST SOFTWARETESTEN? (K2) ......................................................................................................... 13
1.3 DIE SIEBEN GRUNDSÄTZE DES SOFTWARETESTENS (K2) ....................................................................... 14
1.4 FUNDAMENTALER TESTPROZESS (K1) ................................................................................................... 15
1.4.1 Testplanung und Steuerung (K1) ................................................................................................... 15
1.4.2 Testanalyse und Testentwurf (K1) ................................................................................................. 15
1.4.3 Testrealisierung und Testdurchführung (K1) ................................................................................ 16
1.4.4 Bewertung von Endekriterien und Bericht (K1) ............................................................................ 16
1.4.5 Abschluss der Testaktivitäten (K1) ................................................................................................ 17
1.5 DIE PSYCHOLOGIE DES TESTENS (K2) ................................................................................................... 18
1.6 ETHISCHE LEITLINIEN ............................................................................................................................ 20
2 TESTEN IM SOFTWARELEBENSZYKLUS (K2) ................................................................................ 21
2.1 SOFTWAREENTWICKLUNGSMODELLE (K2) ............................................................................................ 22
2.1.1 V-Modell (sequentielles Entwicklungsmodell) (K2) ...................................................................... 22
2.1.2 Iterativ-inkrementelle Entwicklungsmodelle (K2) ......................................................................... 22
2.1.3 Testen innerhalb eines Entwicklungslebenszyklus (K2) ................................................................ 22
2.2 TESTSTUFEN (K2) .................................................................................................................................. 24
2.2.1 Komponententest (K2) ................................................................................................................... 24
2.2.2 Integrationstest (K2) ..................................................................................................................... 25
2.2.3 Systemtest (K2) .............................................................................................................................. 26
2.2.4 Abnahmetest (K2) .......................................................................................................................... 26
2.3 TESTARTEN (K2) .................................................................................................................................... 28
2.3.1 Testen der Funktionalität (funktionaler Test) (K2) ....................................................................... 28
2.3.2 Testen der nicht-funktionalen Softwaremerkmale (nicht-funktionaler Test) (K2) ......................... 28
2.3.3 Testen der Softwarestruktur/Softwarearchitektur (strukturbasierter Test) (K2) ........................... 29
2.3.4 Testen im Zusammenhang mit Änderungen (Fehlernachtest und Regressionstest) (K2) .............. 29
2.4 WARTUNGSTEST (K2) ............................................................................................................................ 30
3 STATISCHER TEST (K2) ......................................................................................................................... 31
3.1 STATISCHE PRÜFTECHNIKEN UND DER TESTPROZESS (K2) .................................................................... 32
3.2 REVIEWPROZESS (K2) ............................................................................................................................ 33
3.2.1 Aktivitäten eines formalen Reviews (K1) ....................................................................................... 33
3.2.2 Rollen und Verantwortlichkeiten (K1)........................................................................................... 34
3.2.3 Reviewarten (K2) .......................................................................................................................... 34
3.2.4 Erfolgsfaktoren für Reviews (K2) .................................................................................................. 35
3.3 WERKZEUGGESTÜTZTE STATISCHE ANALYSE(K2) ................................................................................ 37
4 TESTENTWURFSVERFAHREN (K4) .................................................................................................... 38
4.1 DER TESTENTWICKLUNGSPROZESS (K3) ................................................................................................ 40
4.2 KATEGORIEN VON TESTENTWURFSVERFAHREN (K2) ............................................................................ 41
4.3 SPEZIFIKATIONSORIENTIERTE ODER BLACK-BOX- VERFAHREN (K3) .................................................... 42
4.3.1 Äquivalenzklassenbildung (K3) ..................................................................................................... 42
4.3.2 Grenzwertanalyse (K3) ................................................................................................................. 42
4.3.3 Entscheidungstabellentest (K3) ..................................................................................................... 42
4.3.4 Zustandsbasierter Test (K3) .......................................................................................................... 43
4.3.5 Anwendungsfallbasierter Test (K2) ............................................................................................... 43
4.4 STRUKTURBASIERTER TEST ODER WHITE-BOX-VERFAHREN (K4) ........................................................ 44
4.4.1 Anweisungstest und -überdeckung (K4) ........................................................................................ 44
4.4.2 Entscheidungstest und -überdeckung (K4) .................................................................................... 44
4.4.3 Andere strukturbasierte Verfahren (K1) ....................................................................................... 44
4.5 ERFAHRUNGSBASIERTE VERFAHREN (K2) ............................................................................................. 46
4.6 AUSWAHL VON TESTVERFAHREN (K2) .................................................................................................. 47
5 TESTMANAGEMENT (K3) ...................................................................................................................... 48
5.1 TESTORGANISATION (K2) ...................................................................................................................... 50
5.1.1 Testorganisation und Unabhängigkeit (K2) .................................................................................. 50
5.1.2 Aufgaben von Testmanager und Tester (K1) ................................................................................. 50
5.2 TESTPLANUNG UND -SCHÄTZUNG (K3) .................................................................................................. 52
5.2.1 Testplanung (K2) ........................................................................................................................... 52
5.2.2 Testplanungsaktivitäten (K3) ........................................................................................................ 52
5.2.3 Testeingangskriterien (K2) ............................................................................................................ 52
5.2.4 Endekriterien (K2) ........................................................................................................................ 53
5.2.5 Testaufwandsschätzung (K2) ......................................................................................................... 53
5.2.6 Teststrategie, Testvorgehensweise (K2) ........................................................................................ 53
5.3 TESTFORTSCHRITTSÜBERWACHUNG UND -STEUERUNG (K2) ................................................................. 55
5.3.1 Testfortschrittsüberwachung (K1) ................................................................................................. 55
5.3.2 Testberichterstattung (K2) ............................................................................................................ 55
5.3.3 Teststeuerung (K2) ........................................................................................................................ 55
5.4 KONFIGURATIONSMANAGEMENT(K2) ................................................................................................... 57
5.5 RISIKO UND TESTEN (K2) ...................................................................................................................... 58
5.5.1 Projektrisiken (K2) ........................................................................................................................ 58
5.5.2 Produktrisiken (K2) ....................................................................................................................... 58
5.6 FEHLER- UND ABWEICHUNGSMANAGEMENT (K3) ................................................................................. 60
6 TESTWERKZEUGE (K2) ......................................................................................................................... 62
6.1 TYPEN VON TESTWERKZEUGEN (K2) ..................................................................................................... 63
6.1.1 Werkzeugunterstützung für das Testen (K2) .................................................................................. 63
6.1.2 Klassifizierung von Testwerkzeugen (K2) ..................................................................................... 63
6.1.3 Werkzeugunterstützung für das Management des Testens (K1) .................................................... 64
6.1.4 Werkzeugunterstützung für den statischen Test (K1) .................................................................... 65
6.1.5 Werkzeugunterstützung für die Testspezifikation (K1) .................................................................. 65
6.1.6 Werkzeugunterstützung für die Testdurchführung und die Protokollierung (K1) ......................... 65
6.1.7 Werkzeugunterstützung für Performanzmessungen und Testmonitore (K1) ................................. 66
6.1.8 Werkzeugunterstützung für spezifische Anwendungsbereiche (K1) .............................................. 66
6.2 EFFEKTIVE ANWENDUNG VON WERKZEUGEN: POTENZIELLER NUTZEN UND RISIKEN (K2) .................. 67
6.2.1 Potenzieller Nutzen und Risiken einer Werkzeugunterstützung für das Testen (für alle Werkzeuge)
(K2) 67
6.2.2 Spezielle Betrachtungen zu einigen Werkzeugarten (K1) .............................................................. 68
6.3 EINFÜHRUNG VON TESTWERKZEUGEN IN EINE ORGANISATION(K1) ..................................................... 69