In my former life as a software developer, leaders and colleagues would ask if I had tested my code. My reply would be, “Test is a four-letter word.”
Clearly, my perspective of testing was based on the hassle and time required to test software well. I completely missed the value that testing provides.
The Value of Test
Ask yourself these questions: Would I fly in an untested airplane? Would I take a medicine which did not pass clinical trials? Would I play an NFL running back in my fantasy team who failed the concussion protocol last week? Of course not!
Testing is valuable because it provides crucial knowledge and information. We need good, accurate information to make good decisions.
When it comes to software, or anything else for that matter, it is true that you can’t “test quality in”. However, if you don’t properly test, you don’t really know what you have. You might have a quality system, or you might have one that will buckle under the weight of reality. Are you willing to roll those dice?
What in the world is a test, anyway?
This is the question I asked myself, and others, for almost a decade after I became a full-time software test professional. (Even my wife had to put up with this struggle.) You might say, “this guy is pretty slow on getting with the program”, or more hopefully, you might be intrigued.
My problem was that there are varying, sometimes conflicting views on the purpose of testing. For example:
- Only tests that reveal problems or opportunities have value - Sounds limiting. What about tests that prove the problem has been resolved?
- Testing is any activity aimed at evaluating an attribute of a process or a system - A bit too abstract
Thinking about testing would even plague me during my downtime when watching English Premiere League Football matches. The commentator would say, “that shot really tested the keeper”. What!? What in the world does that mean? Eventually, after seeking many ways to express it, I settled on this definition:
A test seeks to disclose the actual condition of an item.
That's it! We care about the actual condition of something – the condition of the airplane, the car for sale, the athlete before the game, and on and on and on.
Maybe we should make a bumper sticker:
No Testing. No peace.
Know testing. Know peace.
Build your software systems while investing in testing wisely as you go, release into production, experience fewer problems, and there will be far less need to use the other kind of four-letter words. Test apparently is not that kind of “four-letter” word.
Sr. Technical Engineer