Defining Software Quality – Quality in Use
In order to improve software quality, we need to evaluate it. But in order to evaluate it, we must first understand and define it. The Wikipedia page on software quality defines it in terms of functional and non-functional requirements:
- “Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. That attribute can also be described as the fitness for purpose of a piece of software or how it compares to competitors in the marketplace as a worthwhile product;”
- “Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability, the degree to which the software was produced correctly.”
So it’s simple right? We evaluate software quality by its ability to satisfy functional and non-functional requirements. Functional requirements refer to specific functions that software should be able to do whereas non-functional requirements define characteristics of the software for how well it performs those functions. However,satisfying one does not guarantee satisfying another as described in another tip.
There is still another important, if not most important part of the equation, Quality-In-Use, or QinU as depicted by ISO in the diagram below.
QinU, defined by ISO 25010
“The degree to which a product or system can be used by specific users to meet their needs to achieve specific goals with effectiveness, efficiency, freedom from risk and satisfaction in specific contexts of use.”
In other words, QinU relates to the outcome of the user’s interaction with the software and whether or not they were successful in trying to accomplish their goal. This can be measured in terms of their efficiency (usage of resources; time, money, effort, etc.) and effectiveness (did they get the job done completely and correctly with no errors) in a specific context of use.
Let’s look at two very important elements of the definition, “specific users” and “specific contexts of use”.
Specific users could be janitors, doctors, nurses, technicians, buyers, sellers, etc. while specific context of use would include their task at hand, and goal they are trying to accomplish. Obviously a doctor may have different behavior and usage patterns than a nurse, even though they may be trying to accomplish the same task. They may be more prone to errors since they don’t use the prescription filling software (for example) as frequently as the nurse. So these ‘specific users’ and ‘specific contexts’ need to be accounted for when evaluating the quality right? Beauty is in the eyes of the beholder and so is quality!
In summary, the definition for software quality leads to how you will evaluate software quality. And, QinU is an important part of that definition. In simple terms, it doesn’t matter how beautiful the design is, if there are ‘zero defects’, or how well the software performs (meeting non-functional requirements) if users cannot accomplish their tasks successfully!
[1.] ISO/IEC CD 25010 Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Quality model and guide, 2009.