Scott Hanselman asked on twitter “How do you handle user acceptance testing if the users consistently miss things?”. Sometimes it takes more than 140 characters to give a decent reply.

At my work, we run two distinct phases of testing, System Testing and User Acceptance Testing.

System Testing is the first phase, where we test that the software we’ve built meets both the requirements we were given and the specifications we wrote. This is where we exhaustively test every nook and cranny of the system to make sure it functions. Essentially we’re trying to answer the question “Did we build it right?”

User Acceptance Testing is the second phase, where real users from the business units test the software to see that it meets their needs. This is less about the minutiae of every detail and more about how the software can deliver business value. Essentially we’re trying to answer the question “Did we build the right thing?”

Taking this approach means that it’s less critical if our business users miss things during testing, because we’re not expecting them to exhaustively test every line of code. We’ve already done that ourselves.

Our key realisation is that our business users aren’t experts in testing, they’re experts in their own business. Asking them to do a professional job of something they’re not trained to do seems to be somewhat unfair.

One more thing - we don’t wait for UAT to get our first feedback that we’re building the right thing. We have subject matter experts and business analysis heavily involved the entire time. UAT includes the signoff milestone that, having received what they wanted built, the business unit is now able to achieve the outcomes desired.


blog comments powered by Disqus
Next Post
Computer Abuse and Safety of Data  04 Aug 2012
Prior Post
Comspec corruption - Solved  25 Jul 2012
Related Posts
Browsers and WSL  31 Mar 2024
Factory methods and functions  05 Mar 2023
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
July 2012