These are the top level of categories for assessing software quality as defined in the ISO/IEC 9126 standard;
functionality , reliability, usability, efficiency, maintainability, and portability.
Functionality
A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs.
- Suitability
- Accuracy
- Interoperability
- Security
- Functionality Compliance
Reliability
A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time.
- Maturity
- Fault Tolerance
- Recoverability
- Reliability Compliance
Usability
A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users.
- Understandability
- Learnability
- Operability
- Attractiveness
- Usability Compliance
Efficiency
A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions.
- Time Behaviour
- Resource Utilisation
- Efficiency Compliance
Maintainability¶
A set of attributes that bear on the effort needed to make specified modifications.
- Analyzability
- Changeability
- Stability
- Testability
- Maintainability Compliance
Portability
A set of attributes that bear on the ability of software to be transferred from one environment to another.
- Adaptability
- Installability
- Co-Existence
- Replaceability
- Portability Compliance
Sub-characteristics
Each quality sub-characteristic (e.g. adaptability) is further divided into attributes. An attribute is an entity which can be verified or measured in the software product. Attributes are not defined in the standard, as they vary between different software products.
Software product is defined in a broad sense: it encompasses executables, source code, architecture descriptions, and so on. As a result, the notion of user extends to operators as well as to programmers, which are users of components such as software libraries.
The standard provides a framework for organizations to define a quality model for a software product. On doing so, however, it leaves up to each organization the task of specifying precisely its own model. This may be done, for example, by specifying target values for quality metrics which evaluates the degree of presence of quality attributes.