Lecture 21+22
Lecture 21+22
Topics covered
Development testing
Test-driven development
Release testing
User testing
Program testing
Testing is intended to show that a program does
what it is intended to do and to discover program
defects before it is put into use.
When you test software, you execute a program
using artificial data.
You check the results of the test run for errors or
information about the program’s non-functional
attributes.
Test can reveal the presence of errors NOT their
absence.
Testing is part of a more general verification and
validation process, which also includes validation
techniques.
Program testing goals
To demonstrate to the developer and the customer
that the software meets its requirements.
For custom software, this means that there should be
at least one test for every requirement in the
requirements document.
For generic software products, it means that there
should be tests for all of the system features, that will
be incorporated in the product release.
To discover situations in which the behavior of the
software is incorrect, and undesirable
Defect testing is concerned with rooting out
undesirable system behavior such as.
system crashes, unwanted interactions with other
systems, incorrect computations and data corruption
Validation and defect testing
The first goal leads to validation testing
You expect the system to perform correctly
using a given set of test cases that reflect the
system’s expected use.
The second goal leads to verification
testing
The test cases are designed to expose
defects. The test cases in defect testing can
be deliberately unclear (vague) and need not
reflect how the system is normally used.
Testing process goals
Validation testing
To demonstrate to the developer and the system
customer that the software meets its requirements
A successful test shows that the system operates
as intended.
Defect testing
To discover faults or defects in the software where
its behavior is incorrect
A successful test is a test that makes the system
perform incorrectly and so exposes a defect in the
system.
Verification vs validation
Verification:
"Are we building the product right”.
The software behaviour should be
correct.
Validation:
"Are we building the right product”.
The software should do what the user
really requires.
V & V confidence
Aim of V & V is to establish confidence that the system is ‘fit
for purpose’.
The system must be good enough for its intended use
Depends on system’s purpose, user expectations and
marketing environment
Software purpose
The more critical the software, the more important that it
software.
Marketing environment
Getting a product to market early may be more important