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 which meets the customer requirements.
How Customer will define Quality – Required functionality is provided with user friendly manner.
These are some quality definitions from different perspective. Now lets see how can one measure some quality attributes of product or application.
Following factors are used to measure software development quality. Each attribute can be used to measure the product performance. These attributes can be used for Quality assurance as well as Quality control.
Quality Assurance activities are oriented towards prevention of introduction of defects and Quality control activities are aimed at detecting defects in products and services.
Measure if product is reliable enough to sustain in any condition. Should give consistently correct results.
Product reliability is measured in terms of working of project under different working environment and different conditions.
Different versions of the product should be easy to maintain. For development it should be easy to add code to existing system, should be easy to upgrade for new features and new technologies time to time. Maintenance should be cost effective and easy. System be easy to maintain and correcting defects or making a change in the software.
This can be measured in terms of ease of use. 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 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.
Application should be correct in terms of its functionality, calculations used internally and the navigation should be correct. This means application should adhere to functional requirements.
To Major system quality attribute. Measured in terms of time required to complete any task given to the system. For example system should utilize processor capacity, disk space and memory efficiently. If system is using all the available resources then user will get degraded performance failing the system for efficiency. If system is not efficient then it can not be used in real time applications.
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.
System should be easy to test and find defects. If required should be easy to divide in 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 libraries classes should be generic enough to use easily in different application modules. Dividing application into different modules so that modules can be reused across the application.
Interoperability of one system to another should be easy for product to exchange data or services with other systems. Different system modules should work on different operating system platforms, different databases and protocols conditions.
Applying above quality attributes standards we can determine whether system meets the requirements of quality or not. As specified above all these attributes are applied on QA and QC process so that tester or customer also can find quality of application or system.