Manual Testing
Fundamentals of testing
Testing Throughout the Software Lifecycle
Static Techniques
Test Design Techniques
Test Management
Tool Support for Testing
Index of key terms
Fundamentals of Testing
A Defect may result in a Failure
A Failure is a Deviation of the component or system from its expected
delivery, service or result
2. Exhaustive Testing is Impossible!
We have learned that we cannot test everything (i.e. all combinations
of inputs and pre-conditions).
That is we must Prioritise our testing effort using a Risk Based
Approach.
3. Early testing
Testing activities should start as early as possible in the development
life cycle
These activities should be focused on defined objectives outlined in
the Test Strategy
Remember from our Definition of Testing, that Testing doesnt start
once the code has been written!
4. Defect Clustering
Defects are not evenly spread in a system
They are clustered
In other words, most defects found during testing are usually confined
to a small number of modules
Similarly, most operational failures of a system are usually confined to
a small number of modules
An important consideration in test prioritisation!
5. The Pesticide Paradox
Testing identifies bugs, and programmers respond to fix them
As bugs are eliminated by the programmers, the software improves
As software improves the effectiveness of previous tests erodes
Therefore we must learn, create and use new tests based on new
techniques to catch new bugs
N.B It's called the "pesticide paradox" after the agricultural
phenomenon, where bugs such as the boll weevil build up tolerance to
pesticides, leaving you with the choice of ever-more powerful
pesticides followed by ever-more powerful bugs or an altogether
different approach. Beizer 1995
6. Testing is Context Dependent
Testing is done differently in different contexts
For example, safety-critical software is tested differently from an e-
commerce site
Whilst, Testing can be 50% of development costs, in NASA's Apollo
program it was 80% testing
3 to 10 failures per thousand lines of code (KLOC) typical for
commercial software
1 to 3 failures per KLOC typical for industrial software
0.01 failures per KLOC for NASA Shuttle code!
Also different industries impose different testing standards
7. Absence of Errors Fallacy
If we build a system and, in doing so, find and fix defects ....
It doesnt make it a good system
Even after defects have been resolved it may still be unusable and/or
does not fulfil the users needs and expectations
The five stages of fundamental test process are as follows:
1) Test planning and Control
2) Test Analysis and Design
3) Test Implementation and Execution
4) Evaluating Exit Criteria and Reporting
5) Test Closure Activities
Fundamental Test Process:
1) The Process always starts with planning and ends with test closure
activities
2) Each phase has to execute a number of times in order to complete the
fully exit or completion criteria
3) Although Logically sequential, this process may overlap or takes place
concurrently
Test Planning and Control :
Test Planning
Specifies how the test strategy and project Test Plan
A document describing the scope, approach, resources and schedule of
intended test activities
apply to the software under test
Test Planning and Control