Выбрать главу

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.