Development Methodology
Employing Skepticism
Skepticism as a testing philosophy.
Employing Skepticism as a Software Testing Attitude
Skepticism
By this I mean to suggest that we are skeptical that our software is bug-free - even after we done our best to find them. In fact, we expect that our software will contain bugs. We may not find all of them and/or they may not be obvious, but they exist nonetheless. So, as an example, after I have checked in my code, I am, in effect, saying to QA, “I know there’s bugs in the code I just checked in, but I can’t simply find them. I’ve tried. Now it’s your turn. Please find them before the Acceptance group does.”
QA (at some point) then says to the Acceptance group, “The developer and I have tried to find the bugs that exist in this software. We know that they are present, but we can’t seem to expose them. Could you help us identify the bugs before the customer does?”
This doesn’t mean that we become extremists and spend an inordinate amount of time in our testing. It doesn’t mean that we disregard business concerns.
But, it does mean that we have a thorough and reasonable testing strategy. Just as we are developing smarter, we need to test smarter.
We know that we are incapable of writing perfect software that always works and furthermore, that we are incapable of testing perfectly and discovering every bug. Yet, my hope is that adopting a skeptical attitude will promote unity and quality (we all agree that the software contain bugs, let’s work together to find them), discourage egos from becoming too large and enable us to remain open to all possibilities and options.