Software Testing - discovering and exploring !

What is software testing like? Is it for folks who got rejected in development? Is it for those who are without a job and looking for a toehold? Or is it meant to be a stepping stone to perhaps, "greener" pastures in the world of development? These questions crop up every once in a while when interacting with software testers or potential testers.

The fact of the matter is that there will always be cross-functional movement. For example, there will be a few folks from software testing who will fantasize about software development and make attempts to move at an available opportunity. This isn't necessarily bad and there is no need to berate your selection process much. Of course, if folks are jumping ship in droves, your selection process for testers surely needs a close look. Once new folks come aboard the testing bandwagon, it is a matter of time before they figure out whether they are truly cut out to be testers or would rather "follow the herd" so to speak. I am not trying to indulge in berating development or show testing as a superior alternative to any other function.

Software testing, just like software development is a valuable piece of the whole that enables a great product to be produced. You cannot do without either of the functions. You could use the analogy of your own body to denote their significance. A hand is no more or less important than a leg or the brain more or less than the heart - there may be special situations where one may be used more; however, on the whole the entire body is complete and healthy when all its component parts work together.

Back to our original question - what is software testing like and what kind of folks would find testing interesting? Software testing is about discovery. Testing, more than any other function involved in producing software, is about discovery. Software professionals who love discovering and exploring are likely to feel at home in testing. Testers are constantly trying to discover what they do not know in the system. In the words of Philip Armour, "The challenge in testing systems is that testers are trying to develop a way to find out if they don’t know that they don’t know something. This is equivalent to a group of scientists trying to devise an experiment to reveal something they are not looking for. It is extremely difficult to do." He goes on to state that much of what we call as method or process in testing involves heuristic strategies.

We selectively test complex predicate logic, we create test cases that span the classes of inputs and outputs, we construct combinations of conditions, we press the system to its boundaries both internally and externally, we devise weird combinations of situations that might never occur in the real world, but which we think might expose a so-far unknown limitation in the system. None of these are guaranteed to throw a defect. In fact, nothing in testing is guaranteed, since we don’t really know what we are looking for. We are just looking for something that tells us we don’t know something. Often this is obvious, as when the system crashes; sometimes it is quite subtle.

If all this talk of discovery and exploration sounds too much, you might want to re-consider your choice of testing as a career and probably look at other options where things are clearly stated and probably involve such exciting tasks such as translating defined specs into a computer language following pre-defined coding standards and guidelines or regularly fixing issues in the code you or someone else wrote. Discovering is definitely not for everyone.
Join my community of professional testers to receive free updates by email. Use this link to add your email address to the community. Rest assured, I will neither spam nor share your email address with anyone else. Email subscriptions are managed by Google's FeedBurner service.

Share & Bookmark this blog entry

Image: Salvatore Vuono /