Software Quality Assurance and Testing
Software Quality Assurance and Testing
Software Quality Assurance and Testing
Testing
Testing Objectives
Testing should systematically uncover different classes of
errors in a minimum amount of time and with a minimum
amount of effort.
A secondary benefit of testing is that it demonstrates that
the software appears to be working as stated in the
Software Requirement Specifications(SRS).
The data collected through testing can also provide an
indication of the software's reliability and quality. But,
testing cannot show the absence of defect -- it can only
show that software defects are present.
Testing Objectives are:
1. Testing is a process of executing a program with the intent
of finding an error.
2. A good test case is one that has a high probability of
finding an as-yet-undiscovered error.
3. A successful test is one that uncovers an as-yet
-undiscovered error.
Testing Principles
1. All tests should be traceable to customer
requirements
As we have seen, the objective of software testing is to
uncover errors. It follows that the most severe defects
(from the customer’s point of view) are those that cause
the program to fail to meet its requirements.
2. Tests should be planned long before
testing begins.
Test planning can begin as soon as the requirements model
is complete. Detailed definition of test cases can begin as
soon as the design model has been solidified. Therefore, all
tests can be planned and designed before any code has been
generated.
3. The Pareto principle applies to software testing.
Stated simply, the Pareto principle implies that 80 percent of
all errors uncovered during testing will likely be traceable
to 20 percent of all program components. The problem, of
course, is to isolate these suspect components and to
thoroughly test them.
4. Testing should begin “in the small” and
progress toward testing “in the large”.
The first tests planned and executed generally focus on
individual components. As testing progresses, focus shifts in
an attempt to find errors in integrated clusters of
components and ultimately in the entire system
5. Exhaustive testing is not possible.