Quality is several distinct dimensions rather than one, each needing its own verification. A program can be correct but slow, fast but insecure, secure but impossible to change six months on. The five dimensions developed here are five of ISO/IEC 25010's eight product-quality characteristics (ISO/IEC 2011)1, the ones that carry a distinct verification method — close to the source-measurable set of CISQ (Consortium for Information and Software Quality (CISQ) 2021)2, plus Functionality. (The full mapping against Garvin, McCall, Boehm, FURPS, ISO, and CISQ is on the framework comparison.)
Choosing methods for a system¶
Picking and ordering the methods for a given part is its own procedure, set out under Choosing methods: rank the part's dimensions, match a method to each failure mode through the axes, then sequence them by contextual cost. The method lists here are that procedure run once, for a typical part that already has continuous integration and a test suite; they illustrate the procedure rather than replace it.
The tools live on the method pages. A dimension's own page carries its failure modes and what success on it looks like.
Functionality¶
- What. Does the software do what it claims?
- Methods. Example tests, property-based testing, differential and metamorphic testing, fuzzing; types; contracts; static analysis; code review; formal methods; statistical and sampling testing.
Security¶
- What. Does it hold up against someone trying to break it?
- Methods. Supply-chain hygiene, static analysis / SAST, threat modeling, fuzzing, penetration testing.
Reliability¶
- What. Does it keep working when parts of it fail?
- Methods. Contracts and runtime invariants, monitoring and observability, chaos engineering, deterministic simulation testing, formal methods, statistical model checking.
Performance¶
- What. Is it fast enough, and does it stay fast under load?
- Methods. Monitoring and observability, microbenchmarking, load and stress testing, profiling.
Maintainability¶
- What. Can the next team change it safely?
- Methods. Types, static analysis, code review, git-history hotspots, mutation testing, change-point detection, ADRs, refactoring practice.
Usability¶
Mentioned, not developed. Ease of use for the intended user. A separate field with its own literature and tooling verifies it — WCAG audits, axe-core, user-research platforms, A/B experimentation (Statsig, GrowthBook).
Aesthetics¶
Mentioned, not developed. Fit, finish, perceived quality, trustworthiness signals. No method in this catalog verifies it: the oracle is a human judgment about the product's finish, not a check on its behavior.
Data quality¶
A parallel vocabulary, not a sixth dimension. When the subject under test is the data itself — data pipelines, analytics, ML feature stores — rather than the program, the governing model is ISO/IEC 25012 (ISO/IEC 2008)3, the data-quality sibling of the ISO/IEC 25010 software model these dimensions rest on. Its concerns include accuracy, completeness, consistency, credibility, and currentness.
Those concerns land inside Functionality, Reliability and Performance rather than beside them: a field carrying a wrong value is a functionality failure, a feed that silently stops is a reliability one, and data arriving too late to act on is a performance one.
Referenced by¶
- Maintainability · Quality dimensions
- Methods · Methods
- Recipes · Recipes
- Conventional · Conventional
- Choosing methods · Overview
- Software Quality · Overview
References¶
-
ISO/IEC. 2011. ISO/IEC 25010:2011: Systems and software engineering — SQuaRE — System and software quality models. International Organization for Standardization. https://www.iso.org/standard/35733.html. ↩
-
Consortium for Information and Software Quality (CISQ). 2021. Automated Source Code Quality Measures: Reliability, Security, Performance Efficiency, Maintainability (ISO/IEC 5055:2021). https://www.it-cisq.org/standards/code-quality-standards/. ↩
-
ISO/IEC. 2008. ISO/IEC 25012:2008: Software engineering — SQuaRE — Data quality model. International Organization for Standardization. https://www.iso.org/standard/35736.html. ↩