The Smart Tester
Software
components have defects, no matter how well our defect prevention activities
are implemented. Developers cannot prevent/eliminate all defects during
development. Therefore, software must be tested before it is delivered to
users. It is the responsibility of the testers to design tests that (i) reveal
defects, and (ii) can be used to evaluate software performance, usability, and
reliability. To achieve these goals, testers must select a finite number of
test cases, often from a very large execution domain. Unfortunately, testing is
usually performed under budget and time constraints. Testers often are subject
to enormous pressures from management and marketing because testing is not well
planned, and expectations are unrealistic. The smart tester must plan for
testing, select the test cases, and monitor the process to insure that the
resources and time allocated for the job are utilized effectively. These are
formidable tasks, and to carry them out effectively testers need proper
education and training and the ability to enlist management support.
Novice
testers, taking their responsibilities seriously, might try to test a module or
component using all possible inputs and exercise all possible software
structures. Using this approach, they reason, will enable them to detect all
defects. However an informed and educated tester knows that is not a realistic
or economically feasible goal. Another approach might be for the tester to
select test inputs at random, hoping that these tests will reveal critical
defects. Some testing experts believe that randomly generated test inputs have
a poor performance record .
The
author believes that goal of the smart tester is to understand the
functionality, input/output domain, and the environment of use for the code
being tested. For certain types of testing, the tester must also understand in
detail how the code is constructed. Finally, a smart tester needs to use knowledge
of the types of defects that are commonly injected during development or
maintenance of this type of software. Using this information, the smart tester
must then intelligently select a subset of test inputs as well as combinations
of test inputs that she believes have the greatest possibility of revealing
defects within the conditions and constraints placed on the testing process.
This takes time and effort, and the tester must chose carefully to maximize use
of resources [1,3,5]. This chapter, as well as the next, describes strategies
and practical methods to help you design test cases so that you can become a
smart tester.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.