The course teaches the importance of testing and the essential and practical reasons why we test software.
Session 1: Introduction
Importance of Testing
Discusses how much project effort is typically spent
testing and shows that although the purpose of
testing is to assess the quality of the software, there
can only be confidence in this assessment if the
testing itself is of good quality. Describes the uses
of software testing to assess, achieve and preserve
software quality and highlights the importance of
prioritising the tests.
Principles of Testing
Explains that looking for errors is the most effective
approach to testing and that in order to have justified
confidence in the quality of software it is necessary
to try to break it.
Causes of Error
Describes a number of common causes of error and,
although they cannot be eliminated, shows ways in
which their numbers can at least be reduced.
Session 2: Testing in the
Life Cycle
Life cycle model
Explains the Agile, V-Model and Waterfall software
development life cycles to explain the relationship
between testing and development activities and
describes the different types of testing activities, their
purposes and benefits.
Levels of testing
Explains the main levels of testing including
component testing, integration testing, system
testing, system integration testing, acceptance
testing and maintenance testing. Also compares
these with regression testing.
The testing process
Breaks down the testing process into a number
of distinct activities to show what can be done to
improve effectiveness and efficiency. Terms such
as test conditions, test scripts, and test cases are
explained along with the types of documentation that
are appropriate.
Session 3: Test Development,
Techniques & Tools
Principles of Test Development
Explains what testing techniques are within test
development and the different types available. Also
outlines a number of techniques and the differences
between them. Explains the advantages of using
testing techniques.
Black Box, White Box and Coverage concepts
The difference between Black and White Box
testing. What coverage is and how it can be used
to give an objective measure, in some part, of test
‘thoroughness’. Also highlights the dangers of
considering structural coverage alone.
Testing Tools and Automation
Explains the different types of testing tool and where
they can best be used throughout the development
life cycle. Describes some of the issues involved
in automating test execution. Explains why using
capture / replay alone does not result in good
automated tests.
Session 4: Managing Testing
Estimating
How to prioritise test effort across a system and
prepare estimates.
Monitoring progress
Explains a simple technique to help keep testing on
track.
Effectiveness of testing
How to prioritise test effort across a system and A
simple but powerful measure of the ‘goodness’ of the
testing process enabling a prediction of corrective
maintenance.
Course Materials
Presentation materials
Copies of all overhead slides used are given in the
course notebook that each student receives.
Reference notes
Detailed text accompanies the presentation materials
to serve as helpful post course reference material.
Exercises
Certain parts of the course are supported by
exercises.