Hello Debasis, I am a regular viewer of your blog. In (and through) your blog I have got (and still gaining) immense knowledge about the field Software Testing. Your work is highly appreciable. Coming to the point I want to ask you something. Do you think a Tester needs to have a critical approach to the work he/she does? i.e. critically judging the task/build at hand. By nature I am a self-proclaimed critic (few others agree). And my job as a tester is only making it more evident. Need your valuable inputs.
Being critical while testing. Is it an absolute necessity?
Among others, verification and validation are often considered as some of the responsibilities of a tester. While validating a functionality/feature/program, a tester is left with at least a couple of approaches to start with.
1. To validate whether the program functions as intended.
2. To validate whether the program does not function as intended.
Going by the first approach is important to see if the application performs as it was designed to. But testing whether the application fails to function as per the intended design is equally important too. And usually it is the second approach that digs out more unexpected bugs out of an application. Often people in testing refer the first approach as “positive testing” and the second as “negative testing”. [However, the notion of positive and negative testing is debatable. And I would like to leave that topic for another blog post]
Experts in testing say that our craft is similar to that of a criminal detective. We as testers, do technical investigations to reveal important project related information and deliver the same to the stakeholders of the project in order to help them take any critical decision about the project. A good criminal investigator believes in the saying: "The suspect is guilty until proven innocent". And I believe a good tester also should believe the same. Unless and until we test and verify that a particular application works as it is supposed to be working, we must not believe it’s innocence (that it should be working without any ambiguity). Being skeptical can help us in nailing down bugs that could not have been caught if we had started with an over-optimistic mindset! Once we start with a mindset that the AUT (Application Under Test) works as intended, we risk falling into a trap that can create illusion (inattentional blindness) in our mind. Such illusions may distract us when we come across real bugs in the software while testing. Our earlier assumption (that it must be working fine) may restrict us from identifying the bugs while they happen in front of our eyes. So YES, I do feel that we must be critical in our approach to testing unless of course the context demands us to act otherwise. A tester should be critical while testing the software (or anything else). Being critical helps us with a greater sense of cautiousness and attention. And as we all know, an attentive mind is more capable of identifying a defect than a mind that has already presumed that there are no possible defects here! How many times have you heard an alarm going off in your brain (sounding "he must be kidding!"), every time a programmer had told you that "I have confidence in my code that it wouldn't break!"? The more skeptical you are while testing, the more you must have heard such alarm!
Can there be contexts where a tester must leave aside his skepticism while testing?
Few points to remember while dealing with the critic inside us:
Coming back to the need of being critical while evaluating the software that we test, what do you think about it? Do you think that a tester must remain critical while testing? Or do you feel it is absolutely unnecessary and an extra burden on the shoulders of the tester? Share your views.