ISO/IEC/IEEE 29119-1:2013
(Main)Software and systems engineering — Software testing — Part 1: Concepts and definitions
Software and systems engineering — Software testing — Part 1: Concepts and definitions
The purpose of the ISO/IEC/IEEE 29119 series of software testing standards is to define an internationally-agreed set of standards for software testing that can be used by any organization when performing any form of software testing. ISO/IEC/IEEE 29119-1:2013 facilitates the use of the other ISO/IEC/IEEE 29119 standards by introducing the concepts and vocabulary on which these standards are built, as well as providing examples of its application in practice. ISO/IEC/IEEE 29119-1:2013 is informative, providing a starting point, context, and guidance for the other parts.
Ingénierie du logiciel et des systèmes — Essais du logiciel — Partie 1: Concepts et définitions
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC/
STANDARD IEEE
29119-1
First edition
2013-09-01
Software and systems engineering —
Software testing —
Part 1:
Concepts and definitions
Ingénierie du logiciel et des systèmes — Essais du logiciel —
Partie 1: Concepts et définitions
Reference number
ISO/IEC/IEEE 29119-1:2013(E)
©
ISO/IEC 2013
©
IEEE 2013
---------------------- Page: 1 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2013
© IEEE 2013
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from ISO, IEC or IEEE at the respective
address below.
ISO copyright office IEC Central Office Institute of Electrical and Electronics Engineers, Inc.
Case postale 56 3, rue de Varembé 3 Park Avenue, New York
CH-1211 Geneva 20 CH-1211 Geneva 20 NY 10016-5997, USA
Tel. + 41 22 749 01 11 Switzerland E-mail stds.ipr@ieee.org
Fax + 41 22 749 09 47 E-mail inmail@iec.ch Web www.ieee.org
E-mail copyright@iso.org Web www.iec.ch
Web www.iso.org
Published in Switzerland
© ISO/IEC 2013 – All rights reserved
ii © IEEE 2013 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
Contents Page
Foreword . v
Introduction . vi
1 Scope . 1
2 Conformance . 1
3 Normative references . 1
4 Terms and definitions . 1
5 Software Testing Concepts . 12
5.1 Introduction to Software Testing . 12
5.1.1 The Role of Testing in Verification and Validation . 14
5.1.2 Exhaustive Testing . 14
5.1.3 Testing as a Heuristic . 14
5.2 Software Testing in an Organizational and Project Context . 14
5.2.1 The Test Process . 17
5.3 Generic Testing Processes in the Software Life cycle . 19
5.3.1 Development Project Sub-processes and their Results . 20
5.3.2 On-going Maintenance and its Results . 21
5.3.3 Support Processes for the Software Development Life Cycle . 22
5.4 Risk-based Testing . 24
5.4.1 Using Risk-Based Testing in the Organizational Test Process . 25
5.4.2 Using Risk-Based Testing in the Test Management processes . 25
5.4.3 Using Risk-Based Testing in the Dynamic Testing processes . 25
5.5 Test Sub-process . 26
5.5.1 Test Objectives . 26
5.5.2 Test Item . 27
5.5.3 Testing of Quality Characteristics . 27
5.5.4 Test Basis . 28
5.5.5 Retesting and Regression Testing . 29
5.5.6 Test Design Techniques . 29
5.6 Test Practices . 30
5.6.1 Introduction . 30
5.6.2 Requirements-Based Testing . 31
5.6.3 Model-Based Testing . 31
5.6.4 Mathematical-Based Testing . 32
5.6.5 Experience-Based Testing . 32
5.6.6 Scripted and Unscripted Testing . 33
5.7 Automation in Testing . 34
5.8 Defect Management . 34
Annex A (informative) The Role of Testing in Verification and Validation . 35
Annex B (informative) Metrics and Measures . 36
B.1 Metrics and Measures . 36
Annex C (informative) Testing in Different Life Cycle Models . 37
C.1 Overview . 37
C.2 Agile Development and Testing . 37
C.2.1 Agile Development Principles . 37
C.2.2 Test Management in Agile Development . 38
C.2.3 Test Sub-processes in Agile Development. 39
C.3 Sequential Development and Testing . 40
C.3.1 Sequential Development Principles . 40
© ISO/IEC 2013 – All rights reserved
© IEEE 2013 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
C.3.2 Test Management in Sequential Development .40
C.3.3 Test Sub-processes in Sequential Development .41
C.4 Evolutionary Development and Testing .41
C.4.1 Evolutionary Development Principles .41
C.4.2 Test Management in Evolutionary Development .42
C.4.3 Test Sub-processes in Evolutionary Development .42
Annex D (informative) Detailed Test Sub-process Examples .44
D.1 Overview .44
D.2 Acceptance Test Sub-process .45
D.3 Detailed Design Test Sub-process .45
D.4 Integration Test Sub-process .46
D.5 Performance Test Sub-process .48
D.6 Regression Test Sub-process .49
D.7 Retest Test Sub-process .51
D.8 Story Set Test Sub-process .51
D.9 Story Test Sub-process .51
D.10 System Test Sub-process .52
D.11 Component Test Sub-process .53
Annex E (informative) Roles and Responsibilities in Testing .54
E.1 Testing Roles .54
E.2 Communication in Testing .54
E.3 Independence in Testing .54
Bibliography .56
© ISO/IEC 2013 – All rights reserved
iv © IEEE 2013 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees established
by the respective organization to deal with particular fields of technical activity. ISO and IEC technical
committees collaborate in fields of mutual interest. Other international organizations, governmental and non-
governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO
and IEC have established a joint technical committee, ISO/IEC JTC 1.
IEEE Standards documents are developed within the IEEE Societies and the Standards Coordinating
Committees of the IEEE Standards Association (IEEE-SA) Standards Board. The IEEE develops its standards
through a consensus development process, approved by the American National Standards Institute, which
brings together volunteers representing varied viewpoints and interests to achieve the final product. Volunteers
are not necessarily members of the Institute and serve without compensation. While the IEEE administers the
process and establishes rules to promote fairness in the consensus development process, the IEEE does not
independently evaluate, test, or verify the accuracy of any of the information contained in its standards.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of ISO/IEC JTC 1 is to prepare International Standards. Draft International Standards adopted
by the joint technical committee are circulated to national bodies for voting. Publication as an International
Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is called to the possibility that implementation of this standard may require the use of subject matter
covered by patent rights. By publication of this standard, no position is taken with respect to the existence or
validity of any patent rights in connection therewith. ISO/IEEE is not responsible for identifying essential
patents or patent claims for which a license may be required, for conducting inquiries into the legal validity or
scope of patents or patent claims or determining whether any licensing terms or conditions provided in
connection with submission of a Letter of Assurance or a Patent Statement and Licensing Declaration Form, if
any, or in any licensing agreements are reasonable or non-discriminatory. Users of this standard are expressly
advised that determination of the validity of any patent rights, and the risk of infringement of such rights, is
entirely their own responsibility. Further information may be obtained from ISO or the IEEE Standards
Association.
ISO/IEC/IEEE 29119-1 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 7, Software and systems engineering, in cooperation with the Software & Systems
Engineering Standards Committee of the IEEE Computer Society, under the Partner Standards Development
Organization cooperation agreement between ISO and IEEE.
ISO/IEC/IEEE 29119 consists of the following standards, under the general title Software and systems
engineering — Software testing:
Part 1: Concepts and definitions
Part 2: Test processes
Part 3: Test documentation
Part 4: Test techniques
© ISO/IEC 2013 – All rights reserved
© IEEE 2013 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
Introduction
The purpose of the ISO/IEC/IEEE 29119 series of software testing standards is to define an internationally-
agreed set of standards for software testing that can be used by any organization when performing any form
of software testing.
It is recognized that there are many different types of software, software organizations, and methodologies.
Software domains include information technology (IT), personal computers (PC), embedded, mobile, and
scientific and many other classifications. Software organizations range from small to large, co-located to
world-wide, and commercial to public service-oriented. Software methodologies include object-oriented,
traditional, data driven and agile. These and other factors influence software testing. This series of
international standards can support testing in many different contexts.
This part of ISO/IEC/IEEE 29119 facilitates the use of the other ISO/IEC/IEEE 29119 Software Testing
standards by introducing the vocabulary on which this series of international standards are built and provides
examples of their 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 this part of
ISO/IEC/IEEE 29119 and guidance for the other parts.
Initially, general software testing concepts are discussed. The role of software testing in an organizational and
project context is described. Software testing in a generic software life cycle is explained, introducing the way
software test processes and sub-processes may be established for specific test items or with specific test
objectives. It describes how software testing fits into different life cycle models. The use of different practices
in test planning is demonstrated; as well as how automation can be used to support testing. The involvement
of testing in defect management is also discussed. Annex A describes the role of testing within the larger
scope of verification and validation. Annex B provides a brief introduction to metrics used to monitor and
control testing. Annex C contains a set of examples showing how to apply the standard in different life cycle
models. Annex D provides examples on detailed test sub-processes. Annex E provides additional information
on the roles and responsibilities typically encountered in test groups and tester independence. Finally, the
Bibliography is at the end of the document.
Note that Title Case is used throughout this part of ISO/IEC/IEEE 29119 to denote processes and documents
that are specified in ISO/IEC/IEEE 29119-2 and ISO/IEC/IEEE 29119-3 (e.g. Test Planning Process, Test
Plan), whereas lowercase letters are used for documents that form parts of other documents (e.g. the project
test strategy is an element of the Project Test Plan).
The test process model that the ISO/IEC/IEEE 29119 series of software testing standards are based on is
defined in detail in ISO/IEC/IEEE 29119-2 Test Processes. ISO/IEC/IEEE 29119-2 covers the software testing
processes at the organizational level, test management level and for dynamic test levels. Testing is the
primary approach to risk treatment in software development. This standard defines a risk-based approach to
testing. Risk-based testing is a recommended approach to strategizing and managing testing that allows
testing to be prioritized and focused.
Templates and examples of test documentation that are produced during the testing process are defined in
ISO/IEC/IEEE 29119-3 Test Documentation. Software testing techniques that can be used during testing are
defined in ISO/IEC/IEEE 29119-4 Test Techniques.
Together, this series of international standards aims to provide stakeholders with the ability to manage and
perform software testing in any organization.
© ISO/IEC 2013 – All rights reserved
vi © IEEE 2013 – All rights reserved
---------------------- Page: 6 ----------------------
INTERNATIONAL STANDARD ISO/IEC/IEEE 29119-1:2013(E)
Software and systems engineering — Software testing —
Part 1:
Concepts and definitions
1 Scope
This part of ISO/IEC/IEEE 29119 specifies definitions and concepts in software testing. It provides definitions
of testing terms and discussion of concepts key to the understanding of the ISO/IEC/IEEE 29119 series of
software testing international standards.
2 Conformance
ISO/IEC/IEEE 29119-1 is informative and no conformance with it is required.
The ISO/IEC/IEEE 29119 software testing series of standards contain three standards where conformance
may be claimed:
test processes;
test documentation;
test techniques.
Conformance is addressed in ISO/IEC/IEEE 29119-2, ISO/IEC/IEEE 29119-3 and ISO/IEC/IEEE 29119-4.
3 Normative references
This document does not require the use of any normative references. Standards useful for the implementation
and interpretation of this part of ISO/IEC/IEEE 29119 are listed in the Bibliography.
4 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO/IEC/IEEE 24765 and the following
apply.
NOTE The following terms and definitions are provided to assist with the understanding and readability of parts 1, 2,
3 and 4 of the ISO/IEC/IEEE 29119 Software Testing standards so some terms defined in ISO/IEC/IEEE 29119-1 will not
be used in ISO/IEC/IEEE 29119-1 and will only be used in another standard in the ISO/IEC/IEEE 29119 series. Only terms
critical to the understanding of these standards are included; this clause is not intended to provide a complete list of
testing terms. The systems and software engineering Vocabulary ISO/IEC/IEEE 24765 should be referenced for terms not
defined in this clause. This source is available at the following web site: http://www.computer.org/sevocab.
© ISO/IEC 2013 – All rights reserved
© IEEE 2013 – All rights reserved 1
---------------------- Page: 7 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
4.1
accessibility testing
type of usability testing used to measure the degree to which a test item can be operated by users with the
widest possible range of characteristics and capabilities
4.2
actual results
set of behaviours or conditions of a test item, or set of conditions of associated data or the test environment,
observed as a result of test execution
EXAMPLE Outputs to hardware, changes to data, reports, and communication messages sent.
4.3
backup and recovery testing
type of reliability testing that measures the degree to which system state can be restored from backup within
specified parameters of time, cost, completeness, and accuracy in the event of failure
4.4
black-box testing
see specification-based testing (4.39)
4.5
capacity testing
type of performance efficiency testing conducted to evaluate the level at which increasing load (of users,
transactions, data storage, etc.) compromises a test item’s ability to sustain required performance
4.6
compatibility testing
type of testing that measures the degree to which a test item can function satisfactorily alongside other
independent products in a shared environment (co-existence), and where necessary, exchanges information
with other systems or components (interoperability)
4.7
coverage item
see test coverage item (4.54)
4.8
decision
types of statements in which a choice between two or more possible outcomes controls which set of actions
will result
Note 1 to entry: Typical decisions are simple selections (e.g. if-then-else), to decide when to exit loops (e.g. while-loop),
and in case (switch) statements (e.g. case-1-2-3-.-N).
4.9
dynamic testing
testing that requires the execution of the test item
4.10
endurance testing
type of performance efficiency testing conducted to evaluate whether a test item can sustain a required load
continuously for a specified period of time
© ISO/IEC 2013 – All rights reserved
2 © IEEE 2013 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
4.11
equivalence partition
subset of the range of values of a variable, or set of variables, within a test item or at its interfaces such that
all the values in the partition can reasonably be expected to be treated similarly by the test item (i.e. they may
be considered "equivalent") by the test item
4.12
equivalence partition coverage
proportion of identified equivalence partitions of a test item that are covered by a test set
Note 1 to entry: In many cases, the identification of equivalence partitions is subjective (especially in the sub-partitioning of
"invalid" partitions), so a definitive count of the number of equivalence partitions in a test item could be impossible.
4.13
equivalence partitioning
test design technique in which test cases are designed to exercise equivalence partitions by using one or
more representative members of each partition
4.14
error guessing
test design technique in which test cases are derived on the basis of the tester’s knowledge of past failures, or
general knowledge of failure modes
Note 1 to entry: The relevant knowledge could be gained from personal experience, or might be encapsulated in, for
example, a defects database or a "bug taxonomy".
4.15
expected results
observable predicted behaviour of the test item under specified conditions based on its specification or
another source
4.16
exploratory testing
experience-based testing in which the tester spontaneously designs and executes tests based on the tester's
existing relevant knowledge, prior exploration of the test item (including the results of previous tests), and
heuristic "rules of thumb" regarding common software behaviours and types of failure
Note 1 to entry: Exploratory testing hunts for hidden properties (including hidden behaviours) that, while quite possibly
benign by themselves, could interfere with other properties of the software under test, and so constitute a risk that the
software will fail.
4.17
feature set
collection of items which contain the test conditions of the test item to be tested which can be collected from
risks, requirements, functions, models, etc.
Note 1 to entry: This could be the set of all features for the item (its full feature set), or a subset identified for a specific
purpose (the functional feature set etc.).
4.18
Incident Report
documentation of the occurrence, nature, and status of an incident
4.19
installability testing
type of portability testing conducted to evaluate whether a test item or set of test items can be installed as
required in all specified environments
© ISO/IEC 2013 – All rights reserved
© IEEE 2013 – All rights reserved 3
---------------------- Page: 9 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
4.20
load testing
type of performance efficiency testing conducted to evaluate the behaviour of a test item under anticipated
conditions of varying load, usually between anticipated conditions of low, typical, and peak usage
4.21
maintainability testing
test type conducted to evaluate the degree of effectiveness and efficiency with which a test item may be
modified
4.22
Organizational Test Policy
an executive-level document that describes the purpose, goals, and overall scope of the testing within an
organization, and which expresses why testing is performed and what it is expected to achieve
Note 1 to entry: It is generally preferable to keep the Organizational Test Policy as short as possible in a given context.
4.23
Organizational Test Process
test process for developing and managing organizational test specifications
4.24
organizational test specification
document that provides information about testing for an organization, i.e. information that is not
project-specific
EXAMPLE The most common examples of organizational test specifications are Organizational Test Policy and
Organizational Test Strategy.
4.25
Organizational Test Strategy
document that expresses the generic requirements for the testing to be performed on all the projects run
within the organization, providing detail on how the testing is to be performed
Note 1 to entry: The Organizational Test Strategy is aligned with the Organizational Test Policy.
Note 2 to entry: An organisation could have more than one Organizational Test Strategy to cover markedly different
project contexts.
4.26
pass/fail criteria
decision rules used to determine whether a test item, or feature of a test item, has passed or failed after
testing
4.27
performance testing
type of testing conducted to evaluate the degree to which a test item accomplishes its designated functions
within given constraints of time and other resources
4.28
portability testing
type of testing conducted to evaluate the ease with which a test item can be transferred from one hardware or
software environment to another, including the level of modification needed for it to be executed in various
types of environment
© ISO/IEC 2013 – All rights reserved
4 © IEEE 2013 – All rights reserved
---------------------- Page: 10 ----------------------
ISO/IEC/IEEE 29119-1:2013(E)
4.29
procedure testing
type of functional suitability testing conducted to evaluate whether procedural instructions for interacting with a
test item or using its outputs meet user requirements and support the purpose of their use
4.30
product risk
risk that a product may be defective in some specific aspect of its function, quality, or structure
4.31
project risk
risk related to the management of a project
EXAMPLE Lack of staffing, strict deadlines, changing requirements.
4.32
regression testing
testing following modifications to a test item or to its operational environment, to identify whether regression
failures occur
Note 1 to entry: The sufficiency of a set of regression test cases depends on the item under test and on the modifications
to that item or its operational environment.
4.33
reliability testing
type of testing conducted to evaluate the ability of a test item to perform its required functions, including
evaluating the frequency with which failures occur, when
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.