What is Software Quality Assurance?
Software quality assurance (SQA) is the process of ensuring that a piece of software passes quality standards set by either the organization or a regulating body. SQA is carried out by software engineers to assess if the software or application is able to perform as designed, and to check for bugs or defects that need to be addressed before it is officially launched.
Important Aspects of Software Quality for ISO 25010 Certification
ISO/IEC 25010 is the official certification covering software product quality. ISO’s “quality model” lists the primary aspects of the software that are considered in determining its overall grade. Below are the most important aspects of software quality to consider when trying to get an ISO 25010 certification.
Functionality
- Does the software’s main function directly resolve the user’s primary need?
- Is it consistent enough to address the user’s need with precision on a regular basis?
- Are the software’s specific functions successful in meeting specific user needs?
Efficiency
- Do the software’s functions respond with reasonable speed considering the task being requested?
- Does the software actively utilize its resources economically when tasked to fulfill functions?
- Is the software’s functional limits within acceptable set requirements?
Usability
- Does the software define itself well enough for users to easily recognize if it is appropriate to their needs?
- Is the learning curve reasonable considering its intended functions and the user’s needs?
- Is the software reasonably easy to use considering the function being utilized, and the user’s need?
Security
- Does the software ensure that confidential data is only accessible to authorized users?
- Is the software capable of resisting unauthorized access attempts through program modification and other malevolent means?
- Is the software capable of verifying the identity of an entity before allowing access?
Maintainability
- Is the software composed of a sufficient number of separate components that remain unaffected should another component be changed or altered?
- Can the software handle reasonable modifications without suffering defects, malfunctions, and a drop in overall quality?
- Is the software consistent and reliable enough so that test criteria can be established and accurate results can be retrieved?