Welcome to context-driven-testing.com.

The context-driven approach was initially developed by:

Bret, James and I (with the support of several wonderful colleagues) declared this a “school” in 2001 (Lessons Learned in Software Testing). At that time, I established this site as a home page for the school.

When you land on this site, you see the context-driven-testing.com landing page (the Principles) as it was when we originally published it. I’ll keep it that way (with the same set of Principles), because several people have found it useful.

However, over the past 11 years, the founders have gone our separate ways. We have developed distinctly different visions. If there ever was one context-driven school, there is not one now. Rather than calling it a “school”, I prefer to refer to a context-driven approach.

Presenting our approach as a school was a useful rhetorical tool:

  • It gave us a way to collect some of our ideas and present them as if they were a part of a unified framework. The work involved in this helped us polish those ideas for ourselves and make them clearer for others.
  • It created a challenge to others: Why don’t you collect some of your ideas and present those as a unified framework?
  • It created a potential for clearer and more productive discussion, and from that, the potential for evolution to the next set of ideas and the next framework.

This notion of evolution comes with a built-in assumption: If my thinking will evolve to something else in the future, it must be wrong today. Progress on my path to better understanding and practice of testing (and of anything else that I’m serious about) includes discovering what needs to be changed in my thinking, and changing it.

This is an important aspect of science. We don’t run experiments to confirm what we already know. We run experiments to prove that what we think we already know is wrong. And to help us develop something better.

So where does progress come from?

  • Some will come from trying things out and watching them fail (and inquiring into how they fail).
  • Some will come from learning new skills, new facts, new models and new theoretical insights.
  • And a lot of it will come from struggling to understand ideas that seem to directly contradict mine. Some of my best insights have come when I realized what was right about an idea that I had repeatedly rejected as wrong. This is often called a dialectical approach to thinking or reasoning.

I studied the dialectical approach as an undergraduate, in the writings of Hegel and in coursework on the philosophy of education that has guided my approach to learning for over 40 years.

For me, the intellectual benefit of declaring a school lies in the controversy it generates.

The controversy makes it harder for you and me to speak in vague ways that gloss over our differences. Instead of trying to appeal to everyone and offend no one, we speak more specifically about how we approach problems, what techniques we use, what types of information we pay attention to and what types of information we generate. In the course of this, we probably also reveal a lot about our values.

The controversy creates articulated contrasts, which create opportunities for the emergence of better ideas.

The risk of declaring a school is polarization: If we won’t listen to each other, we can’t learn from each other. And with that, you can kiss the dialectic goodbye.

Back in 1978, Newt Gingrich kicked off a revolution in the Republican Party with statements like, “One of the great problems we have in the Republican Party is that we don’t encourage you to be nasty.” Polarization is at the core of power for demagogues and fanatics. It sells stunningly well. But it destroys the societies that embrace it. While I was drafting legislation on electronic commerce and software liability in the 1990’s, I got to see firsthand the impact of what people then (including Republicans who liked it) were calling the Gingrich Revolution. What had been a promising collection of efforts turned to dust as people stopped listening to each other’s viewpoints and stopped accepting each other’s legitimacy. Twenty years later, we have all but lost the ability to govern.

Controversy good. Polarization bad.

In a socioeconomic milieu that seems bent on becoming even more polarized, it is no surprise that some of the rhetoric within the software testing community has been going that way too. It sells well. It gets people excited. But I don’t see how polarization will help us make products safer and more pleasant to use or improve our working conditions as we make those products.

My goal for this site is a self-critical discussion of the context-driven approach that makes the dialectic a little more visible.

This site is not a replacement for my main site (and main blog), kaner.com. At this point in my career, I am more focused on how people develop software testing skills than on the Grand Questions of software testing:

  • As it relates to software testing, kaner.com is about advancing the state of the practice by refining the technical theory of testing, the practical techniques of testing, and and how we teach them and use them.
  • This site is more about how we talk to each other about the role and value of our work, and the ways we interact with each other and our clients.

I welcome guest posts that describe other variations of this approach or other approaches. If you’d like to submit one, email me at [email protected].

— Cem Kaner, 2012