ISO/IEC/IEEE 29119 ''Software and systems engineering -- Software testing''
is a series of five
international standard
international standard is a technical standard developed by one or more international standards organizations. International standards are available for consideration and use worldwide. The most prominent such organization is the International Or ...
s for
software testing
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
. First developed in 2007
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."
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
The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operation ...
's
IEEE 829
Status of IEEE 829
Note: IEEE 829-2008 has been superseded by ISO/IEC/IEEE 29119-3:2013.
Background to IEEE 829
IEEE 829-2008, also known as the 829 Standard for Software and System Test Documentation, was an IEEE standard that specified the f ...
(test documentation), and IEEE 1008 (unit testing); and the
BSI Group's BS 7925-1 (vocabulary) and -2 (software components).
At first the
International Organization for Standardization
The International Organization for Standardization (ISO ) is an international standard development organization composed of representatives from the national standards organizations of member countries. Membership requirements are given in Ar ...
(ISO) had no
working group
A working group, or working party, is a group of experts working together to achieve specified goals. The groups are domain-specific and focus on discussion or activity around a specific subject area. The term can sometimes refer to an interdis ...
with significant software testing experience, so the ISO created WG26, which by 2011 was represented by more than 20 different countries.
Initially four sections were developed for the standard: Concepts and definitions (1), Test processes (2), Test documentation (3), and Test techniques (4).
A fifth part concerning process assessment was considered for addition, ultimately becoming ISO/IEC 33063:2015, which ties to 29119-2's test processes.
The actual fifth part of 29119 was published in November 2016 concerning the concept of
keyword-driven testing
Keyword-driven testing, also known as action word based testing (not to be confused with action driven testing), is a software testing methodology suitable for both manual and automated testing. This method separates the documentation of test cas ...
.
, 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
* ISO/IEC/IEEE 29119-4:2015, Part 4: Test techniques, published in December 2015
* ISO/IEC/IEEE 29119-3:2013, Part 3: Test documentation, published in September 2013
* ISO/IEC/IEEE 29119-2:2013, Part 2: Test processes, published in September 2013
* ISO/IEC/IEEE 29119-1:2013, Part 1: Concepts and definitions, published in September 2013
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
A vocabulary is a set of familiar words within a person's language. A vocabulary, usually developed with age, serves as a useful and fundamental tool for communication and acquiring knowledge. Acquiring an extensive vocabulary is one of the la ...
on which the standard is built and provides examples of its application in practice.
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.
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).
The processes defined in this standard can be used in conjunction with different software development lifecycle models.
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.
The documents that are defined in ISO/IEC/IEEE 29119-3 are as follows:
; 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.
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.
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:
*
Equivalence partitioning
*
Classification Tree Method
The Classification Tree Method is a method for test design, as it is used in different areas of software development.
It was developed by Grimm and Grochtmann in 1993.
Classification Trees in terms of the Classification Tree Method must not be co ...
*
Boundary-value analysis
*
Syntax testing
*
Combinatorial test design techniques
*
Decision table testing
*
Cause-effect graphing
*
State transition testing
*
Scenario testing
Scenario testing is a software testing activity that uses scenarios: hypothetical stories to help the tester work through a complex problem or test system. The ideal scenario test is a credible, complex, compelling or motivating story; the outcome ...
*
Random testing
Structure-based test design techniques
These
structural testing
Structural testing is the evaluation of an object (which might be an assembly of objects) to ascertain its characteristics of physical strength. Testing includes evaluating compressive strength, shear strength, tensile strength, all of which ma ...
techniques are based on the (internal) structure of the system under test. They are also called white-box testing techniques.
Suggested test design techniques in this group are:
*
Branch Testing
* Decision Testing
* Branch Condition Testing
* Branch Condition Combination Testing
*
Modified Condition Decision Coverage (MCDC) Testing
*
Data Flow
In computing, dataflow is a broad concept, which has various meanings depending on the application and context. In the context of software architecture, data flow relates to stream processing or reactive programming.
Software architecture
Dataf ...
Testing
Experience-based test design techniques
These
exploratory testing Exploratory testing is an approach to software testing that is concisely described as simultaneous learning, test design and test execution. Cem Kaner, who coined the term in 1984, defines exploratory testing as "a style of software testing that em ...
techniques rely on the
experience
Experience refers to conscious events in general, more specifically to perceptions, or to the practical knowledge and familiarity that is produced by these conscious processes. Understood as a conscious event in the widest sense, experience involv ...
of the human tester.
Suggested test design techniques in this group are:
*
Error Guessing
In software testing, error guessing is a test method in which test cases used to find bugs in programs are established based on experience in prior testing.Bernard Homès, ''Fundamentals of Software Testing'' (2013), sec. 4.5.3. The scope of test ...
ISO/IEC/IEEE 29119-5:2016, Part 5: Keyword-driven testing
This standard covers
keyword-driven testing
Keyword-driven testing, also known as action word based testing (not to be confused with action driven testing), is a software testing methodology suitable for both manual and automated testing. This method separates the documentation of test cas ...
, an approach to specifying software tests (normally automated) used in the software testing industry.
This standard is intended for users "who want to create keyword-driven test specifications, create corresponding frameworks, or build
test automation
In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive bu ...
based on keywords."
Controversy
Upon introduction of ISO/IEC/IEEE 29119, culminating in the summer of 2014, some software testers and associated organizations began making calls for the ISO to rescind the standard.
Notable organizations that protested the standard included the
Association for Software Testing
The Association for Software Testing, commonly referred to as the AST, is dedicated to advancing the understanding of the science and practice of software testing according tcontext-driven principles AST's membership consists of scholars, students ...
and the
International Society for Software Testing Some reasons for opposition to the standard included:
* lack of true consensus of content—as required by ISO/IEC—among professional testers
* heavy focus on documentation will detract from the actual process of software testing
* 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
* 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
* the standard effectively excludes context-driven testing
*
standardization of software testing in general is unnecessary
* the standard has political and monetary connotations and is too prescriptive, which doesn't benefit the industry
Dr. Stuart Reid, convenor of WG26, replied to some of these and other opposing viewpoints in September 2014,
though it's not clear if any further action by WG26 was taken due to software testers' complaints.
References
{{List of International Electrotechnical Commission standards
*
#29119
#29119
#29119