"Modern society is heavily reliant on software, and the correct operation of this software is a critical concern. The purpose of this book is to introduce the reader to the essential principles of software testing, enabling them to produce high-quality software. Software testing can be regarded as an art, a craft, and a science - the approach we present provides a bridge between these different viewpoints. This book is based on many years of lecturing in software engineering and software testing at undergraduate and postgraduate level, as well as industrial experience. Software testing techniques are introduced through worked examples, leading to automated tests. Each technique is then explained in more detail, and then its limitations are demonstrated by inserting faults. The process of applying the techniques is also emphasized, covering the steps of analysis, test design, test implementation, and interpretation of test results. The worked examples offer the beginner a practical, step-by-step introduction to each technique.
The additional details complement these, providing a deeper understanding of the underlying principles. We hope that you will enjoy reading the book as much as we enjoyed writing it"--.