Foreword | p. xv |
Preface | p. xvii |
Acknowledgments | p. xix |
The XP Tester Role | p. 1 |
An Overview | p. 3 |
Introduction | p. 3 |
Overview of XP | p. 4 |
How XP Solves Testing and Quality Assurance Problems | p. 6 |
Wolves in Sheep's Clothing | p. 8 |
Summary | p. 9 |
Why XP Teams Need Testers | p. 11 |
Definition of Tester | p. 11 |
The Tester's Contribution, Illustrated | p. 12 |
Shun the Dark Side | p. 14 |
Summary | p. 15 |
How XP Teams Benefit from Having Testers | p. 17 |
Checks and Balances | p. 18 |
Acceptance Tests versus Unit Tests | p. 19 |
Navigating for XP Projects | p. 20...td> |
Summary | p. 21 |
XP Testing Values | p. 23 |
Communication | p. 24 |
Simplicity | p. 25 |
Feedback | p. 26 |
Courage | p. 27 |
Summary | p. 28 |
Overview of the XP Tester Role | p. 29 |
XP Tester's Bill of Rights | p. 31 |
XP Tester Activities | p. 32 |
Summary | p. 33 |
Quality and XP | p. 35 |
Defining Quality | p. 35 |
Setting Quality Criteria | p. 37 |
Who Is Responsible for Quality? | p. 37 |
Summary | p. 38 |
Test Drive through an XP Project | p. 39 |
User Stories and Release Planning | p. 41 |
The Tester's Role in Up-Front Activities | p. 42 |
Goals of Up-Front Tester Activities | p. 43 |
Summary | p. 45 |
Exercise 1 | p. 45 |
Identifying Hidden Assumptions | p. 47 |
A Process for Finding Hidden Assumptions | p. 47 |
Summary | p. 53 |
Exercise 2 | p. 53 |
Defining High-Level Acceptance Tests | p. 55 |
Basic Acceptance Test Definitions | p. 56 |
Summary | p. 59 |
Exercise 3 | p. 60 |
High-Level Acceptance Test Estimates | p. 61 |
Ways to Estimate Acceptance-Test Effort | p. 63 |
Summary | p. 68 |
Exercise 4 | p. 69 |
Enabling Accurate Estimates during Release Planning | p. 71 |
Why We Care about Estimates | p. 71 |
How You Can Improve Estimate Accuracy | p. 72 |
Summary | p. 74 |
Exercise 5 | p. 74 |
Planning the First Iteration | p. 77 |
Overview of Iteration Planning | p. 78 |
The Tester's Role in Iteration Planning | p. 78 |
Summary | p. 81 |
Exercise 6 | p. 82 |
Defining and Estimating Testing and Test Infrastructure Tasks | p. 83 |
Identifying and Estimating Test Infrastructure Tasks | p. 84 |
Identifying and Estimating Functional and Acceptance Testing Tasks | p. 85 |
A Note on Separate Test Teams | p. 87 |
Summary | p. 92 |
Exercise 7 | p. 92 |
Acceptance Tests and Quality | p. 93 |
Acceptance Test Details | p. 94 |
Internal and External Quality | p. 95 |
Summary | p. 96 |
Exercise 8 | p. 97 |
Nailing Down the Details | p. 99 |
Picking the Customer's Brain (and the Programmers'!) | p. 100 |
The Good, the Bad, and the Ugly | p. 101 |
Optional Tests | p. 104 |
Getting Creative | p. 105 |
Lights-Out Test Design | p. 105 |
Summary | p. 106 |
Exercise 9 | p. 107 |
Writing Acceptance Tests | p. 109 |
Executable Tests | p. 110 |
If You Have Trouble Getting Started | p. 113 |
Summary | p. 116 |
Exercise 10 | p. 116 |
Organizing Acceptance Tests | p. 119 |
Version Control of Acceptance Tests | p. 119 |
Executable Test Files | p. 120 |
Organizing Acceptance Tests in Spreadsheets | p. 121 |
Summary | p. 123 |
Exercise 11 | p. 124 |
Test Design and Refactoring | p. 125 |
Establishing the Initial System State | p. 125 |
Tests That Leave the System State Unchanged | p. 126 |
Coupling between Tests | p. 128 |
Summary | p. 129 |
Exercise 12 | p. 130 |
Manual Tests | p. 131 |
Summary | p. 131 |
Exercise 13 | p. 131 |
What!?!! | p. 133 |
Manual Tests Are Unreliable | p. 134 |
Manual Tests Undermine the XP Testing Practice | p. 134 |
Manual Tests Are Divisive | p. 135 |
The Wings-Fall-Off Button | p. 135 |
What If You Have Manual Tests? | p. 136 |
Summary | p. 136 |
Exercise 14 | p. 137 |
Test Automation | p. 139 |
Modular Tests | p. 141 |
Data-Independent Tests | p. 142 |
Self-Verifying Tests | p. 143 |
Summary | p. 144 |
Exercise 15 | p. 145 |
Making Executable Tests Run | p. 147 |
Linking the Executable Test to an Application Test Class | p. 148 |
Defining the Application Test Class | p. 149 |
Calling the Code to be Tested | p. 150 |
Running the Test | p. 150 |
Getting Additional Tests to Run | p. 152 |
Combining Multiple Tests into Test Suites | p. 154 |
Summary | p. 155 |
Exercise 16 | p. 156 |
Running Executable Tests through Other Interfaces | p. 157 |
Code Missed by Direct Calls | p. 158 |
Expanding Coverage of the Executable Tests | p. 158 |
Interfacing to a Test Tool | p. 159 |
Creating an Application Test-Interface Class | p. 160 |
Refactoring the Direct-Call Interface | p. 161 |
Refactoring the Application Test Class | p. 162 |
Creating a Tool-Specific Interface Class | p. 164 |
One Team's Experience with Direct-Call Test Automation | p. 166 |
Summary | p. 167 |
Exercise 17 | p. 168 |
Driving the System with a Test Tool | p. 169 |
WebART Overview | p. 170 |
Main WebART Script | p. 170 |
Login Module | p. 171 |
Validation Criteria | p. 173 |
Summary | p. 175 |
Exercise 18 | p. 176 |
Bugs on the Windshield: Running Acceptance Tests | p. 177 |
How Often Do You Run Acceptance Tests? | p. 177 |
Educating the Customer | p. 180 |
Acceptance Criteria | p. 181 |
Defect Management | p. 181 |
Road Food for Thought | p. 182 |
Summary | p. 183 |
Exercise 19 | p. 183 |
Looking Back for the Future | p. 185 |
Summary | p. 191 |
Exercise 20 | p. 192 |
Keep On Truckin': Completing the XP Road Trip | p. 193 |
Regression Testing | p. 194 |
Catching Up | p. 195 |
Maintenance? | p. 196 |
The Release | p. 196 |
When XP Projects End | p. 197 |
Summary | p. 198 |
Exercise 21 | p. 199 |
Road Hazard Survival Kit | p. 201 |
Challenges in "Testability" | p. 203 |
Designing for Testability | p. 203 |
A Real-Life Example | p. 204 |
Summary | p. 206 |
Exercise 22 | p. 206 |
Selecting and Implementing Tools | p. 207 |
Evolving Tools | p. 208 |
Test Tools | p. 208 |
Other Tools Related to Quality | p. 209 |
Choosing an Off-the-Shelf Tool | p. 210 |
Implementing Tools | p. 211 |
Experimenting with Tools | p. 211 |
Summary | p. 213 |
Project Tune-Ups | p. 215 |
Office Space | p. 215 |
Accessorizing for XP | p. 216 |
Metrics | p. 219 |
Test Environment | p. 221 |
Other Obvious Best Practices | p. 222 |
Additional Tester Duties | p. 222 |
Summary | p. 222 |
Introducing XP to Your Organization: A Tester's Point of View | p. 225 |
Test Phases and Practices | p. 227 |
Introducing People to the XP Tester Role | p. 228 |
Helping XP Testers Succeed | p. 228 |
XP Testing with Blended Practices | p. 229 |
What If You Don't Have Enough Testers? | p. 232 |
Summary | p. 233 |
XP for Projects of Unusual Size | p. 235 |
Adjusting XP | p. 235 |
Advance Planning Pays Off | p. 236 |
Working with Customers | p. 237 |
Satisfying Customer Test Documentation Requirements | p. 238 |
Iteration Planning and Execution for Large or Multilocation Projects | p. 239 |
Summary | p. 240 |
Extreme Testing without Extreme Programming | p. 241 |
Gathering Requirements | p. 242 |
System Design | p. 243 |
Planning and Defining Tests | p. 243 |
Running Tests | p. 244 |
Retrospectives | p. 245 |
Let Worry Be Your Guide | p. 246 |
Summary | p. 247 |
In Closing: May the Road Rise Up to Meet You | p. 249 |
Answers to Exercises | p. 251 |
Bibliography | p. 287 |
Afterword | p. 291 |
Index | p. 293 |
Table of Contents provided by Syndetics. All Rights Reserved. |