ISO/IEC 29119: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m →‎Replacement of existing standards: Fixed cite linking to archive version and added ReplacedStandards anchor
Major revision to address all concerns. See Talk page for more commentary. Issues should now be resolved and all claims cited appropriately.
Line 1: Line 1:

{{multiple issues|
{{notability|date=September 2014}}
{{primary sources|date=September 2014}}
{{COI|date=November 2015}}
}}
{{Portal|Software Testing}}
{{Portal|Software Testing}}
'''ISO/IEC/IEEE 29119''' ''Software and systems engineering -- Software testing''<ref name="ISO29119-1-2013">{{cite web |url=https://www.iso.org/standard/45142.html |title=ISO/IEC/IEEE 29119-1:2013 |work=Standards catalogue |publisher=International Organization for Standardization |date=September 2013 |accessdate=24 June 2018}}</ref> is a series of five [[international standard]]s for [[software testing]]. First developed in 2007<ref name="ReidAchieving12">{{cite book |url=https://books.google.com/books?id=FpfhqhDs15YC&pg=PA243 |chapter=The New Software Testing Standard |title=Achieving Systems Safety: Proceedings of the Twentieth Safety-Critical Systems Symposium, Bristol, UK, 7-9th February 2012 |author=Reid, S. |editor=Dale, C.; Anderson, T. |publisher=Springer Science & Business Media |pages=237–56 |year=2012 |isbn=9781447124948}}</ref> and released in 2013, the standard "defines vocabulary, processes, documentation, techniques, and a process assessment model for testing that be used within any software development lifecycle."<ref name="ShoemakerCyber14">{{cite book |url=https://books.google.com/books?id=b1s8AwAAQBAJ&pg=PA131 |chapter=Chapter 6: Software Impelementation Process Group |title=Cybersecurity: Engineering a Secure Information Technology Organization |author=Shoemaker, D.; Sigler, K. |publisher=Cengage Learning |pages=117–34 |year=2014 |isbn=9781305443471}}</ref>
The [[International Organization for Standardization|ISO]] / [[International Electrotechnical Commission|IEC]] / [[Institute of Electrical and Electronics Engineers|IEEE]] 29119 <ref>[http://www.softwaretestingstandard.org ISO/IEC/IEEE 29119 Software Testing]</ref> series consists of five [[Technical standard|standards]]. Its stated purpose is to define an internationally agreed set of standards to support [[software testing]].


==History and revisions==
==Introduction==
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), IEEE 1008 (unit testing), and IEEE 1012 (software and systems verification and validation); and the [[BSI Group]]'s [[BS 7925-1]] (vocabulary) and [[BS 7925-2|-2]] (software components).<ref name="ReidAchieving12" /><ref name="PröllToward18">{{cite journal |title=Toward a Consistent and Strictly Model-Based Interpretation of the ISO/IEC/IEEE 29119 for Early Testing Activities |journal=Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2018) |author=Pröll, R.; Bauer, B. |pages=699–706 |year=2018 |doi=10.5220/0006749606990706}}</ref> 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.<ref name="ReidAchieving12" /> Initially four sections were developed for the standard: Concepts and definitions (1), Test processes (2), Test documentation (3), and Test techniques (4).<ref name="ReidAchieving12" /> A fifth part concerning process assessment was considered for addition, ultimately becoming ISO/IEC 33063:2015, which ties to 29119-2's test processes.<ref name="ReidAchieving12" /><ref name="ISO33063-2015">{{cite web |url=https://www.iso.org/standard/55154.html |title=ISO/IEC 33063:2015 |work=Standards catalogue |publisher=International Organization for Standardization |date=August 2015 |accessdate=24 June 2018}}</ref> The actual fifth part of 29119 was published in November 2016 concerning the concept of [[keyword-driven testing]].<ref name="ISO29119-5-2016">{{cite web |url=https://www.iso.org/standard/62821.html |title=ISO/IEC/IEEE 29119-5:2016 |work=Standards catalogue |publisher=International Organization for Standardization |date=November 2016 |accessdate=24 June 2018}}</ref>
===Background===
ISO/IEC/IEEE 29119 software testing standards are a set of internationally defined documents addressing the software testing concepts, processes, techniques, documents, technologies, and terms..


{{As of|June 2018}}, no major revisions have occurred to the five parts of the standard. These parts are, from most recent to oldest:
Currently ISO/IEC/IEEE 29119 has five parts. The set of standards use a layered approach to defining software testing, which is common to many ISO standards. This set of standards presents: test definitions and concepts (part 1); test processes (part 2); test documentation (part 3); test techniques (part 4); and keyword-driven testing (part 5).


* ISO/IEC/IEEE 29119-5:2016, Part 5: Keyword-driven testing, published in November 2016<ref name="ISO29119-5-2016" />
===The Standards Jigsaw===
* ISO/IEC/IEEE 29119-4:2015, Part 4: Test techniques, published in December 2015<ref name="ISO29119-4-2015">{{cite web |url=https://www.iso.org/standard/60245.html |title=ISO/IEC/IEEE 29119-4:2015 |work=Standards catalogue |publisher=International Organization for Standardization |date=December 2015 |accessdate=24 June 2018}}</ref>
The ISO/IEC/IEEE 29119 set of standards are being developed by Working Group 26 (WG26) of Sub-Committee 7 (SC7) of [[ISO/IEC JTC 1|Joint Technical Committee 1]] (JTC1) of the [[International Organization for Standardization]] (ISO) and the [[International Electrotechnical Commission]] in cooperation with the Software & Systems Engineering Standards Committee of the [[Institute of Electrical and Electronics Engineers]] (IEEE) Computer Society.
* ISO/IEC/IEEE 29119-3:2013, Part 3: Test documentation, published in September 2013<ref name="ISO29119-3-2013">{{cite web |url=https://www.iso.org/standard/56737.html |title=ISO/IEC/IEEE 29119-3:2013 |work=Standards catalogue |publisher=International Organization for Standardization |date=September 2013 |accessdate=24 June 2018}}</ref>
* ISO/IEC/IEEE 29119-2:2013, Part 2: Test processes, published in September 2013<ref name="ISO29119-2-2013">{{cite web |url=https://www.iso.org/standard/56736.html |title=ISO/IEC/IEEE 29119-2:2013 |work=Standards catalogue |publisher=International Organization for Standardization |date=September 2013 |accessdate=24 June 2018}}</ref>
* ISO/IEC/IEEE 29119-1:2013, Part 1: Concepts and definitions, published in September 2013<ref name="ISO29119-1-2013" />


==Structure and contents==
Within [[ISO/IEC JTC 1/SC 7]], ISO/IEC/IEEE 29119 is part of a larger body of ISO/IEEE standards made up of 153 standards, including [[ISO/IEC 12207]] [[software life cycle]] processes and [[ISO/IEC 15288]] [[systems engineering]].
===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.<ref name="PröllToward18" /> 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.<ref name="ISO29119-1-2013" />


===ISO/IEC/IEEE 29119-2:2013, Part 2: Test processes===
Members of WG26 are experts and testers from within an international community of testers<ref>[http://softwaretestingstandard.org/aboutWG26.php About WG26]</ref>, who participated and contributed testing concepts during the drafting, review and consensus process. Participation is open to all; interested parties should approach their National Standards Body<ref>[https://www.iso.org/members.html?m=MB National Standards Bodies]</ref>.
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).<ref name="ReidAchieving12" /><ref name="ShoemakerCyber14" /><ref name="KasurinenASelf11">{{cite book |url=https://books.google.com/books?id=Li_JzmrWfkwC&pg=PA25 |chapter=A Self-assessment Framework for Finding Improvement Objectives with ISO/IEC 29119 Test Standard |title=Systems, Software and Services Process Improvement: 18th European Conference, EuroSPI 2011, Roskilde, Denmark, June 27-29, 2011, Proceedings |author=Kasurinen, J.; Runeson, P.; Riungu, L. et al. |editor=Connor, R.V.; Pries-Heje, J.; Messnarz, R. |publisher=Springer Science & Business Media |pages=25–36 |year=2011 |isbn=9783642222054}}</ref> The processes defined in this standard can be used in conjunction with different software development lifecycle models.<ref name="ISO29119-2-2013" />


===ISO/IEC/IEEE 29119-3:2013, Part 3: Test documentation===
===Development and Consensus===
This part deals with [[Software Test Documentation|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.<ref name="ReidAchieving12" /><ref name="ISO29119-3-2013" />
Development of the set of ISO/IEC/IEEE 29119 software testing standards began in May 2007 by WG26; these standards were created and developed by ISO and IEEE using their standard development methods. The development and approval process is by consensus, which means that a majority of the standard development participants (not the whole world of software tests) agrees with the document. Consensus was reached with a variety of countries and professional organizations that are members of SC7/JTC1 and IEEE: within ISO, SC7 member countries approved ISO/IEC/IEEE 29119 by majority, whilst IEEE approved ISO/IEC/IEEE 29119 within its standards association group.


The documents that are defined in ISO/IEC/IEEE 29119-3 are as follows<ref name="ReidAchieving12" /><ref name="PröllToward18" />:
Membership in these are subject to ISO and IEEE rules and is an open process with these organizations, though not every tester in the world can be involved.


Consensus in ISO/IEEE does not mean that all testers in the world would agree with every idea and concept in the standard, but that the organizations and people involved in the standards’ production did reach agreement. Further, the consensus process does not imply that all viable and new concepts to develop or provide testing goods and services are defined within the standard.

===Publication===
The first three parts were published in 2013, with the fourth and fifth following in 2015 and 2016 respectively:
* ''ISO/IEC/IEEE 29119-1: Concepts & Definitions'',<ref name="ISO 29119-1">{{cite web|title=ISO/IEC/IEEE 29119-1:2013|url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=45142|website=iso.org|accessdate=30 August 2014}}</ref> published September 2013
* ''ISO/IEC/IEEE 29119-2: Test Processes'',<ref name="ISO 29119-2">{{cite web|title=ISO/IEC/IEEE 29119-2:2013|url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=56736|website=iso.org|accessdate=30 August 2014}}</ref> published September 2013
* ''ISO/IEC/IEEE 29119-3: Test Documentation'',<ref name="ISO 29119-3">{{cite web|title=ISO/IEC/IEEE 29119-3:2013|url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=56737|website=iso.org|accessdate=30 August 2014}}</ref> published September 2013
* ''ISO/IEC/IEEE 29119-4: Test Techniques'',<ref name="ISO 29119-4">{{cite web|title=ISO/IEC/IEEE 29119-4:2015|url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=60245|website=iso.org|accessdate=6 December 2016}}</ref> published December 2015
* ''ISO/IEC/IEEE 29119-5: Keyword Driven Testing'',<ref name="ISO 29119-5">{{cite web|title=ISO/IEC/IEEE 29119-5:2016|url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=62821|website=iso.org|accessdate=5 December 2016}}</ref> published November 2016

=== {{anchor|ReplacedStandards}} Replacement of existing standards ===
The ISO/IEC/IEEE 29119 standards replace<ref>{{cite web|title=New International Software Testing Standard|url=http://blog.ipqa.co.uk/index.php/2013/01/03/new-international-software-testing-standard-isoiecieee-dis-29119/|accessdate=14 June 2018|date=3 January 2013|archive-url=https://web.archive.org/web/20180614172235/http://blog.ipqa.co.uk/index.php/2013/01/03/new-international-software-testing-standard-isoiecieee-dis-29119/|archive-date=14 January 2018|dead-url=yes}}</ref> a number of 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

These standards will be phased out over time.

BS 7925 was developed by the Testing Standards Working Party,<ref>{{cite web|title=Testing Standards Working Party|url=http://www.testingstandards.co.uk|accessdate=3 July 2010| archiveurl= https://web.archive.org/web/20100723130337/http://testingstandards.co.uk/| archivedate= 23 July 2010 <!--DASHBot-->| deadurl= no}}</ref> sponsored by [[British Computer Society|BCS]] SIGiST, and published by [[BSI Group|BSI]] in August 1998.

==Purpose and Usage==
ISO/IEC/IEEE 29119 software testing standards are intended to be software domain, environment, and organization independent while supporting a variety of [[Software lifecycle|software lifecycles]] and methods. The process approach is fundamentally [[risk-based testing]] and can support [[test planning]] and [[Test strategy|strategy]] development.

Teams implementing the ISO/IEC/IEEE 29119 standards are adopting and following an internationally recognized standard for software testing. The standard is made available throughout the world and thus provides a basis for an international trading language within the scope of ISO and IEEE using organizations.

===Intended benefits===
The standards were not intended to be state of the art or capture all practices in testing. New concepts and different testing practices will be added in future updates or new parts as ISO/IEC/IEEE 29119 evolves. Finally, future additions to the standard to address other testing concepts and scope are likely, e.g. [[model-based testing]], etc.

Potential users of the standards may include:
* Companies needing common baseline of testing concepts, terms, and ideas (an organization to organization trading language to help promote national and international business);
* Government organizations and regulators needing an ISO/IEC/ISO industry approved baseline;
* Test organization needing an industry based starting point;
* Purchasers and procurers of software products to assess third parties;
* Developers of software, e.g. to support unit level testing;
* Regulatory authorities wishing to provide accreditation services against the standards;
* Professional training course developers and providers;
* University lecturers wishing to teach their students content from the standards;
* University researchers wishing to conduct research and collect data based on the standards;
* Software testing tool vendors wishing to implement concepts from the standards;
* Organizations wishing to gain accreditation to the standard.

===Approach===
* ISO/IEC/IEEE 29119-1 provides a common set of terms and concepts to support the other parts.
* ISO/IEC/IEEE 29119-2 specifies a risk-based approach to testing. In risk-based testing, risks are used to limit and arrange the test effort within project contexts of problem space, cost and schedule. This is done to solve the problem that testing can be viewed as having an infinite problem space (i.e. complete 100% testing is not possible).
* ISO/IEC/IEEE 29119-3 provides definition of common test documents, which can be selected via tailoring as needed.
* ISO/IEC/IEEE 29119-4 provides structural and functional test techniques, which can also be selected as part of a tailoring activity.
* ISO/IEC/IEEE 29119-5 provides definition of keyword-driven test approaches and concepts, for use in projects needing keywords.

By the use of ISO 29119 heuristics, the test problem can be managed and solved within context of a project or organization.

===Tailoring===
Use of the standards can be tailored (requirements removed, changed, or added) in support of contracts or projects to fit local context and needs resulting in varying degrees of adoption. For example, users may select only 2 or 3 document outlines from ISO/IEC/IEEE 29119-3, or select appropriate techniques from ISO/IEC/IEEE 29119-4.

As per common practice, tailoring needs to be agreed to by stakeholders.

==Structure and contents of the standards - Overview of each part ==
The following sections outline the existing parts of standards that are currently published and/or under development.

===ISO/IEC/IEEE 29119-1 (Part 1) - Concepts and Definitions ===
ISO/IEC/IEEE 29119 Software Testing - Concepts and Definitions, 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. Part 1 is informative, providing definitions, a description of the concepts of software testing and ways to apply the software testing process defined in the ISO/IEC/IEEE 29119 part 2 standard and guidance for the other ISO/IEC/IEEE 29119 standards.

===ISO/IEC/IEEE 29119-2 (Part 2) - Test Processes ===
ISO/IEC/IEEE 29119 Software Testing - Test Processes, defines a generic 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 level and dynamic test levels. The processes defined in this standard can be used in conjunction with different software development lifecycle model.

===ISO/IEC/IEEE 29119-3 (Part 3) - Test Documentation ===
ISO/IEC/IEEE 29119 Software Testing - [[Software Test Documentation|Test Documentation]], supersedes the long-standing [[IEEE 829]], and includes templates and examples of test documentation that are produced during the test process. The templates support ISO/IEC/IEEE 29119-2 Test Processes, i.e. by the test process in which they are produced.

The documents that are defined in ISO/IEC/IEEE 29119-3 are as follows:
; '''Organizational Test Process Documentation:'''
; '''Organizational Test Process Documentation:'''
: - Test Policy
: - Test Policy
Line 99: Line 31:
; '''Test Management Process Documentation:'''
; '''Test Management Process Documentation:'''
: - Test Plan (including a Test Strategy)
: - Test Plan (including a Test Strategy)
: - Test Status Report
: - Test Status
: - Test Completion Report
: - Test Completion
; '''Dynamic Test Process Documentation:'''
; '''Dynamic Test Process Documentation:'''
: - Test Design Specification
: - Test Design Specification
Line 114: Line 46:
: - Test Incident Report
: - Test Incident Report


===ISO/IEC/IEEE 29119-4 (Part 4) - Test Techniques ===
===ISO/IEC/IEEE 29119-4:2015, Part 4: Test techniques===
ISO/IEC/IEEE 29119 Software Testing - Test Techniques, provides standard definitions of software [[test design]] techniques (also known as test case design techniques or [[Test method|test methods]]) that can be used during the test design and implementation process that is defined in ISO/IEC/IEEE 29119-2. Techniques of part 4 are intended to support part 2 or can be used without part 2.
Part 4 provides standard definitions of software [[test design]] techniques (also known as test case design techniques or [[Test method|test methods]]) and corresponding coverage measures that can be used during the test design and implementation processes defined in Part 2.<ref name="ISO29119-4-2015" /> 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.<ref name="ReidAchieving12" /><ref name="29119-4TOC">{{cite web |url=https://www.din.de/de/mitwirken/normenausschuesse/nia/normen/wdc-beuth:din21:247318197/toc-2405676/download |title=ISO/IEC/IEEE 29119-4:2015-12 (E) Table of Contents |work=Normenausschuss Informationstechnik und Anwendungen (NIA) |publisher=Deutsches Institut für Normung e. V |accessdate=24 June 2018}}</ref>


====Specification-based test design techniques====
Suggested Test Design Techniques are categorized in Specification-Based Test Design Techniques, Structure-Based Test Design Techniques, and Experience-Based Test Design Techniques.<ref>{{cite web|title=- 1 - ISO/IEC/IEEE 29119-4:2015-12 (E) Table of Contents|url=http://www.din.de/de/mitwirken/normenausschuesse/nia/normen/wdc-beuth:din21:247318197/toc-2405676/download|website=DIN|publisher=DIN|accessdate=10 August 2016}}</ref>
These techniques are base 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<ref name="ReidAchieving12" /><ref name="29119-4TOC" />:
====Specification-Based Test Design Techniques ====
[[Functional testing|Specification-Based Test Design]] Techniques base on the (functional) specification of the [[system under test]].
They are also called [[black-box testing]].


Suggested Test Design Techniques in this group are:
* [[Equivalence Partitioning]]
* [[Equivalence Partitioning]]
* [[Classification Tree Method]]
* [[Classification Tree Method]]
Line 135: Line 65:
* [[Random Testing]]
* [[Random Testing]]


====Structure-Based Test Design Techniques ====
====Structure-based test design techniques====
[[Structural testing|Structure-Based Test Design]] Techniques base on the (internal) structure of the system under test.
These [[structural testing]] techniques are based on the (internal) structure of the system under test. They are also called [[white-box testing]] techniques.

They are also called [[white-box testing]].
Suggested test design techniques in this group are<ref name="ReidAchieving12" /><ref name="29119-4TOC" />:


Suggested Test Design Techniques in this group are:
* [[Code_coverage#Basic_coverage_criteria|Branch Testing]]
* [[Code_coverage#Basic_coverage_criteria|Branch Testing]]
* Decision Testing
* Decision Testing
Line 147: Line 77:
* [[Data-flow analysis|Data Flow]] Testing
* [[Data-flow analysis|Data Flow]] Testing


====Experience-Based Test Design Techniques ====
====Experience-based test design techniques ====
[[Exploratory testing|Experience-Based Test Design]] Techniques rely on the [[experience]] of the human tester.
These [[exploratory testing]] techniques rely on the [[experience]] of the human tester.


Suggested Test Design Techniques in this group are:
Suggested test design techniques in this group are<ref name="29119-4TOC" />:
* [[Error guessing|Error Guessing]]
* [[Error guessing|Error Guessing]]


===ISO/IEC/IEEE 29119-5 (Part 5) – Keyword-Driven Testing ===
===ISO/IEC/IEEE 29119-5:2016, Part 5: Keyword-driven testing===
This standard covers [[keyword-driven testing]]. Keyword-driven testing is an approach to specifying software tests (normally automated) that is already widely 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]] based on keywords.
This standard covers [[keyword-driven testing]], an approach to specifying software tests (normally automated) used in the software testing industry.<ref name="FaughtKeyword04">{{cite web |url=https://www.stickyminds.com/article/keyword-driven-testing |title=Keyword-Driven Testing |author=Faught, D.R. |work=StickyMinds |publisher=TechWell Corp |date=5 November 2004 |accessdate=24 June 2018}}</ref> This standard is intended for users "who want to create keyword-driven test specifications, create corresponding frameworks, or build [[test automation]] based on keywords."<ref name="ISO29119-5-2016" />

==Future plans for maintenance of standards==
All ISO standards are reviewed, revised, and if necessary retired no later than 5 years after publishing. ISO/IEC/IEEE 29119 naturally follows the same process.
Interested parties can provide input to the standard for the systematic review, either via the ISO national standard bodies, or by directly approaching the standard organizations including ISO, IEC or IEEE standards association. The decision about a revision of the standards will be based on the available feedback, comments, input, consensus and voting. The future plans for ISO/IEC/IEEE 29119 parts will attempt to address as many current issues and controversy items as consensus will allow.
The impact and proof by use of ISO/IEC/IEEE 29119 parts remain future work. Before the viability of the standard can be determined, the standard had to be developed and made available for use, which has happened. The development represented what participants understood to be common practice in their experience in countries, companies, and organization. These groups will be the initial users of the standard and will provide evidence of success or failure.


==Controversy==
==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.<ref name="KrillSoftware14">{{cite web |url=https://www.infoworld.com/article/2608932/application-development/software-testers-balk-at-iso-29119-standards-proposal.html |title=Software testers balk at ISO 29119 standards proposal |author=Krill, P. |work=InfoWorld |publisher=IDG Communications, Inc |date=22 August 2014 |accessdate=24 June 2018}}</ref><ref name="DenmanSoftware14">{{cite web |url=https://searchsoftwarequality.techtarget.com/news/2240230293/Software-testers-petition-to-stop-ISO-29119 |title=Software testers petition to stop ISO 29119 |author=Demman, J. |work=TechTarget SearchSoftwareQuality |publisher=TechTarget, Inc |date=9 September 2014 |accessdate=24 June 2018}}</ref><ref name="McCowattStop14">{{cite web |url=http://exploringuncertainty.com/blog/archives/1124 |title=STOP 29119 |author=McCowatt, I. |work=Exploring Uncertainty: A Software Testing Blog |date=24 August 2014 |accessdate=24 June 2018}}</ref><ref name="BachHow14">{{cite web |url=http://www.satisfice.com/blog/archives/1464 |title=How Not to Standardize Testing (ISO 29119) |author=Bach, J. |work=Satisfice Blog |publisher=Satisfice, Inc |date=25 August 2014 |accessdate=24 June 2018}}</ref><ref name="KanerPlease14">{{cite web |url=http://context-driven-testing.com/?p=91 |title=Please sign the Petition to Stop ISO 29119 |author=Kaner, C. |work=context-driven-testing.com |date=28 August 2014 |accessdate=24 June 2018}}</ref><ref name="ASTTheISO14">{{cite web |url=https://www.associationforsoftwaretesting.org/2014/09/05/the-iso29119-debate/ |title=The ISO29119 debate |publisher=Association for Software Testing |date=5 September 2014 |accessdate=24 June 2018}}</ref> Notable organizations that protested the standard included the [[Association for Software Testing]]<ref name="ASTTheISO14" /> and the [[International Society for Software Testing]]<ref name="ISSTPetition14">{{cite web |url=http://www.commonsensetesting.org/news/files/PetitionISO29119.html |archiveurl=https://web.archive.org/web/20170208172750/http://www.commonsensetesting.org/news/files/PetitionISO29119.html |title=Petition against ISO 29119 |publisher=International Society for Software Testing |date=19 August 2014 |archivedate=8 February 2017 |accessdate=24 June 2018}}</ref> Some reasons for opposition to the standard included:
There is resistance <ref>[http://commonsensetesting.org/stop29119 Stop 29119]</ref><ref>[http://www.infoworld.com/t/application-development/software-testers-balk-iso-29119-standards-proposal-249031 Infoworld.com]</ref><ref>[http://searchsoftwarequality.techtarget.com/news/2240230293/Software-testers-petition-to-stop-ISO-29119 Techtarget.com]</ref> from sections of the testing community towards the [[Software testing controversies|standardization of software testing]].


* lack of true consensus of content—as required by ISO/IEC—among professional testers<ref name="KrillSoftware14" /><ref name="ISSTPetition14" /><ref name="McCowattStop14" /><ref name="BachHow14" />
In particular, the context-driven community and the [[International Society for Software Testing]] reject these standards.<ref>[http://www.commonsensetesting.org/news/files/PetitionISO29119.html International Society for Software Testing]</ref> In short, the reason for opposition is that ISO-29119 effectively excludes Context Driven Testing and at the same time Context Driven Testing won’t agree to any simplistic standard based on templates or simple formulae.<ref>[http://www.satisfice.com/blog/archives/1464]</ref>
* heavy focus on documentation will detract from the actual process of software testing<ref name="KrillSoftware14" /><ref name="DenmanSoftware14" /><ref name="ASTTheISO14" />
* the standard effectively excludes context-driven testing<ref name="BachHow14" /><ref name="KanerPlease14" />
* [[Software testing controversies|standardization of software testing]] in general is unnecessary<ref name="McCowattStop14" /><ref name="ASTTheISO14" />
* the standard has political and monetary connotations and is too prescriptive, which doesn't benefit the industry<ref name="KrillSoftware14" /><ref name="KanerPlease14" /><ref name="ASTTheISO14" />


Dr. Stuart Reid, convenor of WG26, replied to these and other opposing viewpoints in September 2014<ref name="ReidResponse14">{{cite web |url=http://www.softwaretestingstandard.org/29119petitionresponse.php |title=Response to Stop 29119 Petition |author=Marnane, T.; Reid, S. |work=SoftwareTestingStandard.org |date=10 September 2014 |accessdate=24 June 2018}}</ref>, though it's not clear if any further action by WG26 was taken due to software testers' complaints.
Note: the same objections were previously raised by the CDT community regarding [[IEEE 829]].<ref>[http://context-driven-testing.com/ Context-Driven-Testing]</ref>


==References==
==References==
{{Reflist}}
{{Reflist}}


== External links ==
* [http://www.iso.org International Organization for Standardization]
* [http://www.bsigroup.co.uk BSI Group]
* [http://www.sigist.org.uk/ British Computer Society Specialist Interest Group in Software Testing]
* [http://www.softwaretestingstandard.org ISO/IEC/IEEE 29119 Software Testing]
* [http://commonsensetesting.org International Society for Software Testing]
* [http://moolya.com/blogs/2014/09/129/An-open-letter-to-the-President-of-the-International-Organization-for-Standardization-about-ISO-29119 An open letter to the President of the International Organization for Standardization about ISO 29119]
* [http://www.testingstandards.co.uk Testing Standards website]

* {{IEC|29119-1|29119-2|29119-3|29119-4|29119-5}}
{{ISO standards}}{{List of International Electrotechnical Commission standards}}
{{ISO standards}}{{List of International Electrotechnical Commission standards}}
[[Category:Software testing|*]]
[[Category:Software testing|*]]

Revision as of 20:36, 24 June 2018

ISO/IEC/IEEE 29119 Software 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 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), IEEE 1008 (unit testing), and IEEE 1012 (software and systems verification and validation); 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, 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 base 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]:

Structure-based test design techniques

These structural testing 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[2][11]:

Experience-based test design techniques

These exploratory testing techniques rely on the experience of the human tester.

Suggested test design techniques in this group are[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]

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.[13][14][15][16][17][18] Notable organizations that protested the standard included the Association for Software Testing[18] and the International Society for Software Testing[19] Some reasons for opposition to the standard included:

  • lack of true consensus of content—as required by ISO/IEC—among professional testers[13][19][15][16]
  • heavy focus on documentation will detract from the actual process of software testing[13][14][18]
  • the standard effectively excludes context-driven testing[16][17]
  • standardization of software testing in general is unnecessary[15][18]
  • 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 these and other opposing viewpoints in September 2014[20], though it's not clear if any further action by WG26 was taken due to software testers' complaints.

References

  1. ^ a b c "ISO/IEC/IEEE 29119-1:2013". Standards catalogue. International Organization for Standardization. September 2013. Retrieved 24 June 2018.
  2. ^ a b c d e f g h i j k Reid, S. (2012). "The New Software Testing Standard". In Dale, C.; Anderson, T. (ed.). Achieving Systems Safety: Proceedings of the Twentieth Safety-Critical Systems Symposium, Bristol, UK, 7-9th February 2012. Springer Science & Business Media. pp. 237–56. ISBN 9781447124948.{{cite book}}: CS1 maint: multiple names: editors list (link)
  3. ^ a b Shoemaker, D.; Sigler, K. (2014). "Chapter 6: Software Impelementation Process Group". Cybersecurity: Engineering a Secure Information Technology Organization. Cengage Learning. pp. 117–34. ISBN 9781305443471.{{cite book}}: CS1 maint: multiple names: authors list (link)
  4. ^ a b c Pröll, R.; Bauer, B. (2018). "Toward a Consistent and Strictly Model-Based Interpretation of the ISO/IEC/IEEE 29119 for Early Testing Activities". Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2018): 699–706. doi:10.5220/0006749606990706.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  5. ^ "ISO/IEC 33063:2015". Standards catalogue. International Organization for Standardization. August 2015. Retrieved 24 June 2018.
  6. ^ a b c "ISO/IEC/IEEE 29119-5:2016". Standards catalogue. International Organization for Standardization. November 2016. Retrieved 24 June 2018.
  7. ^ a b "ISO/IEC/IEEE 29119-4:2015". Standards catalogue. International Organization for Standardization. December 2015. Retrieved 24 June 2018.
  8. ^ a b "ISO/IEC/IEEE 29119-3:2013". Standards catalogue. International Organization for Standardization. September 2013. Retrieved 24 June 2018.
  9. ^ a b "ISO/IEC/IEEE 29119-2:2013". Standards catalogue. International Organization for Standardization. September 2013. Retrieved 24 June 2018.
  10. ^ Kasurinen, J.; Runeson, P.; Riungu, L.; et al. (2011). "A Self-assessment Framework for Finding Improvement Objectives with ISO/IEC 29119 Test Standard". In Connor, R.V.; Pries-Heje, J.; Messnarz, R. (ed.). Systems, Software and Services Process Improvement: 18th European Conference, EuroSPI 2011, Roskilde, Denmark, June 27-29, 2011, Proceedings. Springer Science & Business Media. pp. 25–36. ISBN 9783642222054. {{cite book}}: Explicit use of et al. in: |author= (help)CS1 maint: multiple names: authors list (link)
  11. ^ a b c d "ISO/IEC/IEEE 29119-4:2015-12 (E) Table of Contents". Normenausschuss Informationstechnik und Anwendungen (NIA). Deutsches Institut für Normung e. V. Retrieved 24 June 2018.
  12. ^ Faught, D.R. (5 November 2004). "Keyword-Driven Testing". StickyMinds. TechWell Corp. Retrieved 24 June 2018.
  13. ^ a b c d Krill, P. (22 August 2014). "Software testers balk at ISO 29119 standards proposal". InfoWorld. IDG Communications, Inc. Retrieved 24 June 2018.
  14. ^ a b Demman, J. (9 September 2014). "Software testers petition to stop ISO 29119". TechTarget SearchSoftwareQuality. TechTarget, Inc. Retrieved 24 June 2018.
  15. ^ a b c McCowatt, I. (24 August 2014). "STOP 29119". Exploring Uncertainty: A Software Testing Blog. Retrieved 24 June 2018.
  16. ^ a b c Bach, J. (25 August 2014). "How Not to Standardize Testing (ISO 29119)". Satisfice Blog. Satisfice, Inc. Retrieved 24 June 2018.
  17. ^ a b c Kaner, C. (28 August 2014). "Please sign the Petition to Stop ISO 29119". context-driven-testing.com. Retrieved 24 June 2018.
  18. ^ a b c d e "The ISO29119 debate". Association for Software Testing. 5 September 2014. Retrieved 24 June 2018.
  19. ^ a b "Petition against ISO 29119". International Society for Software Testing. 19 August 2014. Archived from the original on 8 February 2017. Retrieved 24 June 2018.
  20. ^ Marnane, T.; Reid, S. (10 September 2014). "Response to Stop 29119 Petition". SoftwareTestingStandard.org. Retrieved 24 June 2018.{{cite web}}: CS1 maint: multiple names: authors list (link)