Who should test? and what? – An Overview
Who should do the testing?
Software testing is not the job of one person. It is teamwork. The size of the team depends upon the
complexity and size of the software being tested. The software developer should have minimum or no
role in the testing process as everyone knows that for a person who has developed the software, it is
very difficult to pin point errors in his own creations.
Seven soft skills crucial for a good tester are – that He or She must:
1) Be Cautious
2) Be Curious
3) Have Patience
4) Have Perseverance
5) Be Analytical
6) Be Critical but with an attitude of not jumping to conclusions.
7) Be Good Communicator
Thus “More the soft skills a tester has, better tester He or She is”
Above all, a Most Successful Tester is the one:
1) Who is completely passionate.
2) Who is always eager to learn more & more.
3) Who never gives up.
Various personnel and their roles during development & testing are:
1 Customer Provides funding, provides
requirements, approves changes
and some of the test results.
2 Project manager Plans and manages the project.
3 Software developers Designs the codes and builds the
4 Testing coordinators Creates test plans and test
specifications based on the
requirements and functional and
5 Testing persons Executes the tests and
documents the results.
Role based demarcation exclusive to the field of Testing:
1) Junior Software Testers: Are the ones having good theoretical knowledge of testing & would have
participated in good number of seminars on testing or would have passed some courses in testing.
Such individuals are not expected to have experience on testing; however little experience can be
2) Software Testers: Are the ones having good ability to understand testing packs, do testing, and
doing documentation / defect logging. Such individuals usually do repetitive work & are invariably
involved in front-end testing. Usually at least 6 months of testing experience is preferred for this role.
3) Senior Software Testers: Are the ones having responsibility of doing all tasks usually performed
by a Tester. In addition to this they are involved in back-end testing. The senior testers also do
updating of test cases. Usually 1 to 2 years of experience of testing is preferred for this role.
4) Testing Analysts: Are the ones having expertise in extracting requirements out of documentation
& doing thorough verification with business & ascertaining the correctness of all the information. The
testing analysts also do writing of test cases, executing the tests & reporting the findings thereafter.
Usually 2 to 3 years of experience of testing along with at least 1-year experience of analysis is
preferred for this role.
5) Testing Managers: Are the ones having experience of doing all the tasks described above. Apart
from this they possess the ability of managing the entire testing process, personnel as well as the
testing environment. Usually 3 to 4 years of experience of testing along with at least 1-year of
managerial experience & sound expertise of Project Management is ideal for this role.
6) Testing Consultants: Are the senior people having experience of doing all the tasks described
above. Consultants are usually good communicators having proven ability of man management, with
the help of which they are able to effectively handle the client & the senior executives of the
organization. This includes doing systematic analysis of the current testing process of the client &
ability to guide the client with their expert comments & recommendations to improve. Consultants
have great expertise of manual testing in addition to sound knowledge of specialized fields like
Automation, Usability & Security etc.
Generally persons with 5 years or more of Testing & Project Management experience in some senior
capacity are appointed as testing consultants.
7) Test Automators: Are the ones having good skills of development plus sound experience of
manual testing & have acquired specialization of Automated Testing; but as of date they would not
prefer to get involved in manual testing. Automators have thorough knowledge & experience of using
different Automation Tools. Usually 1 to 2 years of experience of test automation is preferred for this
Next question comes as to what should be tested?
According to Myer - for most of the programs, it is impractical to attempt to test the program with all
possible inputs, due to a combinatorial explosion. For those inputs selected, a testing oracle is
needed to determine the correctness of the output for particular test input.
Mayer also says that, for most programs, it is impractical to attempt to test all execution paths through
the product, due to combinatorial explosion. It is also not possible to develop an algorithm for
generating test data for paths in an arbitrary product, due to the inability to determine path feasibility.
The point, which is being emphasized here, is that complete or exhaustive testing is just not possible.
This is because exhaustive testing requires every statement in the program and every possible path
combination to be executed at once.
Let us logically try to see as to why it is being said that complete testing is not possible:
For example, Myer considered a while loop and few IF statements structure which has say (10)14 or
100 trillions paths as per above figure. It is because there are 5 paths through the loop body which are
executed 20 times. Hence we get
(5)20 + (5)19 + (5)18 + ... + (5)1 = (10)14 or 100 trillions
If 1 path takes 5 minutes to test then
(10)14 paths will take = 5 x (10)14 minutes
= 1 billion years
This means we shall not be able to achieve our ideal objective of complete testing. Hence we
need to try to find out the critical areas where probability of finding a fault is maximum. However this
too is not an easy task for an organization.
Since we need to test for every possible combination of valid and invalid inputs, the total number of
combinations are 28 x 28 if a program requires two 8 bit integers as input. What if inputs are more
than two and size is also more than 8 bits. Hence, complete testing is just not possible.
To overcome such difficulties, the organizations must try to develop strategies and policies for
choosing effective testing techniques rather than leaving this as arbitrary judgements by the
Read many more exciting articles at:
A Storehouse of Complete Knowledge on Software Testing & QA under one Roof