Software testing has never had the grand appeal that adorns some areas of computer science. No-one could ever accuse it of being a `fashionable'||''' area of study and yet it is essential. The goal, when developing testing methods, is to be able to take any program and produce the smallest amount of test data that will give you the greatest amount of information about that program. The aim of this book is to pull together the majority of work that has been carried out in the area of software testing. It has been written with a number of people in mind: the practitioner who wants to apply state of the art techniques to the production of software, the researcher in software engineering who wants a detailed overview of the subject, and the advanced undergraduate who is studying the subject.
Aiming to present the collected work of software testing in an accessible and practical fashion, this book focuses on testing techniques and methods, describing the problems of testing throughout the life-cycle and outlining possible solutions and approaches to testing. It goes on to give an account of existing techniques and tools, a case study of applied techniques, and self-test tutorial exercises. Software testing has never had the grand appeal, which adorns some areas of computer science. No-one could ever accuse it of being a fashionable area of study and yet it is essential. The goal, when developing testing methods, is to be able to take any program and produce the smallest amount of test data that will give you the greatest amount of information about that program. This book brings together the majority of work carried out in the area of software testing. This book is suitable for the practioner who wants to apply state of the art techniques to the production of software, the researcher in software engineering who wants an overview of the subject and the advanced undergraduate studying the subject.
The work provides a thorough background to the need, theory and context of testing; highlights practical applications to the different stages of the software development lifecycle;alphabetically lists the software tools available and gives a brief appraisal of their applications.