Home » General QA Stuff » Software Testing: Art or Science?

Software Testing: Art or Science?

Start here

When I was growing up in the 70’s I got an electric guitar for Christmas.  I had dreams of becoming the next Eric Clapton or Jimmie Page.  (For you youngsters that have no clue who I’m talking about – Google them).  I took lessons and played until my fingers bled.  But no matter how hard or how long I played – I was no Eric Clapton.  Oh I could play the notes, but not the music.  I still play to this day….some 35 years later, but it is still more mechanical than music.  So here I am writing a software testing blog.   :0)

I digress (as usual) – back to the question at hand.  Is software testing an art or a science?  The simple answer – Yes!

Testing – good testing – is both art & science.  I’ve seen, read, and heard the arguments on both sides and I really can’t say one is any superior to the other.

From the scientific side, testing can include a number of proven techniques such as equivalency class testing, boundary value analysis, pair-wise testing, etc.  These techniques, if used properly, can reduce test times and focus on finding the bugs where they tend to hang out – much like a porch light on a summer night.  The scientific techniques are all easily learned and applied.  They are also (or should be) well documented and easily repeatable with the next build to help validate defect resolutions.  Personally, I can’t think of any testing situation where some level of scientific testing is not needed.  If you are testing critical sytems or systems where life or death is a likely outcome (air traffic control systems, medical systems) – these tests are unavoidable.  Does that mean there is no need for other, more cranial type tests?  Absolutely not! 

But there is an art to testing as well.  The art side is not as easily learned.  It comes from experience, from gut feelings, from all those areas that you can’t really document.  It is typically those tests that start with thinking “I wonder what would happen if…..”  Exploratory Testing is a great example of the “art” of testing.  It involves poking around an application – with a purpose, trying to find those elusive bugs – guided only by gut instinct.

I can teach you how to play the notes, but I can’t make you a musician.  That my friends is something inside you that you must cultivate yourselves.  How do you get to Carnagy Hall?  Practice, Practice, Practice!

To everyone in the US – Happy Thanksgiving!!  To everyone else – Happy Thursday!!  Keep those cards and letters (or emails and blog comments) coming.  I love to hear from you!


4 Comments

  1. Dave,

    Very well said!

    I wholeheartedly, enthusiastically agree with your premise. I also wish that more people saw things the same way.

    My father co-wrote Statistics for Experimenters which describes the “art and science” within the Design of Experiments field of applied statistics. Well-run manufacturing companies use DoE techniques in their manufacturing processes. Many companies, such as Toyota see them as an absolutely fundamental part of their processes (yet unfortunately, software testers, who could use DoE techniques such as pairwise and other forms of combinatorial testing, are often ignorant about how to use them properly…. but I digress). I brought the book up because it opens up with a good example relevant to the points you made.

    To win at the game of 20 questions, it is useful to know “the science” of game theory and DoE; choose questions so that there is a 50/50 chance that the answer will be Yes. Someone who knows this technique, all else being equal, will be win more because of their “scientific” approach than someone who doesn’t know the technique. And yet… other stuff (whether the subject matter expertise in this example, or “artistic” Exploratory Testing in your example) is indispensable as well.

    You can’t truly excel at either 20 Questions or software testing unless you have a good mix of “science” (governed by mathematical principles, proven methods of DoE, etc.) and and “art” (governed by experience and subject matter expertise).

    – Justin

  2. […] 24, 2009 by Justin Hunter Dave Whalen posted a good piece here asserting that software testing, done well, requires a blend of “Science” and […]

  3. Software Development and Test definitely has a “creative” component that is artistic. I think that’s the premise behind “Beautiful Testing.” I’ve noticed that some of the best developers I know are also great musicians.

    As for the 20 questions game, I will say, I have a little robotic 20 questions game that is absolutely AMAZING. And since it’s software, I would say it’s all science with no art. Here’s a website that’s worth checking out: http://www.20q.net/ With AI, I wonder if there will be a time when “art” or “creativity” can be programmed…

  4. Naresh kashyap says:

    Excellent Question and Equivalent answer

Leave a comment