1 Introduction |
|
1 | (6) |
|
|
2 | (1) |
|
|
3 | (2) |
|
|
5 | (1) |
|
|
6 | (1) |
2 Agile vs. Traditional Approaches |
|
7 | (18) |
|
|
7 | (8) |
|
|
15 | (2) |
|
2.3 Traditional Process Models |
|
|
17 | (4) |
|
2.4 Comparing Process Models |
|
|
21 | (4) |
3 Planning an Agile Project |
|
25 | (16) |
|
|
26 | (1) |
|
|
26 | (2) |
|
|
28 | (2) |
|
|
30 | (2) |
|
|
32 | (1) |
|
|
33 | (2) |
|
3.7 Test Planning and Test Management |
|
|
35 | (2) |
|
3.7.1 Traditional Test Management |
|
|
35 | (1) |
|
3.7.2 Test Management in Scrum |
|
|
35 | (2) |
|
3.7.3 Test Levels in Scrum |
|
|
37 | (1) |
|
3.8 Introducing Agile Planning |
|
|
37 | (1) |
|
3.9 Questions and Exercises |
|
|
38 | (3) |
|
|
38 | (1) |
|
3.9.2 Methods and Techniques |
|
|
39 | (1) |
|
|
39 | (2) |
4 Unit Testing and Test First |
|
41 | (38) |
|
|
41 | (17) |
|
4.1.1 Classes and Objects |
|
|
42 | (1) |
|
4.1.2 Testing the Methods of a Class |
|
|
43 | (8) |
|
4.1.3 Object State Testing |
|
|
51 | (3) |
|
4.1.4 State-Based Coverage Criteria |
|
|
54 | (2) |
|
4.1.5 Testing with Method Permutations |
|
|
56 | (2) |
|
|
58 | (10) |
|
4.2.1 Test First and Scrum |
|
|
61 | (1) |
|
4.2.2 Implementing Test First |
|
|
62 | (2) |
|
|
64 | (4) |
|
4.3 Unit Testing Frameworks |
|
|
68 | (1) |
|
4.4 Stubs, Mocks and Dummies |
|
|
69 | (2) |
|
|
71 | (4) |
|
|
74 | (1) |
|
4.6 Questions and Exercises |
|
|
75 | (4) |
|
|
75 | (1) |
|
4.6.2 Methods and Techniques |
|
|
76 | (1) |
|
|
76 | (3) |
5 Integration Testing and Continuous Integration |
|
79 | (30) |
|
|
79 | (7) |
|
5.1.1 Typical Integration Failures and Their Causes |
|
|
80 | (2) |
|
5.1.2 Designing Integration Test Cases |
|
|
82 | (3) |
|
5.1.3 The Differences between Unit and Integration Tests |
|
|
85 | (1) |
|
5.2 The Role Played by System Architecture |
|
|
86 | (4) |
|
5.2.1 Dependencies and Interfaces |
|
|
88 | (1) |
|
5.2.2 Testability and Testing Effort |
|
|
89 | (1) |
|
|
90 | (4) |
|
|
90 | (2) |
|
5.3.2 Subsystem Integration |
|
|
92 | (1) |
|
|
92 | (2) |
|
5.4 Traditional Integration Strategies |
|
|
94 | (1) |
|
5.5 Continuous Integration |
|
|
94 | (9) |
|
|
95 | (3) |
|
|
98 | (3) |
|
|
101 | (2) |
|
5.6 Integration Test Management |
|
|
103 | (2) |
|
5.7 Questions and Exercises |
|
|
105 | (4) |
|
|
105 | (1) |
|
5.7.2 Methods and Techniques |
|
|
106 | (1) |
|
|
107 | (2) |
6 System Testing and Testing Nonstop |
|
109 | (32) |
|
|
109 | (3) |
|
6.2 The System Testing Environment |
|
|
112 | (2) |
|
6.3 Manual System Testing |
|
|
114 | (3) |
|
6.3.1 Exploratory Testing |
|
|
114 | (1) |
|
6.3.2 Session-Based Testing |
|
|
115 | (1) |
|
|
116 | (1) |
|
6.4 Automated System Testing |
|
|
117 | (9) |
|
6.4.1 Record/Playback Testing |
|
|
117 | (2) |
|
6.4.2 Keyword-Driven Testing |
|
|
119 | (5) |
|
6.4.3 Behavior-Driven Testing |
|
|
124 | (2) |
|
6.5 Using Test First for System Testing |
|
|
126 | (1) |
|
6.5.1 System Test Repository |
|
|
126 | (1) |
|
|
127 | (1) |
|
6.6 Non-functional Testing |
|
|
127 | (4) |
|
6.7 Automated Acceptance Testing |
|
|
131 | (1) |
|
6.8 When Should System Testing Take Place? |
|
|
132 | (3) |
|
6.8.1 System Testing in a Final Sprint |
|
|
132 | (1) |
|
6.8.2 System Testing at the End of a Sprint |
|
|
133 | (1) |
|
6.8.3 System Testing Nonstop |
|
|
134 | (1) |
|
6.9 The Release Sprint and Deployment |
|
|
135 | (2) |
|
6.10 System Test Management |
|
|
137 | (1) |
|
6.11 Questions and Exercises |
|
|
138 | (3) |
|
|
138 | (1) |
|
6.11.2 Methods and Techniques |
|
|
139 | (1) |
|
|
140 | (1) |
7 Quality Management and Quality Assurance |
|
141 | (28) |
|
7.1 Traditional Quality Management |
|
|
141 | (5) |
|
7.1.1 The ISO 9000 Standard |
|
|
141 | (1) |
|
7.1.2 The Principles of PDCA |
|
|
142 | (1) |
|
7.1.3 Strengths and Weaknesses |
|
|
143 | (2) |
|
7.1.4 Process Modeling and Software Development |
|
|
145 | (1) |
|
7.2 Agile Quality Management |
|
|
146 | (5) |
|
7.2.1 Simplifying QM Documentation |
|
|
146 | (2) |
|
7.2.2 Changing QM Culture |
|
|
148 | (2) |
|
7.2.3 Retrospectives and Process Improvement |
|
|
150 | (1) |
|
7.3 Dealing with Compliance Requirements |
|
|
151 | (3) |
|
7.3.1 Requirements of Software Development Processes |
|
|
151 | (1) |
|
7.3.2 Traceability Requirements |
|
|
152 | (2) |
|
7.3.3 Product Attribute Requirements |
|
|
154 | (1) |
|
7.4 Traditional Quality Assurance |
|
|
154 | (2) |
|
|
155 | (1) |
|
|
155 | (1) |
|
7.5 Agile Quality Assurance |
|
|
156 | (6) |
|
7.5.1 Principles and Tools |
|
|
156 | (3) |
|
7.5.2 Strengths and Weaknesses |
|
|
159 | (3) |
|
|
162 | (3) |
|
7.6.1 Critical Factors for Successful Agile Testing |
|
|
162 | (2) |
|
7.6.2 Test Planning in Scrum |
|
|
164 | (1) |
|
7.7 Skills, Training, Values |
|
|
165 | (2) |
|
7.8 Questions and Exercises |
|
|
167 | (2) |
|
|
167 | (1) |
|
7.8.2 Methods and Techniques |
|
|
168 | (1) |
|
|
168 | (1) |
8 Case Studies |
|
169 | (40) |
|
8.1 Using Scrum to Develop Video and Audio Production Software |
|
|
169 | (5) |
|
8.2 Nonstop System Final Testing—Using Scrum to Develop the TestBench Tool |
|
|
174 | (7) |
|
8.3 Using Scrum to Develop an Online Store |
|
|
181 | (3) |
|
8.4 Introducing Scrum at ImmobilienScout24 |
|
|
184 | (6) |
|
8.5 Scrum in a Medical Technology Environment |
|
|
190 | (10) |
|
8.6 Testing in Scrum at GE Oil & Gas |
|
|
200 | (9) |
Appendix |
|
209 | (12) |
|
|
211 | (4) |
|
|
215 | (6) |
|
|
215 | (2) |
|
|
217 | (2) |
|
|
219 | (2) |
Index |
|
221 | |