If unit tests give us feedback on the internal quality of our software then Acceptance Tests give us feedback on the external, behavioural quality of our software.
We naturally care about both types of quality: we know that if we do not take care of 'internal' quality then entropy will set in and the cost of change will slowly but surely rise to something approaching an exponential rate, but the user and/or business spends much less time thinking about 'internal' quality than they do about "external" quality. "Does the software do what I expect it to do?", is the most important question for the user. They rightfully assume that we are looking after internal quality, even when we are not. Acceptance tests are our behavioural contract between us as developers and whoever is paying for the software. We should strive for a more collaborative relationship than perhaps we have suffered/enjoyed in the past, but we still need to agree on what needs to be built, and ATs are a very effective, and with their potential to be automated, a very useful form to express these requirements.
Friday, March 11, 2005
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment