Wednesday, January 6, 2016

Questioning The Premise Of Testing

Hi all,

I'll go straight to business. Not long did the 2016 last before another round of questioning testing started. This time however it was started by someone who I thought to be knowledgeable about the premise of testing and the relevance of it. Here's the tweet:


I fail to understand the purpose of this kind of tweet, but at least it stirred some thoughts.

I'm a tester. Not only by profession but by nature. To be more exact: I'm an exploratory tester, which means that I explore in order to find more information about everything that is in my path. And I do mean everything. I shudder to the thought of me testing just software. I test ideas, plans, processes, ways of working and even people. All give information that can be used for decision making. I've chosen to study this craft in order to be more effective, scientific, pragmatic and ultimately helpful.

All this doesn't however mean that I wouldn't question this craft and its relevance constantly. Even though I've invested to it so much and even though it provides livelihood to me and my family, I still question it and its relevance. And my relevance. However I found this questioning on the premise of understanding the craft. So many who question the relevance of testing don't really care to understand it.

That is very true that the conventional way of doing testing is at the end of its lifecycle. And by conventional I mean running prescripted checks that cover mainly software functionalities and that are supported by half-ass non-functional scenarios from the domain of performance, security, usability and so on. And often this nonsense is maintained by a bored test manager, who acts as a single point of brains for the testing team, which consists of mentally detached testers who want to see nothing else than a row of green lights so that they can continue with their primary job, or go home early. That is my caricature for conventional testing, and I see nothing wrong in trying to end that kind of nonsense.

But if you've never seen the likes of James Bach, Michael Bolton, Maaret Pyhäjärvi, Aleksis Tulonen, Richard Bradshaw, Ru Cindrea - just to name a few - performing their magic in testing, chances are that you've missed a great deal of something that makes testing so valuable, and ultimately relevant. It's not just them testing the software that counts, even though it's quite important and equally remarkable; It's the way these people think and contribute to the whole team/project/company in terms of programming, development, communication, teamwork, leadership, whatnot. There's nothing quite like it.

Monkey immersed in testing
For me testing is about mastering the strategies and tactics of digging valuable information for the benefit of decision making done by yourself or by someone else relevant. That can be anything really. Founding a company requires testing. Figuring out what kind of product should be built requires testing. Choosing ways of working, tools, programming languages, people, whatnot requires testing. Launching a product to the market does not only require testing, it IS testing. Even sticking your nose out into the cold air in the morning to find out if you should put on that cardigan you got for Christmas present is testing.

Please understand that.

Questioning something you don't really understand to progress your career or some hidden agenda is questionable by itself. Especially if it's done to the detriment of those who've worked hard to become great at this wonderful craft and those who are greatly dependent of these peoples' efforts. If you however question testing in order to learn more about it, there are countless people who are willing to welcome you with open arms and help you. Me included.

Cheers,

Sami

16 comments:

  1. You said this perfectly - "it's the way these people think and contribute..." - and you gave excellent examples! Thanks so much, Sami! I'm proud to be part of a community that includes testers like you!

    ReplyDelete
    Replies
    1. Thank you, Lisa. This means a lot, especially when said by you. And the pride is very mutual. :)

      Delete
  2. Very well put. Couldn't agree with you more. The value of testing is something I am constantly having to justify

    ReplyDelete
    Replies
    1. Thank you, Zack. I think every profession has to be justified, but especially testers have to use extra resources for that. I wonder why is it so. Is testing and its relevance so hard to understand that people are not willing to do so? What makes it so hard? Can we testers do anything about it? Cause more visibility to the value we produce?

      Delete
  3. I met Bob Marshall at Agile Testing Days November 2014. I have no clue what specifically he had in mind by that post, but I believe his writings are contrarian and in general intended to provoke thought or even debate. He succeeded in my opinion, because the result is your well executed post.

    ReplyDelete
    Replies
    1. I don't have a clue about Bob's intentions either. I should've added to the post that he didn't reply in any way to my questions about the tweet. As I've followed his behaviour in social media, he tends to do that: Fire and forget. Provoking is ok, but not joining the discussion is something I find very hard to understand. And for that reason I chose to unfollow him.

      Delete
  4. "...That can be anything really. Founding a company requires testing. Figuring out what kind of product should be built requires testing. Choosing ways of working, tools, programming languages, people, whatnot requires testing. Launching a product to the market does not only require testing, it IS testing. Even sticking your nose out into the cold air in the morning to find out if you should put on that cardigan you got for Christmas present is testing...."

    The main difficulty with descriptions like this, is that it dillutes the definition of software testing to the point that the relevance questions are *bound* to occur. If *everything* is testing, then nothing is testing. If the marketing team are testers, and the product owners are testers, and the developers are testers, and your children are testers on Christmas morning, then whence cometh the necessity of a special role on the development team?

    This is exactly the kind of description that has led many in Agile to wonder if testing isn't a role, but simply set of "activitities" that "anyone on the team" could execute during the sprint.

    If you want to defend the *role* of the tester from these sorts of questions, then you have to answer two very specific questions:

    1. What is *unique* about the activity of testing, apart from what the marketer, the salesman, the product owner, and the developer do?

    2. What is *unique* about the tester? What differentiates him from the marketer, the salesman, the product owner, and the developer, such that he is *uniquely* suited to the *activity of testing*, apart from these other roles?

    Rather than trying to borrow value from these other roles, by equating them with the tester, we need to establish our own value, and the only way to do that, is to demonstrate that the role of the tester has value apart from them.

    Lastly, the question of "relevance" has been a perrenial one all the way back to the 1970's. What concerns me much more than this, is the fact that in all these decades, testers still haven't gained enough self-confidence to stand on their own two feet, secure in the knowledge that testing isn't going anywhere. In otherwords, it's mind-boggling to me, that we're still writing long, passionate defenses of the relevance of testing *as if it's necessary to our survival*.

    This guy's tweet deserved an eye-roll. Not an article.

    ReplyDelete
    Replies
    1. Thank you for this eye-opening feedback, Greg. You are absolutely right. I could've chosen my words more carefully. Let’s iterate then.

      I started to think about hierarchies in professional relevance. What profession is really relevant? My relevance has been questioned for example by programmers in every twist and turn. When new programming language generations emerge and abstraction level rises, do more lower level programmers become irrelevant? From another viewpoint: I’ve trained testing heuristics to people from media and education industry. There’s not a single line of code in their domain. Does that mean that I’m relevant, but programmers are not? Then again, is there hierarchy at all? Who decides what prosession is relevant and what is not?

      Ok, let’s make a bold assumption that to the general majority professional digging for information is relevant. There are however different depths of that. Different levels of mastery. I do think that everyone tests, but not nearly everyone is master at it. Albert Einstein said: "Only one who devotes himself to a cause with his whole strength and soul can be a true master. For this reason mastery demands all of a person.” Now, we all have limited supply of mental resources. If we choose to master marketing, we focus on that. If we choose to master programming, we focus on that. If we choose to master anything, we focus on that and leave other dimensions - such as testing - of our professionalism to less attention.

      Testers are not just people who do testing. They are people who’ve chose to focus on it and become masters at it. Not just for the sake of themselves, but the for the sake of the entire craft and the quality of it. They take responsibility over testing and make sure that it doesn’t regress into what I depicted as conventional testing; Inhumane nonsense that doesn’t bring value to anyone. And that makes them unique.

      Do I make any sense? There’s a risk that I might not. ;)

      Delete
    2. And I write articles for the fun of it. I'm glad that this one got so much attention. Hopefully it leads people to read my other stuff too, give feedback and a chance for me to improve my approaches on things. I do try to master my craft and people like you help me. ;)

      Delete
    3. I would just suggest this: questioning the need for testing in software development, is like questioning the need for peer review as a part of the scientific method.

      Any scientist that would ask whether he really needs to make his experiments reproducible should be immediately suspect (if not dis-barred from his field). And, if I were a scientist, I would be incensed if I discovered somehow that my work had *not* been properly peer reviewed (especially if some had claimed it was).

      Likewise, software developers should be *demanding* that their code be tested, not looking for ways to avoid it. And if its not being tested, they should refuse to publish it. Just like any good scientist would do.

      But this puts a burden on many testers that I don't think they are willing to accept yet. Because, just like scientists, it expects testers to be just as competent as developers - able to read code (and even write it if necessary), able to use debug and trace logs to isolate problems, able to execute (or even create) build jobs, able to manage their own workstation development environments, and so forth. This is all in addition to the particular skills a tester needs to execute his test plan, not in lieu of them.

      Think of something like Underwriters Laboratories. Goods manufacturers in the 1970's and 1980's used to fall all over themselves to get the U.L. seal of approval. And the people working in those labs were not just "monkey push the button" drones. They were highly skilled and highly paid mechanical, electrical, chemical, and structural engineers *in their own right*.

      We need to think of ourselves in the same way. And when I see developers sneering at testers and testing, it tells me that we don't. And it tells me that this broken self-image is what others see as well. And it needs to change.

      Delete
    4. Don't swallow everything Greg writes without reflecting on it. As a tester I add a lot of value to our customers, our product and our team, without those developing skills he writes about. And when I learn new skills, it is within the testing field, which benefit the stakeholders, including myself, more, compared to learning programming.

      (I am taking the risk do defend my work as a tester, just like a scientist sometimes has to defend her work ;) )

      Delete
  5. Thank you so much Sami for this reflection.
    It´s a honor to share profession with people like you. Sometimes I feel tired of continually justifying the need for testing, but posts like this one, encourage me! :)

    ReplyDelete
    Replies
    1. Thank you for this heartwarming feedback, Albert! Comments like these encourage me. ;)

      Delete
  6. I mean running prescripted checks that cover mainly software functionalities and that are supported by half-ass non-functional scenarios from the domain of performance, security, usability and so on.
    how to read product dimension

    ReplyDelete