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.