I started my career in IT 15 years ago as a developer. By 2001 I had developed a passion for software testing and quality practices at all levels of an organization. Over the years I have benefited from being in numerous roles across the SDLC including operational and management roles. Interestingly enough in each competency there is pressure to follow and implement industry best practices.
Many years back I became conscious of my aversion to the concept of industry best practices. I realized that I was constantly adapting my approach with every organization and by project. My experience had shown that the needs of the organization, combined with the goals and complexities of the project would direct the most appropriate approach.
Several years ago I was introduced to the ideas of several industry thought leaders including James Bach, Cem Kaner, and Michael Bolton. Among my many ah-ha moments and the new perspectives I have gained, is the concept of Context-Driven Testing. The basis for this approach is to respond to the needs of the organization and the project opposed to applying “best practices” which may not be “best” given the context.
The ideas around context-driven testing have been formalized into the Context-Driven School of Software Testing. There are seven basic principles of the Context-Driven School.
- The value of any practice depends on its context.
- There are good practices in context, but there are no best practices.
- People, working together, are the most important part of any project’s context.
- Projects unfold over time in ways that are often not predictable.
- The product is a solution. If the problem isn’t solved, the product doesn’t work.
- Good software testing is a challenging intellectual process.
- Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.
The concept and principles of context-driven testing really resonated with me based on my past experiences. Recently I learned there are several important contrasts to the concept of context-driven testing including:
These contrasts are outlined in Cem Kaner’s blog entry “What is Context-Driven Testing?”. Cem’s blog includes invaluable insight into context-driven testing and great examples to clarify each of the contrasts. An interesting realization for me in understanding the contrasts, was recognizing there have been times when I have been lulled into being context-aware instead of remaining context-driven. Yikes! Often these slips in perspective resulted from management pressure to achieve industry recognized certifications by stamping the corporate practices with “best practice” labels. Today I have increased confidence in my ability to identify and articulate “good-fit practices” over prescriptive “best practices”.
I encourage all software testers to learn about the concept of context-driven testing. I believe transitioning to the context-driven approach can be a very influential step to dramatically increasing the value of your testing.