Definition of Software Quality – What is Software Quality?
Software quality is an abstract concept. Its presence can be difficult to define, but its absence easy to see instantly. Thus, in the quest for improving software quality, first we must understand what it is. Wikipedia describes software quality as:
“In the context of software engineering, software quality measures how well software is designed (quality of design), and how well the software conforms to that design (quality of conformance). It is often described as the ‘fitness for purpose’ of a piece of software.”
There are many variations to the definition of software quality, but in broad terms, quality refers to the satisfaction of requirements. But what are requirements? Requirements can be categorized as functional and non-functional. Functional requirements refer to specific functions that software should be able to do. But just because the software has a certain function or a user can complete a task using the software, does not equate to good quality. That’s because of the non-functional requirements not being met. For this purpose ISO developed ISO 25010  as a model for specifying non-functional requirements. This model, shown below, illustrates the categorization of non-functional requirements.
 ISO/IEC CD 25010 Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Quality model and guide, 2009.
Satisfying non-functional requirements such as performance, ease of use, and learnability first requires specifying and defining. Only then can they be satisfied, and satisfying them can be even more difficult than satisfying functional requirements.
In summary, defining what software quality means to you and your software, and then developing a means to measure and evaluate it can help you improve. If you don’t know what you are measuring though, you can’t evaluate, much less improve!
Download our tutorial on usability, one of the key factors in user satisfaction and software quality.
Improve Software Quality with XBOSoft’s Quality Assurance Mentoring
XBOSoft’s Quality Assurance Mentoring is designed to improve your quality management processes with the ultimate goal in mind at all times: Improve the quality of your software. We provide practical advice that can be implemented from Day 1.
Based on the simple approach of understand, evaluate and improve, XBOSoft examines quality assurance from multiple dimensions in your organization giving you an evaluation of where you stand today, and a roadmap for how you can improve.