Working in IT industry, almost every day you can hear such notion as “software quality”. But pretty often it turns out that different people within this sphere see software quality in different light. First of all, let’s find what international standards understand under “software quality”.
[1061-1998 IEEE Standard for Software Quality Metrics Methodology]:
Software quality is a degree to which the software has the required combination of features.
[ISO 8402:1994 Quality management and quality assurance]:
Software quality is the totality of software features which are relevant to its ability to meet the pre-set and possible requirements.
Quality software features
Functionality is defined by software’s ability to solve fixed problems under certain conditions. Basically, this feature is responsible software being functionally compliant, working properly and meeting industry standards.
Reliability means that software is able to fulfill the required tasks in set conditions during a certain period of time. This feature has such attributes as resilience, system wholeness and the ability to recover after failures.
Usability. Well, that’s pretty easy – software should be easy to understand and navigate.
Efficiency is software’s ability to provide the required performance level according to the allocated resources and other pre-set conditions.
Maintainability is a feature not frequently mentioned, but which is very important. It means the ease with which software can be analyzed, tested, upgraded, fixed, etc.
Portability shows how easy it is to transfer this particular software from one environment into another.
Quality software model
At the moment, the most popular and widely spread model is multi-level quality software model presented in the ISO 9126 set of standards. It has 6 features mentioned above, and these features has some additional metrics each for further assessment.