One day, a software developer was walking down the street and came across a large pill of dog shit. He bent down to get a closer look and said to himself “yep, that looks like shit”. He then gave it a sniff, and said “Yep, that smells like shit”. He then put his finger in it, and said “Yep, this feels like shit”. Finally he did the unthinkable and tasted his finger and happily said: “Oh yeah, that tastes like shit…”. He then walked away satisfied, and said out loud:
“That was definitely dog shit. Good thing I didn’t step in it!”
An old joke which I managed to re-arrange and fit into my experiences with software. Sometimes you have to taste the shit to avoid stepping in it. Don’t look too deeply into the metaphor. Testing is hard, not everyone wants to do it, but it is your duty to prepare for and handle the worst, so your customers don’t need to. I guess there is a hidden message about thoroughness too.
Testing and ‘adequate’ test coverage is an ongoing problem in software development.
How can a team measure the completeness of a test plan?
And as complete as your testing gets, people will always ALWAYS find defects. Why? Because you can’t account for people’s stupidity.
As Kevin Mitnick said, “There is no patch for stupidity”, and although he said this in the context of social engineering… it’s applicable in the sense that we can’t test for absolutely everything, simply because we don’t know how a customer will end up using our product.
There’s a lot to write about this, so I figure I’ll link a blog post of my own shortly after.
Looking forward to it, and I’ll link back to it here
I read (in this random book about testing…) that you can’t ever be completely done testing because you can’t possibly find all the bugs (though I guess this depends how complex the software is), because it would require you to test all the possible inputs and paths to do something.
Also I feel like software should be sufficiently user-friendly so as to prevent or deter people from doing stupid things…
Maybe the topic for Steve Krug’s next book: “Don’t let me do something stupid!”
[…] knows how developers feel about testing. And I suppose, in an ideal world, where every developer had infinite time to design and build […]