Chapter-3 Software Testing - Module 2-1
Chapter-3 Software Testing - Module 2-1
Development testing
Test-driven development
Release testing
User testing
You check the results of the test run for errors, anomalies or
information about the program’s non-functional attributes.
Can reveal the presence of errors NOT their absence.
Testing is part of a more general verification and validation
process, which also includes static validation techniques.
Program testing goals
To demonstrate to the developer and the customer that the
software meets its requirements. .
To discover situations in which the behavior of the software is
incorrect, undesirable or does not conform to its specification.
Verification:
"Are we building the product right”.
The software should conform to its specification.
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’.
Depends on system’s purpose, user expectations and marketing
environment
14
Weather station testing
A setup part, where you initialize the system with the test
case, namely the inputs and expected outputs.
A call part, where you call the object or method to be
tested.
An assertion part where you compare the result of the
call with the expected result. If the assertion evaluates to
true, the test has been successful if false, then it has
failed.
Interface misuse
A calling component calls another component and makes an
error in its use of its interface e.g. parameters in the wrong order.
Interface misunderstanding
A calling component embeds assumptions about the behaviour
of the called component which are incorrect.
Timing errors
The called and the calling component operate at different speeds
and out-of-date information is accessed.
Code coverage
Every code segment that you write has at least one associated
test so all code written has at least one test.
Regression testing
A regression test suite is developed incrementally as a program
is developed.
Simplified debugging
When a test fails, it should be obvious where the problem lies.
The newly written code needs to be checked and modified.
System documentation
The tests themselves are a form of documentation that describe
what the code should be doing.
Chapter 3 Software testing 34
Release testing
Alpha testing
Users of the software work with the development team to test the
software at the developer’s site.
Beta testing
A release of the software is made available to users to allow
them to experiment and to raise problems that they discover with
the system developers.
Acceptance testing
Customers test a system to decide whether or not it is ready to
be accepted from the system developers and deployed in the
customer environment.