What Are The Quality Attributes?
To start with, let’s briefly understand what quality is? Quality can be defined in different ways. The definition of quality may differ from one person to another. But finally, there should be some standards.
Quality can be defined as
- Degree of excellence – Oxford dictionary
- Fitness for purpose – Edward Deming
- Best for the customer’s use and selling price – Feigenbaum
- The totality of characteristics of an entity that bears on its ability to satisfy stated or implied needs – ISO
How will a Product Developer define Quality? – The product meets customer requirements.
How will Customers define Quality? – The required functionality is provided in a user-friendly manner.
Quality Attributes
Quality may be defined from different perspectives. Now let’s see how one can measure the Quality Attributes of a product or application.
The following factors are used to measure Software Development Quality. Each attribute can be used to measure product performance. These attributes can be used for Quality assurance as well as Quality control.
Quality Assurance activities are oriented towards the prevention of the introduction of defects and Quality Control activities are aimed at detecting defects in products and services.
#1) Reliability
Measure if the product is reliable enough to sustain in any condition. Should give the correct results consistently. Product reliability is measured in terms of working of the project under different working environments and different conditions.
#2) Maintainability
Different versions of the product should be easy to maintain. For development, it should be easy to add code to the existing system, should be easy to upgrade for new features and new technologies from time to time.
Maintenance should be cost-effective and easy. The system is easy to maintain and correct defects or make a change in the software.
#3) Usability
This can be measured in terms of ease of use. The application should be user-friendly. It should be easy to learn. Navigation should be simple.
The system must be:
- Easy to use for input preparation, operation, and interpretation of the output.
- Provide consistent user interface standards and conventions with our other frequently used systems.
- Easy for new or infrequent users to learn to use the system.
#4) Portability
This can be measured in terms of Costing issues related to porting, Technical issues related to porting, and Behavioral issues related to porting.
#5) Correctness
The application should be correct in terms of its functionality, calculations used internally and the navigation should be correct. This means that the application should adhere to functional requirements.
#6) Efficiency
It is one of the major system quality attributes. It is measured in terms of time required to complete any task given to the system. For example, the system should utilize processor capacity, disk space, and memory efficiently.
If the system is using all the available resources then the user will get degraded performance failing the system for efficiency. If the system is not efficient, then it cannot be used in real-time applications.
Recommended Reading =>> What is Efficiency Testing?
#7) Integrity or Security
Integrity comes with security. System integrity or security should be sufficient to prevent unauthorized access to system functions, prevent information loss, ensure that the software is protected from virus infection, and protect the privacy of data entered into the system.
#8) Testability
The system should be easy to test and find defects. If required, it should be easy to divide into different modules for testing.
#9) Flexibility
Should be flexible enough to modify. Adaptable to other products with which it needs interaction. Should be easy to interface with other standard 3rd party components.
#10) Reusability
Software reuse is a good cost-efficient and time-saving development method. Different code library classes should be generic enough to be easily used in different application modules. Divide the application into different modules so that modules can be reused across the application.
Recommended reading =>> Cost of Quality and Cost of Poor Quality
#11) Interoperability
Interoperability of one system to another should be easy for the product to exchange data or services with other systems. Different system modules should work on different operating system platforms, different databases, and protocol conditions.
Conclusion
By applying the above quality attributes standards we can determine whether the system meets the requirements of quality or not.
As specified above all these attributes are applied to QA and QC process so that both the tester as well as the customer can find the quality of the application or system.