Ch8 Testing
Ch8 Testing
✧ Development testing
✧ Test-driven development
✧ Release testing
✧ User testing
✧ 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.
✧ 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
✧ Regression testing
▪ A regression test suite is developed incrementally as a program
is developed.
▪ Regression testing is testing the system to check that changes
have not ‘broken’ previously working code.
✧ Simplified debugging
✧ System documentation
Performance testing
✧ Part of release testing may involve testing the emergent
properties of a system, such as performance and
reliability.
✧ Tests should reflect the profile of use of the system.
✧ Stress testing is a form of performance testing where the
system is deliberately overloaded to test its failure
behaviour.
30/10/2014 Chapter 8 Software Testing 41
User 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. Primarily for custom systems.