Disclaimer (Or Before You Read Any Further)

I could be wrong about what I say. What I think is based on what I observe. This post is not to insult or offend James and Michael in any way. They are two of the key individuals in the testing experts space whom I respect I lot. This post is about a possible disconnect which I have observed w.r.t their public stance on openness to questioning and encouraging thinking minds. This post does not wish to indicate even in the slightest manner that there is a plagiarism. What they have written is their original content. This post is targeted at the thought process behind that writing. What follows are my thoughts and not of the companies that I belong to.

What Triggered This Blog Post
There is a recent post on James Bach’s blog: Testing and Checking Refined about revised thoughts on Testing versus checking. This has a very close resemblance to what I talked at TestED Conference conducted at Bangalore in Dec’2012, where James was a co-presenter. I also have had a lot of debates on this and related subjects with the Context-Driven Community in the recent years.

James did not sit through my presentation, which was an irony as I wanted him to be there. He told me later that he was with some testers in the corridor. He could have known about the contents of the talk from the any video recordings of the conference or as a part of follow up discussions with some of his students at the conference (a lot of them were there). I would give a benefit of doubt to him on this. So, what follows is purely heuristic.

The Sequence of Events

  • I have been openly expressing my disagreement with the definition of Testing vs Checking until the above mentioned post
  • I present on Testing vs Checking in a public conference for the first time, where James is a co-presenter. My concepts are openly challenged by attendees from context-driven school.
  • I see this post which almost exactly aligns with what I say about Testing vs Checking, which is significantly different from what James and Michael have been saying so far

The Coincidence(?) Part
This sequence of events can be ignored by calling it a coincidence. I say this because there is no reference to my work in James’s post. He mentions that what he and Michael have written is based on what their colleagues talked about in recent years followed by a discussion between him and Michael. This could be true.

This sequence can as well be subjected to a critical analysis. Why this post all of a sudden when a few month back, at TestED, James clearly called Checking a non-sapient activity that can be fully automated? I objected a lot to this definition of his during my talk by saying “And then James say it is a non-sapient activity”, and faced some heated comments too. As an example, Shrini Kulkarni asked why I was diverting from my presentation topic ( which ironically was the basis of my topic). I had announced at the beginning of my talk that if you go by what James say about testing vs checking, you would not be able to understand what I am going to say. So, what happened now? Why is this drastic change in the fundamental understanding of the concepts?

Some of the key points of my debate have been around the usage of word sapience applied to testing and not checking by them. The second discussion point has been about human element of checking. Third point has been about checking being a part of every form of testing whether scripted/exploratory/blended.

Let’s have a look at the slides of my presentation.

Having read their blog post and gone through the above slide deck, one can notice similarities. This is in contrast with the original work published on Michael Bolton’s blog.

Endorsing Thinkers from Indian Testing Community

Off late, James has been talking and writing a lot about thinkers in the Indian testing community. He met me during his visit to India. He suggested that the way I think, I automatically belong to his school. I politely refused to the same and mentioned that I don’t believe in belonging. It wasn’t a surprise for me that my name did not find a mention in his post-visit writings. My question is that if his goal is to encourage thinking testers from India, do they need to ‘belong’? For the same reason when they mention – “some of our colleagues”, I don’t think that I am a part of that.

Why do I bring this up here? Do I care for endorsements? No. What moves me is that my concepts have been (possibly) referred in this changed opinion about testing vs checking, without any due reference. This is not about endorsing. This is about being systematically ignored.

What do I expect?

If my thoughts have triggered this change in James and Michael’s minds, I expect an acknowledgement. I do not expect them to endorse my testing skills, my work, I just want them to acknowledge what triggered this change in their understanding for Testing vs Checking.

Irrespective of what follows, I am happy that they finally have got it right about testing vs checking. This would align more testers to this thinking especially the ones like me who disagreed with it right from its inception.


12 Responses to “Testing vs Checking – How (I Think) I Changed What James and Michael Think”

  1. James Bach

    Hi, Rahul.

    I am sorry I missed your talk. I was mobbed by some testers outside in the hall. Also, I didn’t know you wanted me to see your talk.

    Checking is a non-sapient activity. How could you say that it isn’t? We defined it to be non-sapient!

    But as we said in our article, sapience is confused with intelligence. Perhaps that is what you are doing here.

    Now we are taking a more subtle position, and time will tell how it is understood: when humans do checking they are not doing the task they say they are doing. A check is automatable in principle, but no check done by a human is truly automatable because of all the extra things we do without knowing it. Therefore, we are making a distinction between human checking, machine checking, and testing. We hope this will be a more productive breakdown.

    Oh, you can do testing without checking. This appears to contradict one of your slides.

    I don’t recall exactly what we talked about at our dinner, but I don’t think we talked about this. This post was prompted by discussions on Twitter that grew into debates among Michael and I about the exact definition of checking, and whether human activity surrounding checks should be called checking.

    If our new position makes more sense to you, I’m glad, but until we talk together, I won’t know if we are on the same page.

    • Rahul Verma


      I have expressed it earlier to you too that I was sad that you couldn’t attend my talk and you made me aware of the reason too. Now that I look back, I could have explicitly asked you to stay. I should not have assumed that you would know, how much I would love to have you as a part of the audience when I speak on the subject. I knew that I would express some disagreement, and I wanted to do it in your presence.

      W.r.t. checking, I think that checking is a sapient activity and I had discussed several examples around that too.

      Some checks can be automated, some can’t be. But this distinction should not start just from the human angle and going towards automation. The direction is both ways. Some checks can not be feasibly conducted by humans too. Also, in the automating of check itself, there could be a lot of challenges.

      I consider checking/checks as a part of every testing/test. And I realize that we do disagree on that.

      We did not discuss about it on our dinner. I wish we had. We could have brainstormed about it. I would have been able to express myself better too.

      I agree to you last point. After your comment here, I guess that there are still areas where we think differently about testing vs checking. As time permits, I would write a detailed article on what exactly testing vs checking means to me. It is time consuming task as I would like to re-read a lot of work from Michael & you and look back at all my work. I would inform you once it is ready keeping Michael and Pradeep in loop too.

  2. Supriya Manish

    Just would like to add a small comment stating a clear distinction between Checkng and Testing.
    Checking is an activity of confirmation we do based on the inputs or information we possess.
    Testing is an activity of finding more information by xploring and learning.

    • Rahul Verma


      Some questions for you:

      What is activity corresponding to choosing checks called?

      What is activity of executing the checks in the right manner called?

      What is activity of weighing the relative importance of results got by different checks for a given test called?

      What is the activity of implementing the checks called?

      What is the activity of analyzing the right or wrong implementation of checks called?

      What is the activity of identification of missing checks called?

      and so on….

      As all of the above activities are related to checks, do you group them under the parent activity “Checking” or “Testing”? If you group them under Checking, then where is the exploration part missing? If you group them under testing, then what is checking?

  3. Stephen Hill

    Hi Rahul,

    I think maybe I can help…

    Sapience is something that must involve humans; it is related to wisdom (see “Checking” is something that could involve humans but not necessarily. Since it could be done by tools it is non-sapient.

    In your sixth slide you say that a test involves one or more checks and I think this may be where some confusion is coming in. A test can be performed without any algorithm that can be expressed in a way a tool could perform it (i.e. a check by James and Michael’s definitions). The crucial point here is that a check is an algorithm which *can* be expressed in a way a tool could perform it; it does not have to have tool involvement but it would seem sensible to do so as it saves time for other activities. It is non-sapient because it does not *have* to be executed by humans.

    If I read James correctly he is saying that our sapience gets in the way of our ability to do ‘raw’ checking because we interpret things, we see lots of other possibilities, our brains take us off at tangents. This is allowed for in the description of human checking. The raw performance of an algorithm where nothing else is considered requires a machine so is called machine checking. Where human/machine checking comes into play is where we combine a machine’s ability to rapidly run through a set of checks with our human ability to do other things. By splitting the definition of checking in this way we avoid the sapience confusion!

    I would argue that a good tester will use the information gleaned from checks to drive other testing and risk mitigation activities to give information to the business. That is clearly sapient.

    I do not know if this helps you or not but I can certainly see where James and Michael are coming from on this. The complex way we describe things in English does not help when we are trying to differentiate between testing and checking but the definition we use in the community would definitely suggest that testing encompasses checking but not really the other way round.



  4. Shrini Kulkarni


    Do not forget me in this chain.

    Let us stick to only one line of key difference your defin of checking and that offered by James/Michael

    “Checking is (or is not) a sapient activity”

    I hope we do not have any disagreement between what is sapient or sapience.


  5. Shrini Kulkarni


    You say here that your ideas (disagreements rather) about the testing vs checking have prompted to James and Michael to change their minds and opinion about the differences and to rework this whole thing.

    Can you point me to portions of James’ blogpost on this subject that clearly reflects their CHANGE in the position that they have held since Michael went public with the phrase checking?

    I would like to read the Jame’s post with this “filter” in the mind. I would like read the post as “you” than me as a context driven testing school member, someone who agreed with defin of checking as necessarily non sapient.


  6. Shrini Kulkarni

    @Stephan –

    I have been arguing with Rahul since long about this.

    As long as Rahul continues to hold the position that “checking” is sapient – there can be no further progress in our discussion.

    If we start from this anchor “checking is sapient” – we can clearly see that Rahul and James/Michael are defining checking differently. In Rahul’s world checking involves sapience and in James/michael’s world – it does not.

    We need to reconcile this difference if we were to make any meaningful headway here.


  7. Anand

    HI everyone,

    I “tried” reading through the chain of posts here, just out of curiosity. I tell you this, since normally I wouldn’t do it – for my life. Why? Before I can tell you that, I’ll invite one of you to educate me on one thing. Forget for a moment who I’m – let’s say, I’m one of those many thousands trying to do a decent job at testing a software product. I’d listened to you before at several occasions, and now this debate is the last on the series. I know this has been going on for sometime. One of you is telling me that testing is sapient, but checking is not. The other tells me the first guys is wrong, but doesn’t entirely reverse it. After sometime, the second guy makes a provocative statement which obviously hurts the first guy who makes a counter-argument..this goes on and on. At the end, you’re all friends – but, what about me? I feel flustered by all these and duped, not able to make up my mind. I still am left with no clue about what is sapient and what’s not, and most importantly whether any of this mattered at all, Can you deny this is the truth?

    I guess, each of you are proud of your abilities to argue and win. Think about how do you usefully gain anything from such sort of pointless debates? I think you’re brilliantly wasting your resources by moving around arguing. I know..I know…some of you will disagree. Have you been to kindergarten of late? You’re not much better than the inmates there. Well, what I meant is this – you are wasting time talking about something that no one will never bother about, in practicality. I heard James say that it’s hard to separate testing from checking cleanly. Then, what’re you even talking about? The same applies to Rahul too. I think Shrini is dealing it with much more maturity…but then, I don’t know any of you personally, except for Rahul.

    There’s only one thing I’ve to say. You’re all great people, with much individuality and a lot of popularity above all. If you must debate this topic (which I think you shouldn’t, for all reasons I already said), please don’t forget you’ve accrued a certain responsibility to the community of testers with all the good things you’ve done until now. Remember, people are looking upto you, with lot of respect, imagining you to be demi-gods who can lead their paths to success, in this field. They read you in blogs, in articles, in twitter – everywhere you can imagine. Don’t you think they deserve something better than this? If you continue like this, you’re not not just wasting your time, but that of all those people.


  8. Ramakrishna

    Totally agree with Anand.We learn a lot when we go through the blogs of Rahul and Shrini but when you differentiate on the above topic, I felt same like Anandh has written above

  9. Rajesh Maadireddy

    Hello Rahul,

    Those 30mins was memorable for me , when i was with james.As he mentioned, I was the guy who mobbed him to corridor,
    I am really sorry for taking your memorable moment.


    I want to bring the Test vs Check concept interms of Cooking.

    1. How you will evaluate the food cooked by yourself ( Testing or Checking )
    2. Based on what ( Testing or Checking ) you will come to know that Spice/Chilly/Salt/Water/Oil/etc is less or More. Food is Over cooked or Less cooked ?
    3. How will you calculate the cooking time ? Cooking time won’t be same when you cook in Gas/Electric/wood. Taste won’t be same. Ease of use won’t be same. @last bowls for cooking won’t be the same.

    If Testing is about Doubting, Often we use the word for justify our doubting is Checking.
    Often we use the word Checking in daily life , interms of Door is locked or not , Electric appliances plugged or not. Water tap is closed or not.
    When your doubt increases ( imagiantion increases ) You step into the world of Testing( bringing new experiments ).

    Testing is all about experimenting new ones, Checking is about confirming them & exploring new information for Testing.( Its a loop ).

    Testing is like a Father & Checking is like a Mother( vice versa ). Its a family.

    Rajesh Maadireddy

    • Rahul Verma


      Thanks for comment 🙂

      My usage of the testing vs checking helps in explaining testing to me in a better way than the version of James/Michael. At the end I guess that’s what matters. If usage of words in a certain way makes *us* understand things better, it is useful. If usage of these words in another helps you, I would respect your decision.

      In the mentioned presentation, what I want to discuss can not (fully) be understood without my version of testing vs checking.

Leave a Reply


1 2 12
June 30th, 2020

Arjuna 1.1.0 Production Release

July 23rd, 2017

The Last Keynote on Software Testing

July 23rd, 2017

The Agile Qtopia

July 23rd, 2017

Reflections:: Persistent Learning

February 28th, 2017

Reflections :: Servitude

January 9th, 2017

Reflections on Testing: Dignity

May 10th, 2016

The Pluralistic School of Testing

May 9th, 2016

Don’t Ignore Your Special Users

May 9th, 2016

The Dogmatic Agile – A Critique of Deliberate Blindness

October 9th, 2015

Pattern Thinking for Performance Engineers