Considering All Viewpoints
Writing Task Cards
Deciding on Workload
Testable Stories
Collaborate with Customers
High-Level Tests and Examples
Reviewing with Customers
Reviewing with Programmers
Test Cases as Documentation
Summary
Chapter 18. Coding and Testing
Driving Development
Start Simple
Add Complexity
Assess Risk
Coding and Testing Progress Together
Identify Variations
Power of Three
Focus on One Story
Tests that Critique the Product
Collaborate with Programmers
Pair Testing
“Show Me”
Talk to Customers
Show Customers
Understand the Business
Completing Testing Tasks
Dealing with Bugs
Is It a Defect or Is It a Feature?
Technical Debt
Zero Bug Tolerance
It’s All about Choices
Decide Which Bugs to Log
Choose When to Fix Your Bugs
Choose the Media You Should Use to Log a Bug
Alternatives and Suggestions for Dealing with Bugs
Start Simple
Facilitate Communication
Testers Facilitate Communication
Distributed Teams
Regression Tests
Keep the Build “Green”
Keep the Build Quick
Building a Regression Suite
Checking the “Big Picture”
Resources
Iteration Metrics
Measuring Progress
Defect Metrics
Summary
Chapter 19. Wrap Up the Iteration
Iteration Demo
Retrospectives
Start, Stop, Continue
Ideas for Improvements
Celebrate Successes
Summary
Chapter 20. Successful Delivery
What Makes a Product?
Planning Enough Time for Testing
The End Game
Testing the Release Candidate
Test on a Staging Environment
Final Nonfunctional Testing
Integration with External Applications
Data Conversion and Database Updates
Installation Testing
Communication
What If It’s Not Ready?
Customer Testing
UAT
Alpha/Beta Testing
Post-Development Testing Cycles
Deliverables
Releasing the Product
Release Acceptance Criteria
Release Management
Packaging
Production Support
Understand Impact to Business
Customer Expectations
Summary
Part VI. Summary
Chapter 21. Key Success Factors
Success Factor 1: Use the Whole-Team Approach
Success Factor 2: Adopt an Agile Testing Mind-Set
Success Factor 3: Automate Regression Testing
Success Factor 4: Provide and Obtain Feedback
Success Factor 5: Build a Foundation of Core Practices
Continuous Integration
Test Environments
Manage Technical Debt
Working Incrementally
Coding and Testing Are Part of One Process
Synergy between Practices
Success Factor 6: Collaborate with Customers
Success Factor 7: Look at the Big Picture
Summary
Glossary
Bibliography
Index
Praise for Agile Testing
“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 game-changer. 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
Foreword by Mike Cohn
“Quality is baked in,” the programmers kept telling me. As part of a proposed acquisition, my boss had asked me to perform some final due diligence on the development team and its product. We’d already established that the company’s recently launched product was doing well in the market, but I was to make sure we were not about to buy more trouble than benefit. So I spent my time with the development team. I was looking for problems that might arise from having rushed the product into release. I wondered, “Was the code clean? Were there modules that could only be worked on by one developer? Were there hundreds or thousands of defects waiting to be discovered?” And when I asked about the team’s approach to testing, “Quality is baked in” was the answer I got.
Because this rather unusual colloquialism could have meant just about anything, I pressed further. What I found was that this was the company founder’s shorthand for expressing one of quality pioneer W. Edwards Deming’s famous fourteen points: Build quality into the product rather than trying to test it in later.
The idea of building quality into their products is at the heart of how agile teams work. Agile teams work in short iterations in part to ensure that the application remains at a known state of quality. Agile teams are highly cross-functional, with programmers, testers, and others working side by side throughout each iteration so that quality can be baked into products through techniques such as acceptance-test driven development, a heavy emphasis on automated testing, and whole-team thinking. Good agile teams bake quality in by building their products continuously, integrating new work within minutes of its being completed. Agile teams utilize techniques such as refactoring and a preference for simplicity in order to prevent technical debt from accumulating.