Quality can’t be “tested in” at the end — it must be designed in from the start. Quality attributes (also called non-functional requirements or “ilities”) describe how the system behaves, not what it does.
McCall’s Quality Model (1977)
Organizes 11 factors into three perspectives:
Product Operation (Does it run?)
| Factor | Meaning | Interview question |
|---|---|---|
| Correctness | Does it do what the spec says? | ”How do you know your code is correct?” |
| Reliability | Does it keep working? | ”How do you handle failures?” |
| Efficiency | Does it use resources well? | ”How would you optimize this query?” |
| Integrity | Is it secure? | ”How do you prevent unauthorized access?” |
| Usability | Can people use it? | ”How do you design user-friendly interfaces?” |
Product Revision (Can we change it?)
| Factor | Meaning |
|---|---|
| Maintainability | How easy is it to fix bugs? |
| Flexibility | How easy is it to add features? |
| Testability | How easy is it to verify correctness? |
Product Transition (Can we move it?)
| Factor | Meaning |
|---|---|
| Portability | Can it run on different platforms? |
| Reusability | Can parts be used in other projects? |
| Interoperability | Can it work with other systems? |
ISO/IEC 25010 (Modern Standard)
The current standard replaces McCall with eight characteristics: Functional Suitability, Reliability, Performance Efficiency, Usability, Security, Compatibility, Maintainability, Portability.
Functional vs Non-Functional — The Classic Interview Question
| Functional | Non-functional | |
|---|---|---|
| Answers | ”What does it do?" | "How well does it do it?” |
| Example | ”User can log in with email/password" | "Login completes in under 2 seconds” |
| Measurable? | Yes (pass/fail) | Yes (quantitative thresholds) |
| Test | Unit test | Performance test |
Q: Which quality attribute matters most?
A: It depends on the domain. For a medical device, reliability and correctness are critical. For a consumer app, usability and performance efficiency decide whether users stay. For an internal API, maintainability and interoperability matter most.
Q: How do you measure maintainability?
A: Proxies: cyclomatic complexity, code churn, test coverage, time to implement a new feature, number of files changed per bug fix. There’s no single metric — you look for trends.
Q: What’s the trade-off between usability and security?
A: More security usually means less usability (e.g., 2FA adds friction). Good design minimizes the friction while maintaining security. The trade-off is explicit: decide based on the threat model and user profile.
Premium Content
Unlock Software Quality Attributes and all premium lessons with a subscription.
From ₹199.99/year — See plans