The other day I found myself in front of a bunch of fresh from the oven college grads looking up to me for some words of wisdom on Software Testing. I have been taking this class , once a year, to young recruits for some years and I am always in a fix on what to teach. I have my own share of tricks in my bag which I use for these classes but I did something new for the current batch.
It all started with a simple question i.e. What is Software Testing and I got a number of good responses but that led to a thought on what would be a first step to engage with software testing and the answer was very obvious, comprehension. Comprehension of the problem, of the object in scrutiny, of the principle which requires validation, of the hypothesis which would undergo various tests and rounds of rigorous observations before its blessed as a theory and so on. Its comprehension, comprehension and more comprehension.
The goal of Software Testing is to be able to certify a software after identifying and resolving all the defects which you encounter during your engagement with the software as a tester. That engagements would be an enriching one only if you know the subject. Its like knowing the intricacies of a specific musical instrument to play it well rather than just knowing how to play a particular kind of instrument. If you would have noticed that for all rock shows, concerts a lot of time goes in tuning the equipments. Even the masters need to tune the instrument before they begin their performance so as a tester , while its utmost important to know about testing methodologies, practices, tools etc, its far more important to know the software in question.
As we all know that software testing can be best summed up as a process of
– Verification And
– Validation
While one can do verification with the aid of a well written test-case document without really knowing too much about the software, one can NOT validate it. And unlike some of the matured industries like Auto or Manufacturing, Software is still in it nascent phase. A lot of testing as of now relies on ‘Validation’, more so when you are testing a new software product.
Having understood the importance of comprehension, let me take a couple of more minutes to explain ‘comprehension’. Lets fall back on a standard definition
As per dictionary.com
1. Comprehension is the capacity of the mind to perceive and understand; power to grasp ideas; ability to know.
2. The act or fact of grasping the meaning, nature, or importance of; understanding and The knowledge that is acquired in this way..
3. Capacity to include.
4. Logic The sum of meanings and corresponding implications inherent in a term.
Now the important thing here is the ‘Process’. Its not a one-time thing, rather its the process and as you delve into the process, you are very well doing the testing.
So when you get next assignment on doing a software test, chuck the defect finding and logging regime and spend some time comprehending the software. It would be worth it.