By James Bach
The Context-Driven School of software testing is a way of thinking about testing, AND a small but world-wide community of like-minded testers. There are other, larger, schools of testing thought. But CDT represents my paradigm of testing. By paradigm, I mean an organizing worldview, an ontology, a set of fundamental beliefs. When I say CDT is my paradigm, I mean that I believe all rational, educated people should want to understand testing in terms of the precepts of the Context-Driven School. This is like saying that I believe every rational, educated person should believe in microbes, atoms, genetics, and that the Sun does not revolve around the Earth. If you don’t believe those things, I can still like you, I just won’t hire you as a scientist.
CDT is not a style of testing. It’s not a toolbox of methods. It’s more fundamental than that. You could think of CDT partly as an ethical position about testing. All methods or styles are available to Context-Driven people, but our selection of methods and reactions to testing situations are conditioned by our ethical position. This position is defined here. It’s also exemplified in the book Lessons Learned in Software Testing.
It’s a Way of Thinking AND a Community
CDT can be confusing for several reasons. One is that it has a dual nature. It’s a way of thinking as well as a community of people. Let me try to sort that out.
Anyone who thinks and works by the precepts of the Context-Driven School is a member of the school, whether or not they know that or acknowledge it. And if they think and work by principles that are similar, then they are a member of some other similar school that may or may not have a name. And if they think and work by principles that are hostile to CDT, then they are a member of some other school of thought, entirely. A “school of thought” is a pattern of thinking that at least one person engages in.
If you don’t know what you think about testing– if you have no beliefs, habits, understanding, etc.– then I guess you are not part of any school of thought. Otherwise, you are. Don’t whinge about it.
HOWEVER, what if you aren’t a “joiner” and you don’t want to be seen as “belonging” to any particular testing community. There are a lot of testers like that. Okay then, you can say that you’re not a member of any school of testing. You can even say that the whole idea of schools bothers you. If that’s your feeling, then I bet what’s happening is that you are reacting to CDT as a community, rather than as a worldview. But in the end, unless you just have no ideas and beliefs at all, you don’t have the option of living without a way of thinking. You only have the option of not describing and labeling that way of thinking, or not associating with people who think of testing in the same way as you do.
Why Have “Schools of Testing?”
It saves a lot of time and energy to acknowledge that there are basic differences and controversies in the craft of testing. We can acknowledge that and move on.
Here’s an example: A particular woman wrote a book with the word “testing” in the title. But her work does not bear upon my work. She uses assumptions and definition of words that I reject. In a very real and practical sense, I don’t actually consider her to be a tester, although she would say that she is. Given that, I don’t bother to attack her ideas. I don’t bother to find common ground. There is no interesting common ground between dissimilar paradigms of testing. I imagine she feels the same way toward me.
She has a perfect right to publish and speak at testing conferences. But I’m going to ignore her, pretty much. My shorthand for that is to say that she belongs to a different school of testing. I might characterize her school in general terms, sure. I might say she’s from the Agile School or the Factory School or the Quality Control School (in fact there are three different women I’m thinking of, each of whom has written a book with testing in the title, whom I would describe that way). That’s about all I’m going to do.
I save my energy by working within my school to deepen the testing craft as I see it. I comment on other schools rarely, and when I do the motivation is usually to prevent my readers and clients from thinking that there is only one school of testing thought. This is not the same thing as saying that all of us inside a school have to agree. In fact, one of the basic values of CDT is that we argue with each other. We challenge each other. We do have difference styles of testing and different opinions about practices.
A second reason I like the schools concept is that it helps me quickly establish my reputation with someone new. “I’m a context-driven tester. Go and Google that.”
The Basic Idea of Context Driven Testing
Here is the basic idea: Because testing (and any engineering activity) is a solution to a very difficult problem, it must be tailored to the context of the project, and therefore testing is a human activity that requires a great deal of skill to do well. That’s why we must study it seriously. We must practice our craft. Context-driven testers strive to become the Jedi knights of testing.
Aside from the idea, this is also a community. It is a world-wide movement. The most prominent leaders within the CDT school include: Cem Kaner, James Bach, Jon Bach, Michael Bolton, Doug Hoffman, Paul Holland, Matt Heusser, Mike Kelly, Rob Sabourin, Ben Simo, Henrik Andersson, Ajay Balamurugadas, Shrini Kulkarni, Pradeep Soundararajan, Bernie Berger, Selena Delesie, Sajjadul Hakim, Julian Harty, Karen Johnson, Jonathan Kohl, Tobbe Ryber, Meeta Prakash, S. Dhanasekar, and Jerry Weinberg. I may have left a few people out. This list is off the top of my head.
(At the time we declared ourselves, Jerry Weinberg told me he’s not a member of the school. Except that, philosophically, I think he really is. Just by being himself and doing his own thing, Jerry’s work has been a beacon for the context-driven crowd. I consider what I do to be an ongoing reference to the life work of two people: Jerry Weinberg and the late Herbert Simon. I try to honor them by being a good tester.)
It’s not a Priesthood
Context-Driven Testing is an open community in the sense that anyone can speak up and contribute. The way you become leader in our circle is by having ideas, offering them publicly, and engaging in debate about them. Then, as your ideas are tested, you earn your reputation. I just met a fellow named Vernon Richards, for instance. He spoke up during the Nottingham Testers Gathering, and I was impressed with his questions, comments, and general attitude. He spoke with warmth and conviction. See? I didn’t even know who he was, and now I’m talking about him. That’s what I mean by reputation. It’s a start. I’d like to see him share more of his experiences at conferences.
The CAST 2011 Conference is All About Context-Driven Testing
If you look carefully at the innovations in testing practice and thought, I bet you’ll notice that most of them are coming from the Context-Driven community. And the CAST 2011 conference is the first conference devoted to the ideas. My next post will be about that.
Category: Context-Driven Testing, Testing Culture