Monday, September 15, 2014

Can software testing be confined to a Standard (ISO 29119) ?

Few days back, through a testing contest got to know about a testing standard i.e. ISO 29119. Coming from Quality and testing background curiosity took over me and drove me to make an honest attempt to see what this standard is all about and why is so much debate? (even James Bach whom I admire the most has also blogged about this standard). Midway through the read about standard felt as if this standard is going to kill all the freedom and creativity from my work. Here is what I understand from the notorious long documentation of the ISO 29119.

The software testing standard, ISO 29119, currently as we stand has five different categories:

Concepts and Terminology: Its aim is to facilitate understanding and use of all other standards in the other 4 other areas. Describes common terminology/vocabulary to the concepts of software testing and ways to apply the processes, documents and techniques.

Test Process: It’s a process for testing that can be used within any software development life cycle. The model specifies test processes that can be used to govern, manage and implement software testing in any organization, project or testing activity.

Test Documentation: Here ISO comes up with templates for test documentation that cover the entire software testing life cycle. Each template could be adapted to suit the unique needs of each organization implementing the standard. All templates aligning to the test process defined earlier and can be produced by applying the processes that are defined in that standard.

Test Techniques: One international standard covering software test design techniques that can be used during the test design and implementation process within any organization or software development life cycle model. The test design techniques that are presented in this standard can be used to derive test cases and requirements, boundary conditions etc… of each system/application under test.

Keyword-Driven Testing: It’s a way of describing 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. By using keywords to describe test steps instead of natural language, test cases can be easier to understand, to maintain and to automate. So ISO defines here one international standard for supporting keyword-driven testing.

Additionally to the above five different categories, ISO 29119 has also brings a process model called ‘Process Assessment model which talks and defines how to perform process assessments.

During the time I was writing all this stuff on the standard, it reminded me of an often argument that I have with development colleagues of mine; that development is all about sticking to requirement, specification, developing accordingly and nothing more but while in testing there is no standard way to perform software testing. Testing gives freedom and creativity to explore the product and form your own journey and during this journey of testing you learn about product, its function, its advantages, its shortcomings etc but ISO 29119 is killing all of this.

As a professional software tester I believe,

  • That standards compliance is no substitute for knowledge and skills, and that possessing a certificate demonstrates neither.
  • There is no such process called best practice as best practice will make you a part of the herd and not innovating and leading the pack,standards will limit the quality of the solution or product or service you are involved.
  • Testing benefits from diversity and not homogeneity, that testing is not a profession that can be standardized but instead needs to remain an intellectual professional activity
  • Organizations that use certification as a surrogate for rigorous selection processes places the quality of their testing at risk.
  • Organization who make money from creating or promoting standards and certifications are biased in their thinking by the potential financial rewards of convincing organizations that only certified testers are professional testers. Those organizations may include those who sell training, consulting or other related services. 

So what’s problem with ISO 29119 standard ?

  • There is no standard way to test software. As testers, we learn and adapt to the context in which software is made, there no one way to test software.
  • ISO 29119 requires a commitment to heavy, advanced documentation. In practice, this documentation effort is largely wasted and serves as a distraction from useful preparation for testing.
  • There is no consensus; ISO 29119 ignores many leading authors, pioneers, respected names in the area of software testing as they are from different school of thinking. You could see in the reference section of this post most top testing names have opposed ISO 29119. Any way you look at it, there is no consensus. 
  • Hampers collaboration in multi-disciplinary teams, imagine a Tester in Scrum team who follows the rules and guidelines of ISO 29119 while the rest of the team marches on, will this not affect the collaboration? Will the tester fit in the team anymore? 
  • Where is the proof that this "standard" works any better than, did anyone even *test* the theories that support this "standard"? 
  • ISO 29119 focus is on the terminologies, artifacts, definitions and the process model while de-center the most important part of any testing effort i.e. the skill set and the mindset of the individual tester. 
  • Field of software testing has yet not reached its peak, there is so much more to learn, so many more situations to understand,many more techniques to discover. ISO Standards will put a spanner to all these things.

There are many more things that are detrimental to software testing from this proposed ISO 29119 Standard as evident from many blogs and petition which has hundreds of signatures already.This blog post along with signing of petition puts me on record as opposing the ISO 29119 standard.

_________________________________________________________________________

For those who agree, here are few hints:
_________________________________________________________________________

More on ISO 29119
_________________________________________________________________________

References