
Software Quality and Reliability
Course handbook for two complementary programs:
- SQR — Software Quality & Reliability (Bachelor)
- QAM — Quality Assurance & Management (Master, extends SQR with advanced topics)
These notes cover the full arc from quality theory and measurement through verification techniques and non-functional attributes, grounded in industry practice and current research. The goal is to equip students with the concepts and tools to build quality into a software project from the start — not to inspect it in at the end.
The content reflects current industry practice: continuous integration, automated quality gates, site reliability engineering, and modern code review workflows sit alongside classical foundations. Material is regularly revised to incorporate findings from recent empirical software engineering research.
Overview
Course topic map covers the full scope of both courses across four areas: defining quality, organizing quality assurance, verification methods, and quality attributes. Topics marked in yellow are planned for future editions.

Quality assurance in the development lifecycle maps course topics onto a modern CI-based development process. The diagram shows where each technique fits: static analysis and unit tests run automatically on every commit; code reviews and integration tests gate the build pipeline; and non-functional attributes — maintainability, reliability, performance, security, usability — are evaluated before release. Students are expected to apply these practices within a CI workflow, treating quality gates as first-class engineering artifacts rather than end-of-cycle activities.

Areas Covered
1. Defining Quality
Quality views, quality models, and the metrics that make quality measurable and comparable across projects and teams.
2. Organizing Quality
Cost of quality, project-level quality planning, process improvement, and the standards and industry practices that operationalise these — CMMI, ISO 9000, TMMi, DevOps, SRE, PSP/TSP.
3. Verification and Validation
The full range of V&V methods and when to apply each:
- Black-box testing: domain and boundary analysis, equivalence partitioning, decision tables, classification trees, combinatorial, random and property-based, exploratory testing, operational profiles
- White-box testing: statement, branch, MC/DC, and data-flow coverage; mutation testing
- Inspection: code reviews, Fagan inspection, reading techniques
- Static analysis: model checking, symbolic execution, dataflow analysis, tooling
4. Quality Attributes
Maintainability, reliability, performance and queuing theory, security, and usability — each treated as an engineering property with models, metrics, and design implications.
5. Selected Materials
Curated textbooks and key research papers, one annotation per entry explaining the core contribution and why it earns a place in the list.
Acknowledgements
The material and structure of these courses are inspired by the lectures of Prof. Claire Le Goues (Carnegie Mellon University) and Prof. Eduardo Miranda (Carnegie Mellon University). Their work laid the conceptual foundations on which these notes are built.