Last night i was hunting for interesting testing blogpostings… again. There are so many people telling the most interesting and compelling stories, you could spend days on reading them. But last night one blog caught my attention. Well, actually it wasn’t really a blog. It was a question asked by a developer, who calls him-/herself “Anonymous Coward”. (with respect to all my female blog readers, lets assume this person is a “he”. It will make blogging easier ;)). He stated the following:
“…one thing has always kept me back from being able to write the best software I possibly can: testing. I consider testing to be the absolute bane of my existence. It is so boring and un-stimulating that I usually skip it entirely, pass the testing off to someone else, or even worse, if I absolutely have to test, I do a very poor job at it.“
To me, testing is anything but boring or un-stimulating. It’s my hobby and my passion. So i continued reading:
“I know I’m not that lazy, as I can spend hours on end writing software, but there’s something about testing that makes my mind constantly wanted to wander off and think about something else.“
I was thinking: “Lazy? You’re not lazy! You are just not cognitive engaged anymore!”. Testing is challenging! Testing is about solving difficult puzzles. Testing is about boldly going where no man has gone before! Okay, maybe that’s a bit over the top, but you get the point…
Is this testing, what he’s doing? Someone just told him to *check* his code for errors. So he’s writing some cases to prove his code matches a specific result. The result of the check. To me this isn’t testing. There is no challenge in this. He already knows what results to expect. He already knows the answers to all the questions asked. The cognitive engagement, which was there when he designed and coded everything, is long gone. I can completely understand that his mind is constantly wandering off.
What if the developer took a different approach? What if the developer tried something which depends more on creatively solving puzzles, having more challenges or at least bring the boring part to a bare minimum? Would something like Test Driven Development be more challenging than ‘old-fashion” development with a standard unit-testing time box?