To start with, let us briefly understand What is Quality? Quality can be defined in a different manner. The quality definition may differ from person to person. But finally, there should be some standards. So 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 bear on its ability to satisfy stated or implied needs – ISO
How a Product Developer will define Quality? – The product meets customer requirements.
How Customer will define Quality? – The required functionality is provided in a user-friendly manner.
These are some quality definitions from different perspectives. Now let’s see how can one measure some 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.
Measure if the product is reliable enough to sustain in any condition. Should give consistently correct results.
Product reliability is measured in terms of working of the project under different working environments and different conditions.
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 correcting defects or making a change in the software.
This can be measured in terms of ease of use. The application should be user-friendly. 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 or conventions with our other frequently used systems.
- Easy for new or infrequent users to learn to use the system.
This can be measured in terms of Costing issues related to porting, Technical issues related to porting, Behavioral issues related to porting.
The application should be correct in terms of its functionality, calculations used internally and the navigation should be correct. This means the application should adhere to functional requirements.
Major system quality attribute. 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 can not be used in real-time applications.
Recommended reading =>> What is Efficiency Testing
Integrity or Security
Integrity comes with security. System integrity or security should be sufficient to prevent unauthorized access to system functions, preventing information loss, ensure that the software is protected from virus infection, and protecting the privacy of data entered into the system.
The system should be easy to test and find defects. If required should be easy to divide into different modules for testing.
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.
Software reuse is a good cost-efficient and time-saving development way. Different code library classes should be generic enough to use easily in different application modules. Dividing the application into different modules so that modules can be reused across the application.
Recommended reading =>> Cost of Quality and Cost of Poor Quality?
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.
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 tester or customer also can find the quality of the application or system.