Foreword by Mike Cohn xxiii Foreword by Brian Marick xxv Preface xxvii Acknowledgments xxxvii About the Authors xli Part I: Introduction 1 Chapter 1: What Is Agile Testing, Anyway? 3 Agile Values 3 What Do We Mean by "Agile Testing"? 4 A Little Context for Roles and Activities on an Agile Team 7 How Is Agile Testing Different? 9 Whole-Team Approach 15 Summary 17 Chapter 2: Ten Principles for Agile Testers 19 What's an Agile Tester? 19 The Agile Testing Mind-Set 20 Applying Agile Principles and Values 21 Adding Value 31 Summary 33 Part II: Organizational Challenges 35 Chapter 3: Cultural Challenges 37 Organizational Culture 37 Barriers to Successful Agile Adoption by Test/QA Teams 44 Introducing Change 49 Management Expectations 52 Change Doesn't Come Easy 56 Summary 58 Chapter 4: Team Logistics 59 Team Structure 59 Physical Logistics 65 Resources 66 Building a Team 69 Summary 71 Chapter 5: Transitioning Typical Processes 73 Seeking Lightweight Processes 73 Metrics 74 Defect Tracking 79 Test Planning 86 Existing Processes and Models 88 Summary 93 Part III: The Agile Testing Quadrants 95 Chapter 6: The Purpose of Testing 97 The Agile Testing Quadrants 97 Knowing When a Story Is Done 104 Managing Technical Debt 106 Testing in Context 106 Summary 108 Chapter 7: Technology-Facing Tests that Support the Team 109 An Agile Testing Foundation 109 Why Write and Execute These Tests? 112 Where Do Technology-Facing Tests Stop? 119 What If the Team Doesn't Do These Tests? 121 Toolkit 123 Summary 127 Chapter 8: Business-Facing Tests that Support the Team 129 Driving Development with Business-Facing Tests 129 The Requirements Quandary 132 Thin Slices, Small Chunks 144 How Do We Know We're Done? 146 Tests Mitigate Risk 147 Testability and Automation 149 Summary 150 Chapter 9: Toolkit for Business-Facing Tests that Support the Team 153 Business-Facing Test Tool Strategy 153 Tools to Elicit Examples and Requirements 155 Tools for Automating Tests Based on Examples 164 Strategies for Writing Tests 177 Testability 183 Test Management 186 Summary 186 Chapter 10: Business-Facing Tests that Critique the Product 189 Introduction to Quadrant 3 190 Demonstrations 191 Scenario Testing 192 Exploratory Testing 195 Usability Testing 202 Behind the GUI 204 Testing Documents and Documentation 207 Tools to Assist with Exploratory Testing 210 Summary 214 Chapter 11: Critiquing the Product Using Technology-Facing Tests 217 Introduction to Quadrant 4 217 Who Does It? 220 When Do You Do It? 222 "ility" Testing 223 Performance, Load, Stress, and Scalability Testing 233 Summary 238 Chapter 12: Summary of Testing Quadrants 241 Review of the Testing Quadrants 241 A System Test Example 242 Tests Driving Development 244 Automation 245 Critiquing the Product with Business-Facing Tests 248 Documentation 251 Using the Agile Testing Quadrants 252 Summary 253 Part IV: Automation 255 Chapter 13: Why We Want to Automate Tests and What Holds Us Back 257 Why Automate? 258 Barriers to Automation-Things that Get in the Way 264 Can We Overcome These Barriers? 270 Summary 271 Chapter 14: An Agile Test Automation Strategy 273 An Agile Approach to Test Automation 274 What Can We Automate? 279 What Shouldn't We Automate? 285 What Might Be Hard to Automate? 287 Developing an Automation Strategy-Where Do We Start? 288 Applying Agile Principles to Test Automation 298 Supplying Data for Tests 304 Evaluating Automation Tools 311 Implementing Automation 316 Managing Automated Tests 319 Go Get Started 324 Summary 324 Part V: An Iteration in the Life of a Tester 327 Chapter 15: Tester Activities in Release or Theme Planning 329 The Purpose of Release Planning 330 Sizing 332 Prioritizing 338 What's in Scope? 340 Test Planning 345 Test Plan Alternatives 350 Preparing for Visibility 354 Summary 366 Chapter 16: Hit the Ground Running 369 Be Proactive 369 Advance Clarity 373 Examples 378 Test Strategies 380 Prioritize Defects 381 Resources 381 Summary 382 Chapter 17: Iteration Kickoff 383 Iteration Planning 383 Testable Stories 393 Collaborate with Customers 396 High-Level Tests and Examples 397 Summary 403 Chapter 18: Coding and Testing 405 Driving Development 406 Tests that Critique the Product 412 Collaborate with Programmers 413 Talk to Customers 414 Completing Testing Tasks 415 Dealing with Bugs 416 It's All about Choices 419 Facilitate Communication 429 Regression Tests 432 Resources 434 Iteration Metrics 435 Summary 440 Chapter 19: Wrap Up the Iteration 443 Iteration Demo 443 Retrospectives 444 Celebrate Successes 449 Summary 451 Chapter 20: Successful Delivery 453 What Makes a Product? 453 Planning Enough Time for Testing 455 The End Game 456 Customer Testing 464 Post-Development Testing Cycles 467 Deliverables 468 Releasing the Product 470 Customer Expectations 475 Summary 476 Part VI: Summary 479 Chapter 21: Key Success Factors 481 Success Factor 1: Use the Whole-Team Approach 482 Success Factor 2: Adopt an Agile Testing Mind-Set 482 Success Factor 3: Automate Regression Testing 484 Success Factor 4: Provide and Obtain Feedback 484 Success Factor 5: Build a Foundation of Core Practices 486 Success Factor 6: Collaborate with Customers 489 Success Factor 7: Look at the Big Picture 490 Summary 491 Glossary 493 Bibliography 501 Index 509
Lisa Crispin (Castle Rock, CO) has been a tester on agile web development teams since 2000, following many years of experience testing and programming on more traditional teams. She participates actively at agile and testing conferences, user group meetings, and seminars throughout the U.S. and Europe, helping agile teams identify better ways to add value through testing. She co-authored Testing Extreme Programming (Addison-Wesley). Janet Gregory (Calgary, Canada) has helped introduce XP practices as Coach, Iteration Manager and Tester. She holds a Computing Science degree from the University of Alberta, and ASQ Quality Management Certification.
"As Agile methods have entered the mainstream, we've learned a lot about how the testing discipline fits into Agile projects. Lisa and Janet give us a solid look at what to do, and what to avoid, in Agile testing." -Ron Jeffries, www.XProgramming.com "An excellent introduction to agile and how it affects the software test community!" -Gerard Meszaros, Agile Practice Lead and Chief Test Strategist at Solution Frameworks, Inc., an agile coaching and lean software development consultancy "In sports and music, people know the importance of practicing technique until it becomes a part of the way they do things. This book is about some of the most fundamental techniques in software development-how to build quality into code-techniques that should become second nature to every development team. The book provides both broad and in-depth coverage of how to move testing to the front of the development process, along with a liberal sprinkling of real-life examples that bring the book to life." -Mary Poppendieck, Author of Lean Software Development and Implementing Lean Software Development "Refreshingly pragmatic. Chock-full of wisdom. Absent of dogma. This book is a gamechanger. Every software professional should read it." -Uncle Bob Martin, Object Mentor, Inc. "With Agile Testing, Lisa and Janet have used their holistic sensibility of testing to describe a culture shift for testers and teams willing to elevate their test effectiveness. The combination of real-life project experiences and specific techniques provide an excellent way to learn and adapt to continually changing project needs." -Adam Geras, M.Sc. Developer-Tester, Ideaca Knowledge Services "On Agile projects, everyone seems to ask, `But, what about testing?' Is it the development team's responsibility entirely, the testing team, or a collaborative effort between developers and testers? Or, `How much testing should we automate?' Lisa and Janet have written a book that finally answers these types of questions and more! Whether you're a tester, developer, or manager, you'll learn many great examples and stories from the real-world work experiences they've shared in this excellent book." -Paul Duvall, CTO of Stelligent and co-author of Continuous Integration: Improving Software Quality and Reducing Risk "Finally a book for testers on Agile teams that acknowledges there is not just one right way! Agile Testing provides comprehensive coverage of the issues testers face when they move to Agile: from tools and metrics to roles and process. Illustrated with numerous stories and examples from many contributors, it gives a clear picture of what successful Agile testers are doing today." -Bret Pettichord, Chief Technical Officer of WatirCraft and Lead Developer of Watir