Page 27 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 27
Software Testing and Quality Assurance
Requirements can keep changing during the course of time. Hence there are more chances for some of
the following realities to occur.
(a) The specification might not correspond to the customer’s needs perfectly.
(b) Many a time, the time available for testing would not be comprehensive to cover all aspects
of testing.
(c) Tradeoffs and concessions are inevitable.
Realities of Software Testing
A detailed specification which can perfectly meet the needs of a customer is not given and there is
insufficient time to test the software in its entirety. However, if one aims to become a good software
tester, he or she needs to:
(a) Identify the ideal process involved.
(b) Identify the bugs and problems and realize how they affect the project.
Let us now familiarize with a few axioms that are facts in the life of a software tester.
Axiom 1
It is impossible to test a program completely.
A tester may not be completely sure about the number of test cases needed to exhaustively test an
application, for example
Testing an MS Word document with all possible test cases covering all functions
would be a difficult task to complete.
The only way to absolutely ensure that the software works perfectly is to test it with all possible inputs
and observe and monitor its outputs. At times, questions do arise about the number of possible inputs
being very large, the number of possible outputs being very large, the number of paths through the
software being very large or the software specification itself being open to interpretation.
Axiom 2
Software testing is a risk-based exercise.
When one does not test the software with all the possible inputs, they may end up taking a fair amount
of risk, wherein there are possibilities of skipping some of the inputs which work correctly. At this
stage, one faces the risk of skipping inputs which can cause a failure and may lead to financial loss or
loss of security or even loss of life. This brings a tremendous amount of pressure on a software tester.
Software testing is considered to be a risk-based regime of practice, where one can find that:
(a) Testing too much can result in high developmental costs.
(b) Testing too little can result in the failure of the developed software, which can incur heavy
cost to an organization.
(c) The general cost involved in testing the number of missed bugs, over testing and under
testing are more.
Axiom 3
Testing cannot show the absence of bugs.
It is not an easy task to fully ascertain that the software is totally bug free. During the course of testing,
we cannot completely eliminate the bugs, unless the software is dismantled to the foundation stage.
Software testing is a process which can reveal the existence of a bug, but cannot reveal that there are no
bugs in the software. Although, tests are performed to report and fix the bugs, it is not possible to
guarantee bug free software.
20 LOVELY PROFESSIONAL UNIVERSITY