Quality Requirements
Aka Non functional requirements
Quality requirements define how well a system is expected to carry out its functional requirements. Examples of quality requirements include performance, usability, portability and maintainability.
Quality is sometimes defined as compliance with requirements. If the word requirements in this context refers only to functional requirements, then our definition of quality is inadequate. Quality requirements allow us to distinguish levels of acceptable quality.
Quality requirements can add considerably to the complexity and cost of a system. This is one reason why it is worth separating them from functional requirements. Another reason is linked to testing. Testing functional requirements tends to be black and white - a function works or it doesn't. Acceptable values for quality requirements may be defined as a continuum, e.g response time between 3 seconds and 5 seconds; the continuum itself may be subdivided with a percentage value attributed to each subdivision, e.g response time of 3 seconds 70% of the time.
Quality requirements can sometimes be decomposed into sub requirements; these are sometimes referred to as concerns. If a particular quality cannot be directly measured, it is useful to break into component concerns; useability is one example of this type of requirement.
Security is frequently considered as a quality requirement. ISO however define it as a functional requirement. This is how it is also defined in the ISEB Software Testing Foundation course. In other ISEB exams, security is defined as being non functional.
ISO mandate that all quality requirements should be quantified and tested. There are perhaps practical limitations to this policy.
There are many types of quality requirement. For clarity it is useful to specifically define each type. Some examples of types are listed below:
- Performance requirements
- The ilities: reliability, usability, etc
- Security requirements
- Design constraints
- Implementation constraints
- Legal requirements
- Interface requirements
- System requirements
- Process requirements
Business rules are sometimes also classified as a quality requirement. Given they should exist independantly of any system and that there are technologies that allow them to be maintained independently, they are best defined as a separate group.
