Which of these is a meaningless buzzword? “”Best practices”” or “”context-driven testing?”” Or does neither phrase mean much?
James Bach, co-author of the 2001 book Lessons Learned in Software Testing: A Context-Driven Approach, consulting software tester and trainer and principal of Front Royal,
Va.-based Satisfice Inc., says the big idea behind the context-driven school of software testing is that there are no best practices.
Bach, who identifies himself as a founder of the context-driven school, says practices can only be good in context, but there are no universal right ways to do software testing.
He contrasts that view with what he describes as an overemphasis on so-called best practices and documentation. He says testing has traditionally been viewed as a clerical activity performed according to prepared scripts by people with little knowledge of what they are doing, or approached in a “”ridiculously analytical”” way by academics.
Bret Pettichord, director of testing practices at Thoughtworks in Chicago and another co-author of Lessons Learned in Software Testing, says the idea of software testing centres arose from his conversations with other founders of the context-driven school. He describes schools as a means of identifying ways of thinking.
Besides the context-driven school, Pettichord identifies three others. The analytic school, popular among academics, sees testing as rigorous and technical. The factory school or routine school — the most popular in industry, according to Pettichord — emphasizes defining processes that can be carried out by relatively unskilled testers, while the quality school sees testing as part of a broader quality-control process.
But Boris Beizer, author of five books on software testing, rejects both Bach’s approach and Bach’s characterization of his own ideas.
“”I would characterize James Bach as a proponent of what I would call the touchy-feely school of software testing,”” scoffs Beizer. As for the term context-driven testing, “”that sounds like one of James’ neologisms.”” References to different schools of testing are “”marketing terms,”” Beizer argues.
To Bach, on the other hand, the term “”best practices”” is simply the label high-priced consultants apply to whatever way they prefer to do things.
“”When people talk about best practices,”” says Michael Bolton, a Toronto-based associate of Bach and principal of software testing consultancy DevelopSense, “”we sometimes believe they’re trying to end the discussion.””
To hear Bach, Pettichord and Bolton tell it, traditional approaches to software testing put too much stock in documentation, test plans and test scripts. If you listen to Beizer, on the other hand, established ways of testing software are based on peer-reviewed literature dating back to the 1950s, but nobody is saying there is one right way to do things.
The supposed gulf between the different views almost seems to be disappearing when Beizer observes that “”nobody can just follow a prescribed set of rules. That’s a very narrow view of software testing.”” But he says that while there are various techniques to be applied in different situations, there is one absolute rule, “”and that is coverage . . . If you don’t test a piece of code, you can’t find the bugs that are in it. “”