ISO/IEC/IEEE 29119-4: Test Techniques

The aim of ISO/IEC/IEEE 29119-4 Test Techniques is to define one international standard covering software test design techniques (also known as test case design techniques or test methods) that can be used during the test design and implementation process within any organisation or software development life cycle model. The test design techniques that are presented in this standard can be used to derive test cases that can be used to collect evidence that the requirements of each system under test have been met and/or that detects are present. According to ISO/IEC/IEEE 29119-2 Test Processes, a risk-based approach to testing should be used to determine the set of techniques that are applicable in specific situations and to prioritise derived test cases and test procedures (risk-based testing is described in detail in ISO/IEC/IEEE 29119-1 and ISO/IEC/IEEE 29119-2). The test techniques themselves can also be tailored to suit the unique needs of each organisation and each system under test.

The basis for this standard is the BS-7925-2 Component Testing standard, which is superseded by ISO/IEC/IEEE 29119-4. We thank the British Standards Institution for providing the BS-7925 standard as a basis for this standard. For information on BS-7925-1/2 refer to http://testingstandards.co.uk/.

ISO/IEC/IEEE 29119-4 covers a variety of commonly used dynamic software testing techniques:

Specification-Based Testing Techniques:
- Equivalence Partitioning
- Classification Tree Method
- Boundary Value Analysis
- State Transition Testing
- Decision Table Testing
- Cause-Effect Graphing
- Syntax Testing
- Combinatorial Test Techniques, including:
        -> All Combinations
        -> Pairwise Testing
        -> Each Choice Testing
        -> Base Choice Testing
- Scenario Testing (including Use Case Testing)
- Random Testing

Structure-Based Testing Techniques:
- Statement Testing
- Branch Testing
- Decision Testing
- Condition Testing, including:
        -> Branch Condition Testing
        -> Branch Condition Combination Testing
        -> Modified Condition Decision Condition (MCDC) Testing
- Data Flow Testing, including:
        -> All definitions
        -> All-c-uses
        -> All-p-uses
        -> all-uses
        -> all-du-paths
Experience-Based Testing Techniques:
- Error Guessing

Part 4 also provides informative definitions of a variety of quality-related types of testing and provides examples of how the test case design techniques in the lists above can be applied within the following types of testing:

  • Accessibility Testing
  • Backup/Recovery Testing
  • Compatibility Testing
  • Conversion Testing
  • Disaster Recovery Testing
  • Functional Testing
  • Installability Testing
  • Interoperability Testing
  • Localization Testing
  • Maintainability Testing
  • Performance-Related Testing (e.g. Load Testing, Stress Testing and Endurance Testing)
  • Portability Testing
  • Procedure Testing
  • Reliability Testing
  • Security Testing
  • Stability Testing
  • Usability Testing

The diagram below illustrates the test design techniques that are covered in this standard:

Test Design Techniques covered in ISO/IEC/IEEE 29119-4