Professional Documents
Culture Documents
Software Quality Assurance
Software Quality Assurance
SQA, short for software quality assurance, is the process of critically analyzing and
maintaining set requirements for developing reliable products, like software. A well-
designed SQA system incorporates all software development processes, starting from
defining requirements, to coding, testing, and all other processes in between, prior to
release.
Product quality relates to the static and dynamic properties of the software
proper. It is divided in 8 characteristics:
1. Functional Suitability
2. Performance Efficiency
3. Compatibility
4. Usability
5. Reliability
6. Security
7. Maintainability
8. Portability
Quality in use relates to the outcome of human interaction with the software.
It is divided in 5 characteristics:
1. Effectiveness
2. Efficiency
3. Satisfaction
4. Freedom from risk
5. Context coverage
The characteristics listed above are pretty high level, but ISO 25010 goes one
step further by defining a set of sub-characteristics.
1. Functional Completeness: degree to which the set of functions covers all the
specified tasks and user objectives.
2. Functional Correctness: degree to which the functions provides the correct results
with the needed degree of precision.
3. Functional Appropriateness: degree to which the functions facilitate the
accomplishment of specified tasks and objectives.
Performance efficiency
1. Time-behavior: degree to which the response and processing times and throughput
rates of a product or system, when performing its functions, meet requirements.
2. Resource utilization: degree to which the amounts and types of resources used by a
product or system, when performing its functions, meet requirements.
3. Capacity: degree to which the maximum limits of the product or system, parameter
meet requirements.
Usability:
Reliability
1. Maturity: degree to which a system, product or component meets needs for reliability
under normal operation.
2. Availability: degree to which a product or system is operational and accessible when
required for use.
3. Fault tolerance: degree to which a system, product or component operates as
intended despite the presence of hardware or software faults.
4. Recoverability: degree to which, in the event of an interruption or a failure, a product
or system can recover the data directly affected and re-establish the desired state of
the system.
Security
1. Confidentiality: degree to which the prototype ensures that data are accessible only
to those authorized to have access.
2. Integrity: degree to which a system, product or component prevents unauthorized
access to, or modification of, computer programs or data.
3. Non-repudiation: degree to which actions or events can be proven to have taken
place, so that the events or actions cannot be repudiated later.
4. Accountability: degree to which the actions of an entity can be traced uniquely to the
entity.
5. Authenticity: degree to which the identity of a subject or resource can be proved to
be the one claimed.
Maintainability
Portability
Compatibility
1. Coexistence: degree to which a product can perform its required functions efficiently
while sharing a common environment and resources with other products, without
detrimental impact on any other product.
2. Interoperability: degree to which two or more systems, products or components can
exchange information and use the information that has been exchanged.
Satisfaction
Context coverage
ISO 25010 is a great addition for enterprise software teams who want a
framework to define software. By breaking down quality characteristics into
sub-characteristics, developers can go on to define software metrics that
make sense for their project.
1. https://blog.codacy.com/iso-25010-software-quality-model/
2. https://www.researchgate.net/figure/Quality-model-for-external-and-internal-quality-by-ISO-
25010_fig1_276202563