What is ISO 29119? ISO 29119 is a set of standards for software testing which can be used within software development life cycle. We would be able to adopt the recognized and agreed standards for software testing which will provide us with a high quality approach for testing by implementing these standards. This ISO standard contains five standards within it.
Below are five standards
- Concepts & Definitions: It provides definitions, description of the concepts of the software testing and ways to apply the processes, documents and techniques.
- Test Processes: It aims to define a generic process model which specifies test processes that can be used to manage, govern and implement software testing.
- Test Documentation:It aims to define templates for test documentation that covers entire software testing life cycle.
- Test Techniques : It defines a standard for software test design techniques also called as test methods. These test design techniques can be used to derive test cases which can be used to collect evidence that the requirement of each system under test have been met and/or that defects are present.
- Keyword –Driven: It defines a standard which describes test cases by using a predefined set of keywords. These keywords are names which are associated with a set of actions that are required to perform a specific step in a test case.
Why say no to “ISO 29119”?
Testing is an art. One should not restrict himself to the standards of the testing. The only true measurement of testing is a skill exhibited in live practice. ISO 29119 is not a standard for testing but for documentation of testing. These standards promote excessive documentation over actual testing thus affecting the quality of testing by taking away time from testing. In this fastest growing technical world, the development life cycle is very short and most of the organizations follow agile, but this standard which has excessive documentation over actual testing thus affecting the quality of testing by taking away time from the process.
Software testing provides an objective and independent view of the software to understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding defects. As the number of possible tests for even simple software components is practically infinite, all software testing uses some strategy to select tests that are feasible for the available time and resources.
Software testing can be conducted as soon as executable software exists. The overall approach to software development often determines when and how testing is conducted. For example, in a phased process, most testing occurs after system requirements have been defined and then implemented in testable programs. In contrast, under an Agile approach, requirements, programming, and testing are often done concurrently. A primary purpose of testing is to detect software failures so that defects may be identified and corrected at early stages. Testing process ensures that a product functions properly under all conditions.
In today’s emerging competitive world, the Products releasing to the market should be more Qualitative for the usage. The Testing should be done at each and every stage of development, which is called as unit testing and as well continuous Integration testing is performed by integrating code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. These processes are automated so as to reduce the manual effort.
A workshop was conducted for half a day which included two teams of size four each in order to test a simple software, one team following the ISO 29119 standard for testing and the other team following the normal test approach.The non ISO test team performed various test techniques such as Exploratory testing, Boundary value analysis and Cause effect graph testing. The results of the same are displayed in the bar chart below.
Workshop Results :
x-axis : Test steps ; y-axis : Time in hours
From the above observations, the errors found is more in non ISO team than in the ISO team and also the effort and time consumed by the non ISO team is comparatively less whereas the test coverage is more.
Thus, the ISO 29119 would not be suitable since we follow agile methodology in our test activities. And we use various test techniques such as exploratory testing, all pairs testing, boundary value analysis, decision making, one cannot restrict to follow the standards of ISO 29119 as these test techniques require certain expertise on the product whichever is relevant. There are certain basic scenarios which have to be tested on a daily basis or during regression tests which are usually automated to reduce the manual effort and thus the time. These cannot be performed if we follow the ISO 29119 standard as it consumes more time for the documentation than actual testing.
Blog by :
Reshma Jayadeva Prakash
Jyoti D Chalikar