Integration of Testers into an Agile Project
Agile Project Teams
Physical Logistics
Resources
Tester-Developer Ratio
Hiring an Agile Tester
Building a Team
Self-Organizing Team
Involving Other Teams
Every Team Member Has Equal Value
Performance and Rewards
What Can You Do?
Summary
Chapter 5. Transitioning Typical Processes
Seeking Lightweight Processes
Metrics
Lean Measurements
Why We Need Metrics
What Not to Do with Metrics
Communicating Metrics
Metrics ROI
Defect Tracking
Why Should We Use a Defect Tracking System (DTS)?
Why Shouldn’t We Use a DTS?
Defect Tracking Tools
Keep Your Focus
Test Planning
Test Strategy vs. Test Planning
Traceability
Existing Processes and Models
Audits
Frameworks, Models, and Standards
Summary
Part III. The Agile Testing Quadrants
Chapter 6. The Purpose of Testing
The Agile Testing Quadrants
Tests that Support the Team
Tests that Critique the Product
Knowing When a Story Is Done
Shared Responsibility
Managing Technical Debt
Testing in Context
Summary
Chapter 7. Technology-Facing Tests that Support the Team
An Agile Testing Foundation
The Purpose of Quadrant 1 Tests
Supporting Infrastructure
Why Write and Execute These Tests?
Lets Us Go Faster and Do More
Making Testers’ Jobs Easier
Designing with Testing in Mind
Timely Feedback
Where Do Technology-Facing Tests Stop?
What If the Team Doesn’t Do These Tests?
What Can Testers Do?
What Can Managers Do?
It’s a Team Problem
Toolkit
Source Code Control
IDEs
Build Tools
Build Automation Tools
Unit Test Tools
Summary
Chapter 8. Business-Facing Tests that Support the Team
Driving Development with Business-Facing Tests
The Requirements Quandary
Common Language
Eliciting Requirements
Advance Clarity
Conditions of Satisfaction
Ripple Effects
Thin Slices, Small Chunks
How Do We Know We’re Done?
Tests Mitigate Risk
Testability and Automation
Summary
Chapter 9. Toolkit for Business-Facing Tests that Support the Team
Business-Facing Test Tool Strategy
Tools to Elicit Examples and Requirements
Checklists
Mind Maps
Spreadsheets
Mock-Ups
Flow Diagrams
Software-Based Tools
Tools for Automating Tests Based on Examples
Tools to Test below the GUI and API Level
Tools for Testing through the GUI
Strategies for Writing Tests
Build Tests Incrementally
Keep the Tests Passing
Use Appropriate Test Design Patterns
Keyword and Data-Driven Tests
Testability
Code Design and Test Design
Automated vs. Manual Quadrant 2 Tests
Test Management
Summary
Chapter 10. Business-Facing Tests that Critique the Product
Introduction to Quadrant 3
Demonstrations
Scenario Testing
Exploratory Testing
Session-Based Testing
Automation and Exploratory Testing
An Exploratory Tester
Usability Testing
User Needs and Persona Testing
Navigation
Check Out the Competition
Behind the GUI
API Testing
Web Services
Testing Documents and Documentation
User Documentation
Reports
Tools to Assist with Exploratory Testing
Test Setup
Test Data Generation
Monitoring Tools
Simulators
Emulators
Summary
Chapter 11. Critiquing the Product Using Technology-Facing Tests
Introduction to Quadrant 4
Who Does It?
When Do You Do It?
“ility” Testing
Security
Maintainability
Interoperability
Compatibility
Reliability
Installability
“ility” Summary
Performance, Load, Stress, and Scalability Testing
Scalability
Performance and Load Testing
Performance and Load-Testing Tools
Baseline
Test Environments
Memory Management
Summary
Chapter 12. Summary of Testing Quadrants
Review of the Testing Quadrants
A System Test Example
The Application
The Team and the Process
Tests Driving Development
Unit Tests
Acceptance Tests
Automation
The Automated Functional Test Structure
Web Services
Embedded Testing
Critiquing the Product with Business-Facing Tests
Exploratory Testing
Testing Data Feeds
The End-to-End Tests
User Acceptance Testing
Reliability
Documentation
Documenting the Test Code
Reporting the Test Results
Using the Agile Testing Quadrants
Summary
Part IV. Automation
Chapter 13. Why We Want to Automate Tests and What Holds Us Back
Why Automate?
Manual Testing Takes Too Long
Manual Processes Are Error Prone
Automation Frees People to Do Their Best Work
Automated Regression Tests Provide a Safety Net
Automated Tests Give Feedback, Early and Often
Tests and Examples that Drive Coding Can Do More
Tests Are Great Documentation
ROI and Payback
Barriers to Automation—Things that Get in the Way
Bret’s List
Our List
Programmers’ Attitude—“Why Automate?”
The “Hump of Pain” (The Learning Curve)
Initial Investment
Code that’s Always in Flux
Legacy Code
Fear
Old Habits
Can We Overcome These Barriers?
Summary