Software testing is an integral part of the software development cycle.
ISO 29119 states “The purpose of the ISO/IEC/IEEE 29119 series of software testing standards is to define an internationally-agreed set of standards that can be used by any organization while performing any form of software testing “.
‘Standards’ define a set of protocols/rules/procedures, based upon which an organization carries out its defined set of goals regarding the quality check of an application.
When you implement the standards, you adopt the internationally-recognized and approved testing standards that will eventually offer your organization a quality approach for testing.
This Blog provides an overview of ISO/IEC/IEEE 29119 software testing standards. As a new international standard, IEEE 29119 becomes the benchmark upon which testing processes are measured against.
New international software testing standards were formed by the ISO (International Standardization Organization and IEC (International Electrotechnical Commission), which is the joint effort of members of over twenty countries and the inputs by the members of IEEE in the year 2013.
That standard is – ISO/IEC/IEEE 29119.
ISO/IEC/IEEE 29119 consists of five different parts:
- ISO/IEC/IEEE 29119-1: Concepts & Definitions
- ISO/IEC/IEEE 29119 2: Test Processes
- ISO/IEC/IEEE 29119-3: Test Documentation
- ISO/IEC/IEEE 29119-4: Test Techniques
- ISO/IEC/IEEE 29119-5 Keyword Driven Testing
The ISO/IEC/IEEE 29119 intends to replace the following existing software testing standards:
- IEEE 829 Test Documentation
- IEEE 1008 Unit Testing
- BS 7925-1 Vocabulary of Terms in Software Testing
- BS 7925-2 Software Component Testing Standard
Now let’s understand each of the standards in detail –
1. Concepts & Definitions – ISO/IEC/IEEE 29119-1
It focuses on key definitions and ideas of software testing for a better understanding of international standards.
Software testing as a concept is vital for several reasons like information regarding the quality of the item being tested, usually required by decision-makers. Generally, it’s acceptable that perfect software is impossible to realize. However, continuous testing and evaluation of software are necessary.
The main goal of testing is to supply information about the standard of things under testing. This information is often useful at:
- Removal of defects to enhance the test item
- Improve decision made by management by considering the risk attached with items
- Enhance the organizational approaches and highlight the effective ones that reveal the defects
2. Test Processes – ISO/IEC/IEEE 29119-2
The standard test process model described is multi-layered with-
- Organizational Test Process
- Test Management Process
- Dynamic Test Processes
The processes are meant to be generic as to be able to be implemented in any organization for any kind of software testing and for any type of software development life cycle model.
Most notably, IEEE 29119-2 focuses on a risk-based approach to testing with the primary goal of risk mitigation.
3. Test Documentation – ISO/IEC/IEEE 29119-3
The test documentation part determines the software test forms and templates that can be used by organizations, for a specific project or single activity of testing.
It contains definite documents that consider the output of test processes. These documents can have multiple versions; such an issue is related to configuration management.
The set of documentation is useful for test practitioners, as given below-
|Seq.||Documentation Name||Seq.||Documentation Name|
|1.||Test Policy||8.||Test Procedure Specification|
|2.||Organizational Test Strategy||9.||Test Data Requirement|
|3.||Test Plan||10.||Test Environment Requirement|
|4.||Test Status Report||11.||Test Data Readiness Report|
|5.||Test Completion Report||12.||Test Environment Readiness Report|
|6.||Test Design Specification||13.||Test Execution Logs|
|7.||Test Case Specification||14.||Test Incident Report|
4. Test Techniques – ISO/IEC/IEEE 29119-4
This standard focuses upon a number of dynamic software testing techniques, developed for organizations and SDLC models, and designed on the basis of the BS-7925-2 component testing standard.
These testing techniques include-
- Equivalence Partitioning
- Classification Tree Method
- Boundary Value Analysis
These software test design techniques are an effective way to develop test cases that can be used to present evidence that each requirement mentioned under test has been successfully met or there are certain defects that need to be rectified.
5. Keyword Driven Testing – ISO/IEC/IEEE 29119-5
This standard supports those techniques and approaches that support keyword-driven testing, a technique that involves describing test cases on the basis of a predefined set of keywords.
These keywords are based on a set of actions that are required to be performed using specific steps in a test case. Writing keywords in a natural language helps one gain an easy understanding of these test cases.
“Standards play a vital role in bringing new ideas to market faster. They are the priceless ingredients that underpin the dissemination of all emerging technologies. They are a form of knowledge – setting out a way forward for new technologies as they are being developed.”
The IEEE Software Testing Standards were designed to suit the needs of different life cycle models, for example, Agile, Evolutionary, and Sequential.
These standards validate that a particular app or project is meeting all testing criteria and this is enough to make your clients happy and satisfied.
Also, understand the concepts and benefits of Manual Testing here-