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
How to prioritise test effort across a system and prepare estimates.
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.
Copies of all overhead slides used are given in the course notebook that each student receives.
Detailed text accompanies the presentation materials to serve as helpful post course reference material.
Certain parts of the course are supported by exercises.