Chapter 14. An Agile Test Automation Strategy
An Agile Approach to Test Automation
Automation Test Categories
Test Automation Pyramid
What Can We Automate?
Continuous Integration, Builds, and Deploys
Unit and Component Tests
API or Web Services Testing
Testing behind the GUI
Testing the GUI
Load Tests
Comparisons
Repetitive Tasks
Data Creation or Setup
What Shouldn’t We Automate?
Usability Testing
Exploratory Testing
Tests that Will Never Fail
One-Off Tests
What Might Be Hard to Automate?
Developing an Automation Strategy—Where Do We Start?
Where Does It Hurt the Most?
Multi-Layered Approach
Think about Test Design and Maintenance
Choosing the Right Tools
Applying Agile Principles to Test Automation
Keep It Simple
Iterative Feedback
Whole-Team Approach
Taking the Time to Do It Right
Learn by Doing
Apply Agile Coding Practices to Tests
Supplying Data for Tests
Data Generation Tools
Avoid Database Access
When Database Access Is Unavoidable or Even Desirable
Understand Your Needs
Evaluating Automation Tools
Identifying Requirements for Your Automation Tool
One Tool at a Time
Choosing Tools
Agile-Friendly Tools
Implementing Automation
Managing Automated Tests
Organizing Tests
Organizing Test Results
Go Get Started
Summary
Part V. An Iteration in the Life of a Tester
Chapter 15. Tester Activities in Release or Theme Planning
The Purpose of Release Planning
Sizing
How to Size Stories
The Tester’s Role in Sizing Stories
An Example of Sizing Stories
Prioritizing
Why We Prioritize Stories
Testing Considerations While Prioritizing
What’s in Scope?
Deadlines and Timelines
Focus on Value
System-Wide Impact
Third-Party Involvement
Test Planning
Where to Start
Why Write a Test Plan?
Types of Testing
Infrastructure
Test Environments
Test Data
Test Results
Test Plan Alternatives
Lightweight Test Plans
Using a Test Matrix
Test Spreadsheet
A Whiteboard
Automated Test List
Preparing for Visibility
Tracking Test Tasks and Status
Communicating Test Results
Release Metrics
Summary
Chapter 16. Hit the Ground Running
Be Proactive
Benefits
Do You Really Need This?
Potential Downsides to Advance Preparation
Advance Clarity
Customers Speak with One Voice
Story Size
Geographically Dispersed Teams
Examples
Test Strategies
Prioritize Defects
Resources
Summary
Chapter 17. Iteration Kickoff
Iteration Planning
Learning the Details
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