Designing Test Cases
Technical test of the software components and
Requirements based tests – Functional tests, see if it
System tests – Non-functional tests, whether it does
things well enough. (E.g. Security Level)
Testing is an activity aimed at proving that the software
system does NOT do what it is supposed to do.
There are usually always bugs.
Some testing is manual (i.e. humans do exploratory
testing) others are automatic (i.e. done with software).
Quality Assurance – all different types of testing,
testing is not just about the software.
A bug is any variance between wheat the system is
supposed to do and what is actually does.
- Derive test cases from system use cases
- Test basic flow scenarios
- Test alternative and exception flow scenarios
- Test of line-item requirements
- Test features in user documentation
- Cover valid and invalid data ranges
- Relative frequency of use cases, things used more
- Input/output relationships
Process of using standardized techniques to locate
Activities and Phases:
- Structured walkthroughs – Throughout the project
- Test cases – discovery phase
- Unit tests – construction phase (only tests a single
- Black Box testing – construction phase - System tests – before acceptance (how the parts fit
- User acceptance tests – before closeout (done by the
Purpose – to locate bugs
Goal – locate the maximum number of errors in the time
Test practices – save tests for reuse in regression
– prioritise areas that have proved
problematic in the past.
Non-computer based tests
Done manually with a group (peer review)
Can be performed before the software is written
E.g. Find flaws in a decision table.
Black Box Testing
No need to know anything about the internals of the
Can only see the output from the software not the code.
Limitations as we can only determine the effect of a
particular set of inputs by the response and output they
Decision Tables – testing combinations of input
Use Case Scenario Testing – tests the various scenarios
of each use case using the use case documentation.
Including basic, alternate and exception flows.
White Box Testing
Based on the knowledge of the internal workings of the
Opposite to black box testing.
Done by developers.
Can look at the code of the system but cannot get total
coverage as there are too many combinations of data.
Coverage Quality levels: