Software Testing - ISO Standards
Software Testing - Relevant ISO/IEC and IEEE Standards
Section titled “Software Testing - Relevant ISO/IEC and IEEE Standards”International standards play a vital role in guiding software quality assurance and testing practices. Organizations often adopt these standards to improve their processes, ensure product quality, and meet contractual or regulatory requirements. This chapter highlights key ISO/IEC and IEEE standards relevant to software testing.
ISO/IEC 25000 Series (SQuaRE)
Section titled “ISO/IEC 25000 Series (SQuaRE)”The ISO/IEC 25000 series, known as SQuaRE (System and Software Quality Requirements and Evaluation), provides a comprehensive framework for software product quality. It replaces older standards like ISO/IEC 9126 and ISO/IEC 14598. SQuaRE is organized into several divisions:
- ISO/IEC 2500n - Quality Management Division: Defines common models, terms, and guides for managing quality.
- ISO/IEC 2501n - Quality Model Division: Describes models for product quality (internal/external and quality in use).
- ISO/IEC 2502n - Quality Measurement Division: Provides a reference model and definitions for quality measures.
- ISO/IEC 2503n - Quality Requirements Division: Guides the specification of quality requirements.
- ISO/IEC 2504n - Quality Evaluation Division: Details processes and methods for evaluating software quality.
ISO/IEC 25010 - System and software quality models
Section titled “ISO/IEC 25010 - System and software quality models”A key part of SQuaRE, ISO/IEC 25010, defines a product quality model with eight characteristics for software products:
- Functional Suitability: Degree to which functions meet stated and implied needs.
- Performance Efficiency: Performance relative to resources used under stated conditions (e.g., time behavior, resource utilization, capacity).
- Compatibility: Degree to which a product can exchange information with other products or perform its required functions while sharing the same hardware or software environment.
- Usability: Degree to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in a specified context of use (includes learnability, operability, user error protection, user interface aesthetics, accessibility).
- Reliability: Degree to which a system performs specified functions under specified conditions for a specified period (e.g., maturity, availability, fault tolerance, recoverability).
- Security: Degree to which a product protects information and data so that persons or other products have the degree of data access appropriate to their types and levels of authorization (e.g., confidentiality, integrity, non-repudiation, accountability, authenticity).
- Maintainability: Degree of effectiveness and efficiency with which a product can be modified by intended maintainers (e.g., modularity, reusability, analyzability, modifiability, testability).
- Portability: Degree of effectiveness and efficiency with which a system can be transferred from one hardware, software or other operational or usage environment to another (e.g., adaptability, installability, replaceability).
ISO/IEC 25010 also defines a ‘Quality in Use’ model, focusing on effectiveness, efficiency, satisfaction, freedom from risk, and context coverage from the user’s perspective.
ISO/IEC/IEEE 29119 - Software Testing Standards
Section titled “ISO/IEC/IEEE 29119 - Software Testing Standards”This is a set of internationally agreed standards for software testing, designed to cover the entire software testing lifecycle. It aims to replace or supersede several older IEEE standards related to testing. The main parts include:
- ISO/IEC/IEEE 29119-1: Concepts and Definitions - Provides vocabulary for software testing.
- ISO/IEC/IEEE 29119-2: Test Processes - Defines a generic test process model that can be implemented within any software development lifecycle.
- ISO/IEC/IEEE 29119-3: Test Documentation - Specifies templates and examples for test documentation (e.g., Test Plan, Test Design Specification, Test Case Specification, Test Report). This part is heavily influenced by IEEE 829.
- ISO/IEC/IEEE 29119-4: Test Techniques - Provides definitions and examples of common software test design techniques (e.g., equivalence partitioning, boundary value analysis, decision tables, state transition testing).
- ISO/IEC/IEEE 29119-5: Keyword-Driven Testing - Provides a standard for keyword-driven test automation.
While comprehensive, this standard has also faced some controversy and discussion within the testing community. For further information, search ‘ISO 29119 software testing standard’.
ISO/IEC 9241-11 - Ergonomics of human-system interaction - Part 11: Usability: Definitions and concepts
Section titled “ISO/IEC 9241-11 - Ergonomics of human-system interaction - Part 11: Usability: Definitions and concepts”This standard provides guidance on usability, defining it as the “extent to which a system, product or service can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use.” It emphasizes that usability is dependent on the context of use and is measured by user performance and satisfaction, not just by product features.
Other Relevant IEEE Standards
Section titled “Other Relevant IEEE Standards”While ISO/IEC/IEEE 29119 aims to consolidate many testing standards, some earlier IEEE standards are still referenced or provide foundational concepts:
| Standard | Description |
|---|---|
| IEEE 829-2008 | Standard for Software and System Test Documentation (largely incorporated into ISO/IEC/IEEE 29119-3). |
| IEEE 1008-1987 (Archived) | Standard for Software Unit Testing (concepts remain relevant, modern frameworks provide implementation). |
| IEEE 1012-2016 | Standard for System, Software and Hardware Verification and Validation (V&V). |
| IEEE 1028-2008 | Standard for Software Reviews and Audits (covers inspections, walkthroughs, etc.). |
| IEEE 730-2014 | Standard for Software Quality Assurance Processes. |
Practical Application: Organizations may refer to these standards to structure their test processes, define documentation, select appropriate test techniques, and establish quality models. Certification bodies like ISTQB (International Software Testing Qualifications Board) also base their syllabi on concepts aligned with these international standards.