CH 8
CH 8
Lecture 1
Development testing
Test-driven development
Release testing
User 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 to some other component and makes
an error in its use of its interface
e.g. parameters in the wrong order.
Interface misunderstanding
A calling component misunderstands the specification of the
interface of the called component and makes assumptions about
the behaviour of the called component which are incorrect.
e.g. Binary Search method may be called with a parameter that is
an unordered array the search will fails.
Timing errors
The called and the calling component operate at different
speeds and out-of-date information is accessed.
Chapter 8 Software testing 34
General guidelines for Interface testing.
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 8 Software testing 44
Regression 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.