This textbook offers undergraduate students an introduction to the main principles and some of the most popular techniques that constitute ‘software quality assurance’. The book seeks to engage students by placing an emphasis on the underlying foundations of modern quality-assurance techniques , using these to highlight why techniques work, as opposed to merely focussing on how they work. In doing so it provides readers with a comprehensive understanding of where software quality fits into the development lifecycle (spoiler: everywhere), and what the key quality assurance activities are.
The book focuses on quality assurance in a way that typical, more generic software engineering reference books do not. It is structured so that it can (and should) be read from cover to cover throughout the course of a typical university module. Specifically, it is
Concise: it is small enough to be readable in its entirety over the course of a typical software engineering module.
Explanatory: topics are discussed not merely in terms of what they are, but also why they are the way they are – what events, technologies, and individuals or organisations helped to shape them into what they are now.
Applied: topics are covered with a view to giving the reader a good idea of how they can be applied in practice, and by pointing, where possible, to evidence of their efficacy.The book starts from some of the most general notions (e.g. quality and development process), and gradually homes-in on the more specific activities, assuming knowledge of the basic notions established in prior chapters. Each chapter concludes with a “Key Points” section, summarising the main issues that have been covered in the chapter. Throughout the book there are exercises that serve to remind readers of relevant parts in the book that have been covered previously, and give them the opportunity to reflect on a particular topic and refer to related references.