ISO/IEC/IEEE 29119Software and systems engineering -- Software testing[1] is a series of five international standards for software testing. First developed in 2007[2] and released in 2013, the standard "defines vocabulary, processes, documentation, techniques, and a process assessment model for testing that can be used within any software development lifecycle."[3]
History and revisions
Development of the set of ISO/IEC/IEEE 29119 software testing standards began in May 2007, based on existing standards such as the Institute of Electrical and Electronics Engineers's IEEE 829 (test documentation), and IEEE 1008 (unit testing); and the BSI Group's BS 7925-1 (vocabulary) and -2 (software components).[2][4]
At first the International Organization for Standardization (ISO) had no working group with significant software testing experience, so the ISO created WG26, which by 2011 was represented by more than 20 different countries.[2] Initially four sections were developed for the standard: Concepts and definitions (1), Test processes (2), Test documentation (3), and Test techniques (4).[2] A fifth part concerning process assessment was considered for addition, ultimately becoming ISO/IEC 33063:2015, which ties to 29119-2's test processes.[2][5] The actual fifth part of 29119 was published in November 2016 concerning the concept of keyword-driven testing.[6]
As of June 2018[update], no major revisions have occurred to the five parts of the standard. These parts are, from most recent to oldest:
ISO/IEC/IEEE 29119-5:2016, Part 5: Keyword-driven testing, published in November 2016[6]
ISO/IEC/IEEE 29119-4:2015, Part 4: Test techniques, published in December 2015[7]
ISO/IEC/IEEE 29119-3:2013, Part 3: Test documentation, published in September 2013[8]
ISO/IEC/IEEE 29119-2:2013, Part 2: Test processes, published in September 2013[9]
ISO/IEC/IEEE 29119-1:2013, Part 1: Concepts and definitions, published in September 2013[1]
Structure and contents
ISO/IEC/IEEE 29119-1:2013, Part 1: Concepts and definitions
ISO/IEC/IEEE 29119 Part 1 facilitates the use of the other parts of the standard by introducing the vocabulary on which the standard is built and provides examples of its application in practice.[4] Part 1 provides definitions, a description of the concepts of software testing, and ways to apply these definitions and concepts to the other parts of the standard.[1]
ISO/IEC/IEEE 29119-2:2013, Part 2: Test processes
Part 2 defines a generic test process model for software testing that is intended for use by organizations when performing software testing. It comprises test process descriptions that define the software testing processes at the organizational level, test management (project) level, and dynamic test process levels (WG26 couldn't get consensus on the inclusion of static testing).[2][3][10] The processes defined in this standard can be used in conjunction with different software development lifecycle models.[9]
ISO/IEC/IEEE 29119-3:2013, Part 3: Test documentation
This part deals with software test documentation and includes templates and test documentation examples that are produced during the test process. The templates support the three primary test process levels of Part 2, and the standard also includes mapping to other existing standards.[2][8]
The documents that are defined in ISO/IEC/IEEE 29119-3 are as follows:[2][4]
Organizational Test Process Documentation:
- Test Policy
- Organizational Test Strategy
Test Management Process Documentation:
- Test Plan (including a Test Strategy)
- Test Status
- Test Completion
Dynamic Test Process Documentation:
- Test Design Specification
- Test Case Specification
- Test Procedure Specification
- Test Data Requirements
- Test Data Readiness Report
- Test Environment Requirements
- Test Environment Readiness Report
- Actual Results
- Test Result
- Test Execution Log
- Test Incident Report
ISO/IEC/IEEE 29119-4:2015, Part 4: Test techniques
Part 4 provides standard definitions of software test design techniques (also known as test case design techniques or test methods) and corresponding coverage measures that can be used during the test design and implementation processes defined in Part 2.[7] Techniques of Part 4 are intended to support or be used separately from Part 2. The standard's test design techniques are categorized into three main categories: Specification-, Structure-, and Experience-Based Test Design Techniques.[2][11]
Specification-based test design techniques
These techniques are based on the (functional) specification of the system under test. They are also called black-box testing techniques.
Suggested test design techniques in this group are:[2][11]
ISO/IEC/IEEE 29119-5:2016, Part 5: Keyword-driven testing
This standard covers keyword-driven testing, an approach to specifying software tests (normally automated) used in the software testing industry.[12] This standard is intended for users "who want to create keyword-driven test specifications, create corresponding frameworks, or build test automation based on keywords."[6]
lack of true consensus of content—as required by ISO/IEC—among professional testers[13][20][15][16]
heavy focus on documentation will detract from the actual process of software testing[13][14][18]
ISO 29119 is inconsistent with the way that people work on cognitively demanding tasks, while reinforcing the way they cling to unhelpful practices while doing complex, stressful organisations [19]
the standard fails to take account of relevant work elsewhere on the balance of rules and principles in regulation and standards; the standard is unclear about the principles that should govern testing, while being over-prescriptive about the detail, leading to a confusion of means and ends[19]
the standard effectively excludes context-driven testing[16][17]
the standard has political and monetary connotations and is too prescriptive, which doesn't benefit the industry[13][17][18]
Dr. Stuart Reid, convenor of WG26, replied to some of these and other opposing viewpoints in September 2014,[21] though it's not clear if any further action by WG26 was taken due to software testers' complaints.
References
^ abc"ISO/IEC/IEEE 29119-1:2013". Standards catalogue. International Organization for Standardization. September 2013. Retrieved 24 June 2018.
^ abcdefghijkReid, S. (2012). "The New Software Testing Standard". In Dale, C.; Anderson, T. (eds.). Achieving Systems Safety: Proceedings of the Twentieth Safety-Critical Systems Symposium, Bristol, UK, 7-9th February 2012. Springer Science & Business Media. pp. 237–56. ISBN9781447124948.
^ abcMcCowatt, I. (24 August 2014). "STOP 29119". Exploring Uncertainty: A Software Testing Blog. Archived from the original on 13 October 2014. Retrieved 24 June 2018.