TDD produces automated
unit and integration tests. In some cases, programmers may also create end-to-end tests. These tests
help ensure that the software does what the programmers intended.
Likewise, customer tests help ensure that the programmers??™ intent matches customers??™ expectations.
Customers review work in progress to ensure that the UI works the way they expect. They also produce
examples for programmers to automate that provide examples of tricky business rules.
Finally, testers help the team understand whether their efforts are in fact producing high-quality code.
They use exploratory testing to look for surprises and gaps in the software. When the testers find a bug,
the team conducts root-cause analysis and considers how to improve their process to prevent similar
bugs from occuring in the future. Testers also explore the software??™s nonfunctional characteristics, such
as performance and stability. Customers then use this information to decide whether to create additional
stories.
The team doesn??™t perform any manual regression testing. TDD and customer testing leads to a
sophisticated suite of automated regression tests. When bugs are found, programmers create automated
tests to show that the bugs have been resolved.
Pages:
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62