torsdag den 7. november 2013

Being a Pragmatic Tester?

Okay everybody – this is the first time I take a chance and raise my voice… but I think someone has to start this discussion!

Last week I participated in Agile Testing Days in Potsdam, a great conference where I got a lot of new ideas and inspiration, and even more important got to know some great people!

But one thing made me wonder… and sort of made me sad; I got the feeling that fundamentalism has entered our community - Both within the agile community and the context driven community. You are with them, or you are against them, there is only one universal truth and way of testing for parts of that community…. Does that ring a bell anyone?

I don’t really like fundamentalism, not in religion, not in politics and not in testing.

I consider myself a context driven tester, and an agile tester – that is how I work and that is how I want testing to be done... if possible. I know the 12 principles of agile and the 7 principles of context driven testing… and I try to use what they stand for to the best of my abilities and the CONTEXT I am in. 

Yesterday I talked with a very smart man on the phone, and we discussed the fundamentalism in the testing community. He said something like ”I sometimes feel that the context driven community has lost the context” – and to be honest sometimes I feel that he is right.

Now this is where I just don’t get it; the context driven approach is all about CONTEXT – why is it then that I often feel that parts of the context driven community tells me that there is only one universal truth and that is exploration, session based testing, heuristics, algorithms, no formal training and certification, rapid software testing etc. Why is it that I feel that it is not ”allowed” and recognized that someone could actually find themself in another CONTEXT – a place where some things can be applied and others cannot, where artifacts and ways of testing are dictated by standards (safety, military etc) or by contracts.

"Context-driven testers choose their testing objectives, techniques, and deliverables (including test documentation) by looking first to the details of the specific situation, including the desires of the stakeholders who commissioned the testing. The essence of context-driven testing is project-appropriate application of skill and judgment. The Context-Driven School of testing places this approach to testing within a humanistic social and ethical framework."

The quote above is from written by James Bach and Cem Kaner, probably quite a while ago, but I think it in very simple language that we all can understand and comprehend tells us the essence of context driven testing – or at least how I would love context driven testing to be.

If my customer asks me to deliver artifacts or requires testing done in a certain way, I will surely try to convince him otherwise if I do not agree – but if he chooses to continue with his way (which is often the standard-driven-approach) then I will have to accept that and try to do the best of my abilities within that CONTEXT.

Okay I can already hear the first comment; yeah right but you are Sogeti – you have to say that because you are all in to that TMap stuff and you do ISTQB certifications too. But honestly guys; I have been in testing since 1995, standards, agile, exploratory and all the other stuff is a part of my luggage. 

I feel like I am the audience at a boxing game: In the green corner; the context driven community and in the yellow corner TMap/ISQTB/CMMI/TMI/TPI and all the other abbreviations – the “standards test approach” you might say. And now I am forced to cheer for one of the corners, green or yellow. But sorry guys I will not!!

What about another solution, why not be a PRAGMATIC TESTER. What about taking what we can use from the context driven approach, and what we can use from the standards test approach– and then make our own test soup and make it work in the context we are working within. What about the concept of peaceful co-existence? could that work for our community too?

Call it real world call it unicorn world…. Honestly I don’t really care… it would be great if it was our world.

7 kommentarer:

  1. Interesting blog post! Hope you don't mind I make a few comments.

    When you say "[...] why is it then that I often feel that parts of the context driven community tells me that there is only one universal truth and that is exploration, session based testing, heuristics, algorithms, no formal training and certification, rapid software testing etc." I can only agree with you. And that's unfortunate, because it's not the truth about context-driven testing (if there is one). It is however an image we are projecting as the context-driven testing community. For very logical reasons we are defining ourselves by comparing ourselves with something we're not: factory or standards school testers. Hence the focus on exploratory testing, heuristics, etc. It seems as if we are where Agile used to be: most of all Agile was busy not being Waterfall. In the context-driven testing community, we are busy not being ISTQB, TMap and the like. I think we can and we should do better.
    And often we are. Context-driven testers do say: if your context requires detailed test scripts, create them! But that's not what makes us 'special', so after that one sentences we return to talking about exploratory testing and sociology and ... - confirming the feeling you describe.

    "If my customer asks me to deliver artifacts or requires testing done in a certain way, I will surely try to convince him otherwise if I do not agree – but if he chooses to continue with his way (which is often the standard-driven-approach) then I will have to accept that and try to do the best of my abilities within that CONTEXT."
    Something I have been thinking about lately is: to what degree is it acceptable to do what your customer asks? At what point do your ethics as a professional tester enter the game? If your customer's requirements make proper testing impossible, is it ok to accept that and try to make the most of it? Or should you walk out?

    "What about another solution, why not be a PRAGMATIC TESTER. What about taking what we can use from the context driven approach, and what we can use from the standards test approach– and then make our own test soup and make it work in the context we are working within."
    And what about the different schools? What about the principles that guide your decisions on what is good testing and what is not? You cannot escape making choices here. You need a set of guiding principles to decide how to make your own test soup. (And I do think everyone should make their own soup. That's what craftsmanship is about.)

    1. I think it is a very relevant question you ask, whether you should walk out if you cannot identify with the customers requirements for testing, if that makes it impossible to make proper testing. Well so far I haven't been quite that far, at one of my previous assignments I got very close but since both my team and the project clearly expressed that they could feel a difference with me being there - then I chose to stay. Even though I felt that I wasn't doing a very good job, that we weren't doing very good testing, then it was still way better than if we hadn't been there at all, even with the limited stuff we could do we still identified and communicated what the quality, the risks and the challenges with the system were.

      I fully accept and are actually happy about the fact that there are different schools of testing, that is what makes it so interesting to be a tester - that challenges us to think, it would be very sad if we were all the same. So they need to be here and we need to discus values and challenges with the different ones; I only advocate that we do it in a proper tone and don't dive into the trenches – that was actually the whole purpose with my blog entry yesterday ☺.

  2. Let me share my ideas and experiences about this topic, and raise some questions.

    If people are saying that context driven testing is all about exploration, session based test management, heuristics, algorithms, no formal training (note: whatever that means) and certification, rapid software testing etc. or if people say they do that (sometimes) and claim they are context driven testers, they don’t get the point. It’s like saying scrum is about standups, retrospectives and planning poker. But that’s not what scrum is about, just like context driven testing isn’t about the things mentioned. These are methods, approaches or tools that might help you, and of course you can use all these things in a different school of testing. But, like every school of testing the techniques, methods, etc are just tools, as said, that might help you. The quote you referred to from James Bach and Cem Kaner and especially the “testing within a humanistic social and ethical framework” is fundamentally different than the factory school approach which is much more process driven. I am not saying the factory school totally de-humanizes testing, but a humanistic social framework is not the focus.

    I don’t agree with you that fundamentalism is restricted to the context driven school community. What about people who are claiming to deliver the standard training in software testing? Quote from the ISTQB site: We provide a reference point against which the effectiveness of testing services can be evaluated, by maintaining our prominence as a respected source of knowledge in software testing”. There is some fundamentalism in that quote don’t you think? Speaking for myself I would say that context driven testing for me is natural. It just fits me. I don’t think about talking about reference points.

    Also keep in mind that context driven isn’t something that merely can apply to testers. In a current project I work together with a programmer who I consider as a context driven programmer. He doesn’t use the word, but when talking about software (development) I hear somebody talking from context driven perspective.

    I understand the (negative) implications fundamentalism has, but I think most people fundamentally believe in their own values, of how they stand in the world. This is not something that easily will change, because it’s fundamentally who you are. That’s also why I really don’t get it when people say they sometimes are factory testers and sometimes context driven testers or context driven testers with a factory school mindset or factory people with a context driven mindset, or whatever other combination. I think they share the values and paradigms of one school and use artifacts of another school. My point: the schools (of thought) cannot be mixed, only artifacts can be mixed. A question that raises is: What are you doing when you mix them? Isn’t there a risk that you will only do some tricks?

    Next thing that I don’t get is, why do people want to mix schools in the first place? Suppose you work for 20 years as a tester and consider yourself attached to the ISTQB school of testing, and really think this is the best way for you. Why is it so important to claim you are also (partly) context driven tester, or vice versa or whatever combination, even when you don’t share the fundamental paradigms?

  3. What do you mean by "fundamentalism"? It makes no sense to me to discuss if I don't fully understand what you mean by this.

    Let me be clear about my place in this discussion: I am a context-driven tester! But I love to talk about my craft. There is no one way of testing nor a universal truth. So far, it doesn't ring a bell.

    How can you say the context-driven community has lost it's context? I guess you are referring to certain people? I think it goes too far to call that the community. I guess the thing is that context-driven people speak up. They do not except nonsense when they hear it. They practice critical thinking and question others. Shallow agreement is not accepted and that feels not comfortable for many people outside the community. What do you mean by peaceful co-existence? I will not let others speak nonsense unquestioned. Especially not if they do it at conferences. Conference speakers can expect to be 'attacked' if they say stuff others do not agree with. So please tell me what do you mean by peaceful!

    I believe that there are contexts dictated by standards and I do agree with you that some standards are valuable. But within the current testing standards I do not find of any value.

    If my customer asks me to do work that is not valuable I will also try to convince him, but I will not fake. This touches a VERY important discussion about courage. Why do so many testers let people who have no understanding of our profession dictate to way we have to work? I am the test professional and I will decide how I do my work. You do not tell a plumber how he has to do repair to your sink do you? So why do managers and project managers want to dictate how I do my work? They almost never have any testing experience so how can they know? I refuse to fake and do bad work. I will walk out if I cannot do a proper job. And I think more testers should stand up and be brave!

    I do not expect you to cheer for 'corners', I expect you to think critical about the abbreviation stuff as well as the context-driven stuff. The soup you describe IS a very context-driven way of testing! If you what to call it pragmatic testing, that is fine with me.

    I fully agree with Philip: context-driven isn't about methods, approaches or techniques. It is about a paradigm. Have a look at the keynotes by James (Let's Test 2013:
    ) and Michael (CAST 2011: And I guess my feeling is much stronger: I AM saying the factory school totally de-humanizes testing!

    I fully agree with the last two paragraph by Philip. Well spoken!

  4. I think one of the problems are that a community is most often identified by the few that raises their voice, not the many who stays silent. I respect that other people can have other approaches and ideas about testing than I have, I might disagree and I might discuss that with them but I will always do that in a proper tone, I will always keep my respect for another human in place, I will never humiliate another or disregard him because he thinks that testing should be done in a mother way than I do.

    That is all I am trying to address with this blog post. I saw it on agile testing days, and spoke with quite a number of people there who had the same experience. Yesterday I talked to a friend and colleague who had been at EUROSTAR and could tell a couple of the same things, that prominent people from the context driven community "attacked", disregarded and she felt actually also humiliated people who either didn't understand or disagreed.

    THAT IS WHAT I TALK ABOUT - nothing else.

    And some of you guys may have an option to say EITHER WE DO IT MY WAY OR ELSE... but if most of us said that we would have a very hard time finding a job. Most companies and project managers (who hires you) don't have a clue about context driven testing and would not hire me if I refused to do it any other way than my own way. You might be able to get a job like that – but most of sure can’t.

    So again I stand by my point: I will continue being an advocate for the context driven approach as best I can to the extend of my understanding of it (that is another part - sometimes you guys get so theoretical and using so fine and big words ☺ that I and many other have a hard time keeping up and make sense of the discussions), but I will not be a part of the way of communicating that many of you use. I don't need to call people an asshole or stupid or what have we to prove my point, I don't need to get all worked up and angry to prove my point - and that is what I am trying to advocate for.

    And I don't FAKE because I accept that there are things I cannot change , I will clearly mark that I don’t agree and I think there is a better way to do this but that I also accept that they have the right as my employer to tell me to do it differently, but I don’t fake and pretends that I agree. What do you do in your marriage if you cannot get it your way all the time... do you find compromises to make your marriage work? Or do you say either we do it MY way or I will leave?

    Who says they don't have any understanding of testing, I have worked in companies where there were a lot of knowledge and understanding about testing, but still things had to be done in a certain way because our customers had requirements for that.

  5. My interpretation of your initial blog post is that it has a broader scope than what you wrote in your reply, but anyway I also want to give a short reply to the things you experienced at the Agile testing days which I think is serious.

    Statement: It’s not merely a context driven community thing.
    I don’t want the easy way out but place your experience in perspective. I have to talk about it from a general viewpoint and my own experience, because I wasn’t at the Agile testing days. That said; What I notice is that nowadays some people want us to believe that being rude is a typical thing of (some or many members) of the CDT community and the CDT community gets all the blame for being rude. But I think there is no big difference compared to the blame the CDT community gets from other schools. An example; Let’s have a look at the history of CDT. The people who started the CDT community were not taking seriously, especially in the early years. It was called dangerous and it was said that CDT people were ruining testing as a profession, which is maybe a little less nowadays, because CDT is now too big to ignore, or to just put aside as nonsense, because there are people who will speak up. But some of that thinking is still in place, and people consider CDT as stupid.

    I definitely don’t say it’s ok that it happens, but only want to say that it’s not only a CDT community thing, but people from all schools should reflect and don’t just blame the others. People who are honestly willing to learn should not be intimidated.

    1. I am absolutely sure that it is not only the CDT community, but the thing is - what I write in this blog is ONLY experience reports, and this is what I experienced.
      And to be honest, I am not a person easy to intimidate, and I think some of the people commenting above will agree on that - and also I am more than ready to learn - but I still stop discussing when people attack me - I simply don't find that a constructive way of communicating, and I cannot take part.