New to software testing? Read this

Saturday, February 18, 2012

So you’re new to testing.

Let me give you some friendly advice to help you become the power tester you want to be. I’ll get the boot camp drill sergeant stuff out of the way first.

If you’re anything like the vast majority of new testers I’ve encountered, you’re full of questions. Probably a lot of questions that start with ‘what’s the best way to…‘ or ‘what is the best practice for…

Take that combination of words and remove it from your vocab. When I see questions like this, I cannot help but think that the person who asked it is incapable of free thought. That may not be the case, but those questions translate in my head as ‘Please spoonfeed me an answer so I don’t have to think. Please just tell me what to do. Give me a recipe that I can apply wholesale without consideration of any other factors whatsoever’.

Sounds fucking stupid, doesn’t it? Yes it does. Because it is.

Imagine if someone asked you ‘What’s the best way for solving conflict in the Middle East?’ That’s basically what’s happening. Hey, let me ask you for a simple answer to an incredibly complex question without giving you any context whatsoever as to how it applies to me.

Same thing goes for asking about pre-written test cases, answers to interview questions, what the best testing tool is. That’s sheer laziness. Don’t do it. You’ll see lots of other people doing it. Lots. If you do the same thing as everyone else, then you’re no different from anyone else. You’re a commodity and ultimately expendible.

Want to know how to distinguish yourself from the hordes of zombie testers out there? Don’t do what they do. Don’t be like them. If you want to be just another minimum-wage meatbot then fine, just find a different career.

If you want to be good at testing – hell, if you want to be even a competent tester, critical thinking is a skill you’re going to need to practice. I realize that might come as a shock if you thought testing is about following test cases (that’s not really testing btw, but that’s a discussion for another time). The habits you learned in grade school – memorization and subsequent regurgitation of the right answers – that’s not thinking. That stuff doesn’t work for testing.

Testing isn’t about pass or fail. It isn’t about getting the correct answer and turning it in to the teacher for a pat on the head. Testing is about asking questions about software and its artefacts and its people to find out information for the people that matter. It’s about maintaining your sense of uncertainty when everyone else is losing theirs. It’s about exploring issues of risk and the tradeoffs you make between making something better and the cost involved in doing so. It’s about seeing what’s in the gaps. What do people say they want? What do they actually want? What do they say they did? What did they actually do? What does this component connect to? What does it not connect to that it should (or vice versa) – are these the sorts of questions you ask when you test?

How do you know that a bug is a bug? (You might like to read up on oracles) How do you convince other people that a bug is a bug in a way that is tactful and persuasive? (You might like to read up on bug advocacy)

What else can you do to become an awesome tester? Want to know how other awesome testers do their testing? Do testing with them. Have you heard about Weekend Testing? (Yeah there are people who use their spare time to get better at testing, how crazy is that?) Even if you don’t decide to test with them, you can read the transcripts of the testing they did and their testing notes. You can learn from people of all sorts of experience levels.

There is no shortage of excellent testing blogs out there. There are ten times as many that are garbage, but if you’re here, then that’s a start. Any of the links in my blog roll and any of the links in theirs should have more than enough material to keep a new tester’s brain occupied for a very long time indeed.

Still reading? Well, if you haven’t been scared off yet then you might actually be serious about becoming a good tester. Read this stuff. Practice this stuff. Find anyone that knows software testing and learn from them – by which I mean question them. Don’t take anything that anyone tells you as gospel truth. Examine it. Turn it over. Poke holes in it. Good testers welcome challenge and criticism. It’s what helps them become better testers.

There are testers out there that will coach you. They’re good at it too. Contact them. Ask for their help, but understand that the onus is on you to do the hard work.

Becoming a skilled tester isn’t an easy path, but it is a very rewarding one. In the time I’ve been a tester, I’ve met amazing people from around the world and formed a network of peers I can go to when I have questions. I love the work that I do and I get to work with some amazing minds. I wouldn’t have had any of these opportunities had I not made the choice to make myself the best tester I could be.

If you’re a new tester and you want to be a good tester, then you have work to do. Best get to it.

Edit:

Here’s another post along similar lines. Well worth reading:

Becoming a World Class Tester – Ilari Henrik Aegerter

23 Comments

  1. James says:

    “if you thought testing is about following test cases (that’s not really testing btw, but that’s a discussion for another time).”

    … and here’s a really nice post that shows graphically what you’ll be missing if you take that approach: http://exploringuncertainty.com/blog/archives/253

    1. Thanks for the link James – just had a read of it.

      It has really helped to reframe my thinking of delivering software to specs.

      It also creates a language which can be understood by all members of both the Development team & Customer team

  2. Jared says:

    School is to blame :)

  3. Adrian Close says:

    I like your style, sir. Of course, this stuff applies to a lot more than just testing. Figuring out what people want (as opposed to what they say or think they want) is an art.

    1. Ben Kelly says:

      Hiya Closey.
      ’tis true. Just ask any married man ;)

  4. Lisa Crispin says:

    I hope lots of new testers will read this and follow your advice – it will help raise the bar of our profession, which is good for all of us.

    The first thing I tell new testers is, get with your whole team and all of you together start thinking about testing and quality. What’s your team’s commitment to quality? If it is real, make it mean something.

    1. Ben Kelly says:

      Thanks Lisa,
      If this helps one or two testers become better than they otherwise would have, then that would be splendid. I’ve no illusions that my little rant will change the testing world.

      As for thinking about and discussing testing and quality in a group – that’s a fine start, I think. Getting them to a point where they can adequately define quality and testing would please me to no end.

  5. Best line about stupid questions ever.

    “Sounds fucking stupid, doesn’t it? Yes it does. Because it is.”

  6. Really enjoyed this Ben, thanks for posting!

    Been testing for 11 years, only got the message you’re sending 2 years ago – I’ve got some catching up to do!

    Duncs

    1. Ben Kelly says:

      Thanks for stopping by, Duncan.
      It can be tough to find your way out of the wilderness if you don’t even know you’re lost. Better late than never eh? If nothing else, you’re probably well positioned to help others that are in a similar situation to the one you were in.

      1. Cheers Ben.

        Yep, that’s the plan – trying not preach tho!

  7. Narasimha Dulam says:

    This is really great. I my team testing is all about writing Test cases and executing them(Pass\Fail). But i seriously suggest them to do beyond that. Testing is all about exploring and questioning.

    I liked your approach of questioning.
    Testing is all about Questioning the Quality of the product.

  8. Chris says:

    Great read Ben, very inspiring. I’ve just started my career in software testing.. and I’m always looking to explore new ideas and acquire more knowledge. It helps me criticize my way of testing too.

    At first I think it’s natural to be too attached to the test scripts.. and that’s more like checking than testing. I am lucky cause I have the go ahead to start automating the routine checks soon.. thus I’ll have more time for exploratory testing.

    As you rightly said, to be a competent tester developing critical thinking is surely a must. This is what I love about testing, I see it as very philosophical.

    I always try to browse around for good articles and I’m thankful I encountered this blog. P.S. great list of testing tools too ;)

    1. Ben Kelly says:

      Hi Chris,
      Welcome :)

      I can certainly understand the ‘do as everyone else does’ mentality, especially for a rank beginner with little guidance, or worse – some amount of misguidance. I’ve spent time lost in that wilderness. The curious generally don’t stay there for very long.

      You sound like you’ve made a good start. I wish you all the best with it.

  9. isaac L says:

    I’ve been to a few conferences lately and see your use of ‘critical thinking’ and many other nuances above which suggests that testing requires great skill. Its true, if you want to do a good job. Seems the testing community cries out for respect and to maintain its existence. Especially with agile testing, where integrating closely with the dev team requires more technical skills and ‘sapience’ as some might call it. Anyways, the profession is changing, and monkey testers will soon go by the wayside.

    1. Ben Kelly says:

      Hi Isaac,
      I think that people that work with skilled testers come to understand their value. I’ve noticed what I think is a trend of programmers talking about how they recognize that testing is a difficult thing to do well and that having skilled people in a dedicated tester role helps them. I hope it’s a trend that continues.
      I’d like to see monkey testers (or zombie testers, as I like to call them) fall by the wayside sooner rather than later, but the sad truth is that probably won’t happen until the people hiring them and the people working with them demand a higher standard. Right now it seems that many still think that zombie testing is the norm.

  10. Dan Ashby says:

    Hi!

    After browsing around for old blog posts from the past year, for the ones that I’ve missed, I found this gem!

    It really does highlight how important it is as a tester to think critically and laterally. It’s an important topic!

    Great blog! :)

    I do have one very small question though… You said:
    “‘what’s the best way to…‘ or ‘what is the best practice for…‘
    Take that combination of words and remove it from your vocab. When I see questions like this, I cannot help but think that the person who asked it is incapable of free thought”. And later, you then say that questions such as “Whats the best test tool?” are lazy.

    But surely, there /is/ a benifit of asking these types of questions in certain situations?
    For example, If I asked you “What is the best test tool that you use?”…
    I could be asking this to find out from your perspective what your favorite tool is and why you chose that tool as your favorite. I can then further question to discover more about the tool, what the tool is for and why you find it useful…

    This might be valuable to me, as it might be a tool that I have never heard of (for whatever reason), that could be very useful to solve a problem or make my life a bit easier.
    This context can be applied to any question that fits into the “Whats the best…” question.

    Although I do agree, if someone asks that type of question and has a lazy attitude towards their work, then /that/ isnt good… :)

    1. Ben Kelly says:

      Thanks for dropping by Dan.

      But surely, there /is/ a benifit of asking these types of questions in certain situations?
      For example, If I asked you “What is the best test tool that you use?”

      Even in this case, my response would likely be ‘best tool that I use for doing what?’ Without context, the answer is meaningless. The tool that I have selected in this situation is appropriate based on the tools I have at my disposal that I am aware of. There may be more appropriate tools out there that I don’t know of or are outside my budget.

      If you’re talking about things like mathematical proofs, then there may indeed be a ‘best’ way (or at least a ‘least bad’ way) to solve a particular algorithm, but there is generally a better way to formulate a question than ‘what is the best X?’

      This might be valuable to me, as it might be a tool that I have never heard of (for whatever reason), that could be very useful to solve a problem or make my life a bit easier. This context can be applied to any question that fits into the “Whats the best…” question.

      I disagree. There is an in-built pre-supposition to the question that does not invite follow-up. I have seen time and again inexperienced testers ask this question, presupposing that the answer is authorative.

      Asking ‘what X do you use?’ has no such presupposition and you could argue that it more naturally invites a follow up ‘why’. You are correct in that the underlying attitude in asking is important. That said, the language you use affects the way you think (and also how someone you are conversing with thinks), so how you frame a question is no less important.

  11. QA Tester says:

    Hi Ben,
    I agree with your point that spoon-feeding should not be encouraged and one has to do the things in his own way, simultaneously there is no issue in finding out the best things in the field, It is good to have the information about the latest news and accordingly he has to plan about his future rather than just following someone.

    1. Ben Kelly says:

      I’m not sure I entirely understand your point about finding out ‘the best things in the field’.

      Firstly ‘the field’ is many different things to different people. Even people within very niche areas of testing will find themselves in different situations depending on the company they work for, the projects they are involved in and many other factors. Now think about how many different facets there are to software testing. How do you define what is best? You can’t.

      You can likely say that there are practices that are generally recognised as good, but ‘best’ invites one to think that there is nothing better. I think this is an especially dangerous pattern for earnest but ignorant novice testers to fall into. ‘X seems to know what they are talking about. They say Y is best, so I will do Y’.

      So, if you’re saying that it’s good to keep on top of developments in the industry and adapt ones awareness of testing techniques and thinking to suit ones job as it relates to these changes, then yes I agree. If on the other hand, you’re saying that what is ‘best’ changes as technology does, then I’d argue that ‘best’ is not something you can define as a blanket statement with any degree of certainty.

      If you’re saying something else entirely, then by all means please clarify :)

      1. QA Tester says:

        Thanks for your reply, I just want to be aware of the latest trends as well so that they can choose according to their personal interest and capabilities as well and most importantly what I feel is that we should know about what is going on around us so that we will not be isolated. Hope even you agree with it.

Leave a Reply

Pingbacks & Trackbacks

  1. Five Blogs – 19 February 2012 « 5blogs - Pingback on 2012/02/19
  2. Episode 25: Cultural transformations with Agile | The Agile Revolution - Pingback on 2013/03/02