Software quality

Lecture



Software Quality

Every day in our work we encounter the fairly abstract concept of «software quality», and if you ask a tester or a programmer – «what is quality?», everyone will have their own interpretation. Let's consider the definition of "software quality" in the context of international standards:

[1061-1998 IEEE Standard for Software Quality Metrics Methodology]
Software quality is the degree to which software possesses a required combination of properties .
[ISO 8402:1994 Quality management and quality assurance]
Software quality is the set of characteristics of software that bear on its ability to satisfy stated and implied needs.

In different sources, the terminology for software quality characteristics differs from one another. Various authors have created different quality models, each with its own set of characteristics and attributes, and these can be useful for discussing, planning, and evaluating the quality of software products themselves.

In 1979, Crosby defined quality as «conformance to requirements», while Juran and Gryna, in 1970, defined quality as «fitness for use».

«Conformance to requirements» implies that requirements must be defined so clearly that they cannot be misunderstood or misinterpreted. Any nonconformance should be regarded as a defect – an absence of quality.

«Fitness for use» takes into account the requirements and expectations of the product's end users, i.e. the product or the service provided will be convenient for their needs. However, different users may use the product differently. This means the product must offer the widest possible range of use cases. According to Juran's definition, each use case is a quality characteristic, and all of them can be classified into categories as parameters of fitness for use. In other words, does this product do what I need, does it make my work easier, can I use it in a way that is convenient for me.

The problem is that specified and gathered requirements are usually only part of all the customer's real needs and expectations. Very often implicit requirements are so obvious to the customer or user that it doesn't even occur to them that developers are unaware of them. Developers, in turn, are not willing to take responsibility for what is not described in the requirements. So where is the way out of this circle?

First and foremost — this is establishing proper communication with the customer starting from the very first stage. High-quality elicitation of the customer's needs by the manager or business analyst. But no less important factors are high-quality code writing by the programmer and high-quality software verification by the engineer. All of this is the key to excellent software quality.

The customer will be satisfied and will bring along more customers, only if the purchased product fully satisfies their real, practical needs, both specified and unspecified.

But all of this is not as abstract as it might seem at first. There is a set of ISO 9000 standards that govern the general principles of quality assurance across all industries. The most important standards in software development are:

  • ISO 9000:2000 Quality management systems — Fundamentals and vocabulary;
  • ISO 9001:2000 Quality management systems — Requirements. Models for quality assurance in design, development, production, installation, and servicing;
  • ISO 9004:2000 Quality management systems — Guidelines for performance improvements;
  • ISO/IEC 90003:2004 Software engineering — Guidelines for the application of ISO 9001:2000 to computer software.

Additionally, each company may develop its own quality standards that address the specifics of its work and its corresponding requirements.

So what about the definition after all? Today there are many of them, and they are all extremely similar to one another, as you can see for yourself:
[1061-1998 IEEE Standard for Software Quality Metrics Methodology]

Software quality — is the degree to which software possesses a required combination of properties.

[IEEE Std 610.12-1990]

Software quality — the degree to which a system, component, or process satisfies the needs or expectations of the customer or user.

[ISO/IEC 25000:2014]

Software quality — the ability of a software product, under specified conditions, to satisfy stated or implied needs.

[ISO 8402:1994 Quality management and quality assurance]

Software quality is the set of characteristics of software that bear on its ability to satisfy stated and implied needs.

Characteristics of Software Quality

Functional suitability (Functionality) - is determined by the software's ability to perform tasks that correspond to the user's stated and implied needs, under specified conditions of software use. That is, this characteristic is responsible for the software operating correctly and accurately, being functionally compatible, complying with industry standards, and being protected against unauthorized access.

Reliability – the ability of software to perform the required tasks under specified conditions for a given period of time or a specified number of operations. The attributes of this characteristic are the completeness and integrity of the entire system, the ability to recover independently and correctly after failures, and fault tolerance.

Usability – the ease of understanding, learning, using, and the attractiveness of the software to the user.

Efficiency – the ability of software to provide the required level of performance in relation to the allocated resources, time, and other specified conditions.

Maintainability – the ease with which software can be analyzed, tested, and modified to correct defects, to implement new requirements, to facilitate further servicing, and to adapt to the existing environment.

Portability – characterizes software in terms of the ease with which it can be transferred from one environment (software/hardware) to another.

Software Quality Model

At present, the most widespread and commonly used is the multi-level software quality model, presented in the ISO 9126 set of standards. At the top level, 6 main software quality characteristics are identified, each of which is defined by a set of attributes with corresponding metrics for further evaluation (see fig. 1).

Software quality

Fig. 1 – Software Quality Model (ISO 9126-1)

created: 2016-04-02
updated: 2026-03-09
323



Was this answer useful?
Choose a quick rating so we can improve the next answer for you.
How satisfied are you?


Comments

To leave a comment

If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Lectures and tutorial on "Quality Assurance"

Terms: Quality Assurance