What is Software Quality?
Software quality is defined as a field of study and practice that describes the desirable attributes of software products. There are two main approaches to software quality: defect management and quality attributes.
Software Quality Defect Management Approach
A software defect can be regarded as any failure to address end-user requirements. Common defects include missed or misunderstood requirements and errors in design, functional logic, data relationships, process timing, validity checking, and coding errors.
The software defect management approach is based on counting and managing defects. Defects are commonly categorized by severity, and the numbers in each category are used for planning. More mature software development organizations use tools, such as defect leakage matrices (for counting the numbers of defects that pass through development phases prior to detection) and control charts, to measure and improve development process capability.
Software Quality Attributes Approach
This approach to software quality is best exemplified by fixed quality models, such as ISO/IEC 25010:2011. This standard describes a hierarchy of eight quality characteristics, each composed of sub-characteristics:
- Functional suitability
- Performance efficiency
Additionally, the standard defines a quality-in-use model composed of five characteristics:
A fixed software quality model is often helpful for considering an overall understanding of software quality. In practice, the relative importance of particular software characteristics typically depends on software domain, product type, and intended usage. Thus, software characteristics should be defined for, and used to guide the development of, each product.
Quality function deployment provides a process for developing products based on characteristics derived from user needs.
Software Quality resources
Assessing Developer Quality Using Coding Challenges (Software Quality Professional) Coding challenges are often used as a step in evaluating software engineering and test automation candidates for development and quality assurance jobs. But does the practice result in hiring better coders? This article uses a literature review to explore the best practices for coding challenges.
A Discussion of the Software Quality Assurance Role (Software Quality Professional) The inability to identify who are actually customers limits the ability of software quality assurance (SQA) engineers in the performance of their duties. Correcting this oversight enables the SQA engineer to provide greater value to customers by assuming the role of auditor as well as that of software and systems engineer.
Becoming a Successful Software Manager (Software Quality Professional) If managers want their software projects to succeed, they must exemplify and drive a culture of quality in everything they do. This article provides guidance to help developers reflect on their potential as managers who will build that culture of quality.
Measuring the Cost of Software Quality of a Large Software Project at Bombardier Transportation (Software Quality Professional) The software development group at Bombardier Transportation in Québec, Canada undertook a measure of the cost of software quality in a software system for controlling an American city's subway system.
Enterprise Quality Management Software Mohan Ponnudurai is an industry solutions director for medical devices at Sparta Systems, Inc., with more than 20 years’ experience in enterprise software, real-time systems, and business applications for various industries. He has authored many articles and blogs on quality and compliance and spoken at conferences as a thought leader and subject matter expert.