Changing the approach to software tester training

Steve Watson, Director Quality Engineering, Reed Business Information, details
how tester training needs to evolve.

When you think about training for testers, it probably falls into two categories – certification (such as ISTQB or Certified Agile Tester) or technical (a programming language or a specific tool).

In a study I made of 50 Test Analyst roles I noticed that a lot of the tester job ads focus on the technical skills needed and a lot less on other areas. Almost half (24) wanted ‘automation’ experience, 19 wanted ‘Selenium’, 15 wanted ‘Specflow/Cucumber’ and 13 wanted ‘Java’. At the other end of the scale only 3 wanted someone with a ‘passion for testing’, 1 listed ‘good communication skills’ and 1 wanted someone with a ‘good attitude’.

As important as they are, technical skills and certifications are only a part of what makes a good tester, and we can easily fall into the trap of overlooking the other skills that are needed. For example, a certificate can tell us that the individual has passed an exam to understand elements of testing or agile etc., but cannot tell us how good their testing ability is day‑to‑day and what their softer skills are actually like. It can’t tell us whether they can review a user story, look at the confirmations and find any gaps, and ask those questions which no‑one else has considered.

We naturally focus our training and learning in areas that we feel are valued, so if we work for an organisation which places little value on the softer skills, then there is little incentive for us to focus on improving in those areas.

As an industry, we need to change our approach to training.

I believe that to be a well‑rounded tester means having skills in three different areas:

Analytical thinking – attention to detail, problem solving skills and an inquisitive nature – termed as ‘the tester’s mindset’.

  1. Interpersonal behavioural and communication skills – termed as ‘soft skills’.
  2. Technical skills – those needed to actually perform the job!
  3. Tester’s Mindset

tester mindset

Attention to detail is an important skill – spotting a typo doesn’t sound that important, but what if the website of the company you work for is selling widgets for £10.00 rather than £1000.00 because no one noticed? It’s a small decimal point in the wrong place, and may be hard to spot, but it would put a huge dent in the company profits if missed and sales were made!

In October 2013, Asda withdrew a voucher that accidentally offered shoppers £50 discounts on their shopping. The voucher was intended for one use only but a glitch meant shoppers could use it repeatedly. A tester with an inquisitive mind might have tried to test using the voucher more than once. (Note – whilst researching examples of mispricing, I uncovered a number of websites where individuals share how they actively look for incorrect prices in order to exploit them.)

The core skill for a tester is not just an ability to write code or pass an exam – it’s an ability to assess and define the positive and negative test scenarios needed to ensure that the delivered software meets the functional and non‑functional requirements.

Softer skills

To be an effective tester means being able to communicate and plan well. In an agile world, this means discussing user stories and test estimations with the team in sprint planning, outlining yesterday’s and today’s tasks in daily stand‑ups, explaining a defect to a developer, discussing test coverage with a product owner, supporting end users with user acceptance testing queries and doing so on time.

Working with distributed teams is very commonplace, and for many testers, verbal and written communication is not performed in their native language. Therefore good clear communication is vital to ensure that individuals understand their roles,  tasks and deliverables. For example when communicating in English, this means avoiding slang terms which non‑native English speakers may not understand.

Attitude is an important element in communication. A tester with an abrasive attitude or an impolite way of approaching colleagues will cause friction and mistrust, which will have an adverse effect on the team’s morale.

Good time management shows the ability to handle pressure, allocating time effectively through the day to complete the tasks at hand, and meeting deadlines.

A good tester needs to be approachable, friendly, able to deal with different types of people – those with a technical background, and those from a business area who are less technical and more process focussed – and be able to interact with them on their level, whilst balancing their daily tasks. This requires adaptability.

Technical ability

Technical skills are of course important, and must not be overlooked. There is a need to learn automated testing tools and programming languages for functional and non‑functional testing, as manual testing will only take us so far.

We also live in an ever changing world where new technologies and tools are emerging all the time – for example the internet of things throws up a whole host of new testing challenges.

Caution

However, the important thing is to develop technical skills in addition to the other areas, not instead of them. Technical training should not be the main focus at the expense of the tester’s mindset and softer skills.

Maintaining a good skills balance

In the ’70:20:10 Model for Learning and Development’, it is acknowledged that as individuals we gain 70% of our knowledge from job‑related experiences, 20% from interactions with others, and 10% from formal educational events.

So it would make perfect sense to start nurturing all three areas as part of your day job, adding in more formal training where appropriate, and here are some ideas to get you started.

Improving your tester’s mindset

Think outside the box – become a Thought Leader

Identify an area that you are interested in where there is a gap in knowledge or understanding in your team. It could be something such as load testing or security testing, where you can investigate the types of tests that should be performed, the tools and test approach to be taken, and share that knowledge with your team members. If you work with other testers, you can all take on a subject and share the learning between you. 

Assess and improve your testing process

Step back and look at how you do testing. Do you have the right environments for testing? Up to date test data? Are your tests automated or manual? How much coverage do you have with your regression testing? Are you covering non‑functional testing? How effective is your testing – are there bugs being uncovered in production?

By asking these questions, it focusses the mind on the bigger testing picture and the overall test approach, rather than just focussing on testing each individual requirement within a sprint.

What are the insights that you can offer using a Testers’ Mindset that others miss?

Start with the user story or requirements document, and verify whether the acceptance criteria is complete, that it is testable (ask questions, fill gaps, challenge assumptions), write the test scenarios, and run exploratory tests – have a play with the application. Look at other stories that could affect it or be affected by it. Think of other parts of the application, and interactions with other applications. What about edge cases?

Look at things from an end user perspective

Think about what is being delivered from an end user viewpoint, not just from a technology perspective. Although user stories are generally written in a ‘As a <role/person>, I want to do something so that I can see something else’ format, it is still easy to forget that an end user may not follow the paths through the application in the way that a business analyst anticipated. Put yourself in an end user’s role and ask if the delivered functionality is usable.

An example could be an amend data function, with a requirement for the user to confirm that they want to save any changes by showing a dialog box asking ‘Confirm Update’ with Yes & No buttons. If the user clicks ‘Yes’, it may seem a good idea to add a failsafe by showing another dialog box asking ‘Are you sure? Yes/No’, but this would be extremely annoying to an end user if they need to perform this second action many times during a day. Is a secondary confirmation really needed?

Here is an example of where a tester’s mindset can help.

Imagine that there are two agile teams involved in building a car. (I know it’s not strictly software, but I claim artistic licence here as modern cars do have a lot of software inside them.)

Story A1 = Chassis

Bob in team Alpha builds a car chassis for a 5‑door car as one story. He completes it, checks it, sees that it passes the acceptance criteria and signs it off, moving the task to the ‘Done’ column on his tracking board.

Story B1 = Car door

Sally in team Bravo builds a door for a 3‑door car chassis as a story. She completes it, checks it, sees that it passes the acceptance criteria and signs it off, moving the task to the ‘Done’ column on her tracking board.

Separately both pass, but put them together and they both fail, as the door does not fit the chassis.

Things cannot always be delivered and tested in isolation, without considering the wider picture, so don’t underestimate the importance of having a tester’s mindset.

I know that it is an extreme example, but sometimes you need something highly visual to illustrate the point that testers need to actually talk to one another.

My team work on numerous applications, where data flows through a central database so there are many interconnecting points. One of my lead testers had the brilliant idea of a Friday afternoon Test Team Stand‑up, where all the testers discuss upcoming releases and any integration testing that may be needed.
This means we no longer ask a tester to do some integration testing with just a few minutes notice, and with no time allocated within their sprint – it is baked into the process.

Improving your soft skills

Start off by doing a self‑assessment of your own soft skills. Think about your written and verbal communication and time management. What do you feel works well? What are the types of interactions where you feel uncomfortable and wish you could be better or be more confident at? Where do you struggle with managing your time and tasks? 

Introspection is not always an easy thing to do, so ask colleagues and line managers for constructive feedback – and keep an open mind.

Written communication skills

A good starting point is to research self‑help articles.

One that I found pointed me at something called the 5 Cs rule for writing emails, and recommends that they should be Clear, Concise, Complete, Courteous and Correct. There are different variations of the Cs, depending which site you go to (one has Compelling rather than Correct), but they all give you the same message.

Write an email, then check to see if it meets those criteria before sending. If you are still unsure, then as long as it isn’t confidential, ask someone else to sense check what you have written.

This applies to any types of written documents, for example reports and slides decks.

Contribute to online forum discussions – it’s a good way to get to know others and build up a dialogue. Be polite and non‑confrontational with your replies.

Read blogs to see how others write
their thoughts and ideas, and respond with your own comments to encourage
dialogue.

Verbal communication skills

Start by performing small presentations – maybe to just a few team members to help you gain experience and receive valuable feedback. Demo a story to the team in a sprint demo meeting to gain exposure to a wider audience.

From there, as confidence grows, you could perform a ‘lunch and learn session’ on a topic that you have researched.

You can also try tester or developer pairing to practice sharing your thoughts and discussing the ideas and opinions of others. Practice your listening skills, something that is overlooked as a soft skill, but we can learn a lot by listening to others.

Your organisation may have training courses to help you with things like communication skills, time management, etc. – larger organisations generally do, so it would be worth checking with your line manager or HR team.

Time management

One of the most useful tools that I have used is ‘The 18 Minutes Daily Template’ by Peter Bregman. He advocates planning out each day by listing out tasks that you need to complete, checking at periodic intervals that you are on track, and then reviewing at the end of the day what you achieved, challenges you faced and what you have learned.

I highly recommend this tool if you are struggling to manage your daily tasks, especially if you are being distracted by incoming emails and the needs and demands of others.

Improve your technical skills

Technical skills still need to be honed, and it is important not to become complacent with current techniques or approaches. Technology is constantly evolving and software development practices evolve with changing trends. The question we need to be asking ourselves is, “How do I keep up with these trends?”

One way to keep informed is by embracing social media outlets such as online blogs, LinkedIn, Twitter, and online forums. This will enable you to share experiences within a wider community of testers, discuss ideas and learn from them.

Growth Mindset – continuous improvement

Having the self‑motivation to continuously improve yourself is the key, and fostering a ‘growth mindset’ underpins that.

growth mindset

A ‘growth mindset’ creates the right attitude to learning, giving you the self‑belief and motivation so that you can improve your skills and knowledge in any given area if you apply yourself, and to reap the benefits from doing so.

You are in control of your own learning path.

In his book House Harkonnen, part of the Dune series, Brian Herbert states “The capacity to learn is a gift, the ability to learn is a skill, the willingness to learn is a choice”.

We all have the choice to learn, and should exercise that choice in order to maximise our potential.

How can you do this? Start by actively looking for opportunities to learn something new. Put yourself forward to try out new types of testing – if you haven’t tested APIs or mobile before and they are of interest and relevant to your organisation, then offer your services and do your research.

Nurture your growth mindset, and spread your training and learning across these three areas: the tester’s mindset, soft skills and technical. Be careful not to neglect any of them, no matter how good you believe you already are.

Once you have acknowledged your skills gaps, work out how you will plug them and then take action.

I hope these suggestions will help you to get started on your continuous improvement journey.

Where will you focus your efforts today?

This article was first published in the January 2017 issue of TEST Magazine. Steve Watson will be speaking at The National Software Testing Conference in May 2017.

 

Edited for web by Cecilia Rehn.

More
articles