Introduction to Testing

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.

Course Booking