Yesterday evening Michael Bolton posted the
sort of Tweet that makes Twitter worthwhile. It made me think.
"Q. What's wrong with this post? http://bit.ly/dDAL41 A. It treats testing as a game of chance, not an exercise of skill."
Normally I'd agree with Michael. Testing is an exercise of skill. In this context, however, I can't agree. The linked article is talking about the number of users required to detect usability defects. It's not about how many testers are required to detect defects in the functionality.
Testers do have to use their skill. Throwing more testers at an application without consideration of their skill levels is a ridiculous way to test. In fact, it wouldn't really be testing at all, but that's another debate.
Usability testing is about how the users will interact with the application. Testers can, and should, try to put themselves into the minds of the users, but they cannot be an adequate substitute for real users.
Real users may approach an application with unrealistic expectations, or with attitudes that developers and testers consider irrational. They will usually have no existing knowledge of the application. In the case of internet applications they will often lack a knowledge of the conventions, and the culture, of these applications.
In short, users are liable be ignorant or uninformed. Testers will be knowledgeable. It is extremely difficult to think oneself back into a state of ignorance. To do so would require us to consciously choose what knowledge we are going to dispense with. Genuine users aren't even necessarily aware of what they don't know.
I am not denigrating users. Why should they know as much as we do about the applications under test, or the culture of web applications? We have to adapt to them. If we expect them to adapt to us they will leave us for a competitor who is more flexible.
We can anticipate many of the problems they might have, by use of heuristics, inspections, prototyping, testing on wireframes. But this doesn't tell us what real users might do when they get their hands on the application. Real users surprise us.
Testing the functionality requires a high level of skill, and Michael is quite right that this is not a matter of chance. Testing the usability requires real users if it is to be effective. The decision about how many are required to give us an acceptable level of confidence in the application, at a cost we consider acceptable, becomes an important question. Probability is then relevant, and that is what Jeff Sauro was talking about in the article Michael referred to.
Am I right? Obviously I think so, but this isn't a matter of blind faith. My stance is just a working hypothesis I'm currently comfortable with. If someone wants to try and convince me that skilled, professional testers can do a good enough job impersonating real users, in all their baffling complexity, then I'd love to see the argument.