Testing: Art or Science?
In responding to a post on /r/softwaretesting, I had a thought that I thought was worth sharing.
The poster was starting out on their career in software testing, and was asking the community the best way to go about this. As you might imagine, the responses were either to follow the ISEB / ISTQB "standards" approach to testing, while the rest told them to reject that in favour of the context-driven "school" of Bach, Bolton, et al.
Rather than attempt to futher radicalise this nascent tester, and make them pick a side so early in their career, I attempted to walk the middle path and, in so doing, had my thought.
There are two schools of thought about how best to define what testing is, and how to train testers. Broadly, these are the ISTQB / ISO29119 "standardised" approach, and the "context-driven" approach of James Bach and Michael Bolton.
The former hews to the idea that testing is comprised of standard practices and approaches that can be applied to any product or project, while the latter maintains that the best approach to testing a product or project will be specific to that situation.
While I personally lean more to the context-driven approach, I think there is room for, and things to be gained from, standardisation and best practice. And that's where the answer to the "Art or Science?" question comes in.
Here's my (not very well put) answer from my response to the poster: "That's maybe what a tester is; a creative thinker able to apply their experiences to the software they are testing to develop hypotheses, and then a scientist who applies standard protocols to verifying those hypotheses who then uses those results to develop more hypotheses.?"
In short, it's both; Art and Science.
In "artist" mode, the tester applies their knowledge, experience, and creativity to the product to determine what questions they should ask of the software. This is the "context-driven" approach; you test in the way that seems most appropriate for the product at that point, and that approach might change as you learn more and more.
In "scientist" mode, the tester designs the test that will enable to them to answer the questions their "artist" created, and executes that test according to scientific principles.
I'm not suggesting for a second that these "modes" are mutually exclusive. Good Testing is a result of simultanteous Art and Science, each informing the other. Some organisations split the artists - the Test Analysts - from the scientists - the Test Engineers, but this breaks down that feedback loop between the two testing roles.
I believe that a tester can only do Good Testing if they are free to perform both roles. Therefore, there is as much a place for a formal grounding in testing techniques and terminology - the "science" - as there is for the creative freedom for a tester to test as they see fit - the "art".
Head of Retail Engineering at Fruugo.com
8 年Great article Richard. The art is in selecting the right questions to ask that are then hopefully answered by the scientific method. Of course, more questions may then be raised, but that's OK. That's testing.