Quality Attributes
1. Definition
Quality Attributes are the measurable characteristics of a software product that define how well the system performs its functions, rather than what it does.
- Functional requirements define what the system should do.
- Quality attributes define how well it should do it.
2. Why Quality Attributes Matter
- They determine user satisfaction
- They influence system reliability and acceptance
- They help define non-functional expectations
- They guide testing focus and risk areas
3. Core Quality Attributes (Manual Testing Focus)
3.1 Functionality
- Correct implementation of business rules
- Accurate calculations and workflows
- Complete feature coverage
Tester focus: Validate requirements and edge cases
3.2 Reliability
- Consistent behavior over time
- Proper error handling
- Graceful recovery from failures
Tester focus: Repeat scenarios and long usage sessions
3.3 Usability
- Ease of use
- Intuitive navigation
- Clear error messages
Tester focus: End-user perspective and accessibility
3.4 Performance
- Response time
- System behavior under load (conceptual)
Tester focus: Observe delays, slowness, and timeouts
3.5 Security
- Data protection
- Access control
- Authentication and authorization
Tester focus: Role-based access and negative scenarios
3.6 Compatibility
- Browser compatibility
- Device compatibility
- OS compatibility
Tester focus: Cross-platform behavior
3.7 Maintainability
- Ease of fixing defects
- Ease of enhancements
Tester focus: Clear defect reporting and reproducibility
3.8 Scalability
- Ability to handle growth
Tester focus: Conceptual validation and risk identification
3.9 Portability
- Ability to run in different environments
Tester focus: Environment-related issues
4. Quality Attributes vs Functional Requirements
| Aspect | Functional | Quality Attributes |
|---|---|---|
| Definition | What system does | How well it does |
| Example | Login feature | Login response time |
| Testing | Functional testing | Non-functional focus |
5. Real-Time Example
Login feature quality attributes:
- Functionality → Login works correctly
- Usability → Login is easy to use
- Performance → Login is fast
- Security → Password is protected
6. Common Mistakes
- Ignoring non-functional aspects
- Testing only happy paths
- Treating quality attributes as optional
- Not documenting quality risks
7. Interview-Ready Answers
Short answer:
Quality attributes are characteristics that define how well a software system performs its functions, such as reliability, usability, performance, and security.
Detailed answer:
Quality attributes describe the non-functional characteristics of software that impact user experience and system behavior, and they guide testers in evaluating overall software quality.
8. Key Takeaway
Quality attributes ensure software is usable, reliable, secure, and acceptable, not just functional.