August 6, 2014
ISO/IEC/IEEE 29119: Creating a standard approach to test software
Serious businesses wear their standards certifications with pride and consider them a sign of their dedication to the profession and their commitment towards a delivering an excellent product or service to their customers.
A standard makes it easier to communicate, to introduce new team members, to get teams working in the same manner, and to generally be more streamlined in your operation.
Organisations such as ISO create standards, as this is a better way of introducing a stardardized way of working so that you do not have to reinvent the wheel, and rather, work in a proven way.
Unfortunately, software testing is plagued by many divergences in definitions, processes and procedures.
It lacks a common ground that permits an accurate comparison between different teams and practitioners are often at a loss as to which standard they should apply in their work.
But this is all set to change thanks to ISO/IEC/IEEE 29119.
One standard to rule them all
ISO/IEC/IEEE 29119 is a new standard series that seeks to become the common language of software testing organisation. It comprises a set of five standards that have been internationally agreed upon and can be applied within any software development life cycle.
This series has been developed by ISO/IEC JTC1/SC7 Working Group 26 over the past seven years.
Once all the five parts making up this standard are finalised, it will provide a new international standard that replaces the confusing and often conflicting ones that are currently in circulation with a uniform way of conducting software testing.
In the next sections, we will look at the component standards in the series which are illustrated in Figure 1 below.
ISO/IEC 29119-1: Concepts & Definitions
The basis of any form of understanding is a common language between people.
For this reason the first standard in the series, 29119-1, aims to introduce and define the vocabulary that relates to different software testing concepts and the roles and responsibilities in testing, and with which the rest of the standards are described.
This isn’t as abstract as it sounds. In fact, 29119-1 also includes specific examples of the application of each concept it describes in practice.
The first part was published in September 2013 and is a very informative standard that should be read and digested thoroughly before attempting to apply the processes and techniques that are listed in the other standards of the series.
ISO/IEC 29119-2: Test Processes
The second in the series proposes a general model covering the steps from developer testing, all the way to acceptance testing,that can be easily implemented within any software development life cycle.
29119-2 describes a process of software testing that is based on a three-layer model which can be adapted in any scenario.
- Organisational test specifications (e.g. organisational test policies and strategies);
- Test management;
- Dynamic testing
This standard uses a risk-based approach which is widely considered the best type of approach to strategise and manage testing since it permits testers to prioritise the most important components of the system that is tested.
29119-1, which was published in September 2013, will also work hand in hand with ISO/IEC 33063 (still being drafted) which seeks to define a process assessment model for software testing. The latter will comprise a number of indicators to consider when evaluating a process for improvement or selection.
ISO/IEC 29119-3: Test Documentation
29119-3, also published in September 2013, aims to create templates for test documentation, including test plans, test reports and bug reports that are wide enough in scope to cover the whole of the software testing life cycle.
Each template can be modified to suit the requirements of individual organisations and to fit with any life cycle model.
These templates build upon the testing process defined in the previous standard and are based on the popular IEEE 829 test documentation standard which they supersede.
ISO/IEC 29119-4: Test Techniques
The fourth standard in the series is currently in a draft international standard. The aim 29119-4 is to serve as an international standard that covers software test design techniques that be employed during the test design and implementation phases within the development cycle.
The design techniques in this standard are classified into three categories, namely specification-based testing techniques (e.g. equivalence partitioning and random testing), structure-based testing techniques (e.g. statement and branch testing), and experience-based testing techniques such as error guessing. Each type of testing technique can be used to ascertain that high-quality test cases are written and to detect any errors that may be present.
This standard is based on and supersedes the BS-7925-2 standard which was provided by the British Standards Institution for component testing.
ISO/IEC 29119-5: Keyword Driven Testing
Finally, 29119-5, which is still being actively drafted, serves to define a standard for keyword-driven testing.
This is a particular technique for describing test cases by using a set of keywords that refer to actions which have to be executed during a test case.
By adopting a set of keywords instead of describing the actions necessary in natural languages, test cases become shorter, simpler to understand and easier to maintain and automate.
Working together to shape the future of software testing
ISO/IEC/IEEE 29119 is intended to become a generic standard that can support any software development life cycle and be applicable in any organisation.
However, there is still the need for extensive trialing in the different domains it covers and in a diverse range of project types to confirm its applicability to sequential, iterative and agile scenarios.
If your company can help in the testing of the 29119 standard, you can join one of the working groups within your national standards body to contribute to meetings and review drafts.
This standard has received an overwhelming amount of interest and there have been over 1,000 comments made so far about 29119 from contributing members in 18 countries.
When it is finalised in 2015, ISO/IEC/IEEE 29119 will be an international standard that provides testing professionals with guidelines that cover every part of the development life cycle.
It will be adopted by major standards bodies and will offer a uniform set of definitions, process and techniques which help to increase the quality of the work done by software testing professionals worldwide.