What is a software quality and what attributes are used to measure it? A very common question you might have faced during Testing or QA Interviews. Many of the Software Testers or Software Quality Analyst don’t know about the attributes at all. This post would help you understand the attributes in simple and sober words.
Software quality is the characteristic of the software that defines how well the software meets the customer requirements, business requirements, coding standards etc. It can be divided into two categories:
Software Functional Quality: characteristics that define how well the software meets functional requirements, and how well it satisfies the end-users.
Software Non-Functional Quality: characteristics that define how well structural requirements are met that support the delivery of functional requirements. It is usually related to software code and internal structure.
The different software qualities can be measured through various software testing techniques and tools. Following are the different attributes (parameters) that are used to measure the software quality:
Testability – How easy it is to test the software and to what extent it can be tested.
Usability – It defines how user friendly the software is.
Understandability – How easily the software can be made understood to a layman about its functions/purpose
Consistency – How far the software is consistent / uniform in terms of GUI, terminologies, conventions.
Efficiency – It defines the amount of work that the software can do in defined timeframe with minimum resources used.
Effectiveness – The extent to which the software satisfies the user and meets user requirements
Accuracy – How accurately the software works with gives the correct results.
Maintainability – How easily the software can be maintained in terms of enhancements/new features/bug fixes.
Reliability – How reliable the software is in performing required functions under different scenarios/conditions.
Portability – How easily the software can be transported and run in different environments e.g. platforms like operating systems (Linux, Mac, Windows), machines it can run on.
Security – How secured the software is in terms of access authorization and personal data like passwords.
Robustness – How robust the software is under unexpected events like software crash, power-off etc and saves its data.
Comment if you have any queries regarding this. Thanks for reading.