I read a post from Shrini last week where he expanded on Lidor Wyssocky’s post on the ten myths of software development by developing the ten myths of software testing. There’s a lot I could add to each of these myths, but the statement that constantly catches my eye is the myth that creativity and software development or testing can not coexist.
The actual quote is:
Creativity and discipline cannot live together. Creativity equals chaos.
This certainly isn’t the first time I’ve seen a statement like this, and I, like many others view it as absurd. I hear prominent testers talk about the need for creativity in testing often. The funny thing about it is that most of them, like it or not, agree with the quote above – it seems to me that they believe that testing is only a creative activity, and that thinking quickly in new and interesting ways is the way testing should be approached. I, of course, would be interested in hearing any alternate views if my interpretation is off base.
For the record, I think the myth statement above is completely false. (to be clear, I believe that the statement is indeed a myth). It is not only possible to be creative and have a formal methodical approach, in my opinion it is a wonderful approach to testing. When I am developing test cases, I almost always begin with an exploratory approach so that I can better understand the application under test. Writing good automation code requires creativity, and it also requires knowledge of the application and the system it runs on. When you have more knowledge, you will have more mental models and tools to leverage in your creativity. Some sort of a formal approach is especially advantageous in testing efficiently and effectively. Working within a framework can provide a structured environment while still allowing for creativity.
Undoubtedly, some of you won’t believe the above paragraph, so let me turn it around and see if it clears anything up.
I think most would agree that doing almost anything with music requires some level of creativity, and that writing music is someplace where creativity is required. I’ve written music for over half of my life. I wrote a symphony in my mid twenties, and have written and arranged hundreds of pieces of music in my life. My music has been performed across the country and, on occasion, overseas. I am sad to reveal a secret, but it will help me get my point across: writing music is mostly process and formula. There is definitely some creativity involved, but once you get beyond a sketch of melody and rhythm, 95% of the remaining work relies on the basics of understanding chords, chord structure, instrument timbre / range, notation, and all kinds of other similar information. Also keep in mind that the knowledge of those things allows me to have a better and more efficient approach to the creative aspect of composition.
The above is the exact same way I approach software engineering (yes, testing is engineering). Creativity is definitely a key aspect, but it is supported by a knowledge of the system, and is often best suited within some sort of formal or deliberate approach. Because I understand the system, I know what questions to ask, and what questions can be ignored. Working within some sort of structure helps me focus my testing efforts.
There are 50 other things I could add, but I’ll save them for the comments or a future post.