What Skills #MakeATester – The Results

Last August I kicked off a little social media project on the back of my shock at the lack of content on University syllabus’ for Software Testing or QA. With this, I asked the increasingly awesome Testing community to list the skills/attributes that are required to make a good tester.

Life then kind of took over and my second son was born in December, so it has taken longer to collate all the responses from Twitter, this site and also responses on Post-It notes from the #AylTest event which i kicked it off at. After spending time merging categories and ordering them, there were 28 skills defined and over 400 votes. I can’t say I’m hugely surprised by the outcome but it does make for interesting reading (at least in my view 🙂 ).

So I won’t bore you with the full list, but let’s look at the top 5 skills/attributes which were voted for:

5th  – Coaching & Facilitating – 9% of votes

Being a good tester also requires the ability to mentor more junior testers, coaching them through any struggles they may have. Also from experience, it is usually QA/Testers who end up stepping forward and acting as Scrum Masters or facilitating project meetings and discussions, just because they feel more comfortable doing so.

It might also be a possibility that they may have to work with the developer to teach them good practices around unit testing or just trying to ensure their code is testable.

4th  – Ability to Continuously Learn – 13%

After 10 years in Software Engineering (last 7 in QA/Testing), I can honestly say that in the last few years, I have genuinely felt like I have learnt a new concept/technique/tool atleast every week, maybe even more frequently. This is largely due to the mass of amazing information and discussions that occur through social media or the testers slack channel or discussion forums through the Ministry of Testing or other sites.

Also, with the rapid change of technology, it always helps to be one step ahead and understand tools and techniques which will help you tackle the next app/web site/system that needs testing.

2nd = – Problem Solving & Analytical Thinking – 14%

Every piece of software is a new problem to solve as far as ensuring you have tested it enough to mitigate any risks and validate it is of a shippable level of quality. This of course then requires a degree of Analytical Thinking to understand how to overcome the problem. There isn’t one particular way to do this and every tester may have a slightly different way to tackle the problem

2nd = – Good Communication Skills (Written, Verbal and Listening) – 14%

Needing to be able to articulate well is a must have skill for all testers. Whether it be a defect report, a test case, test charter or even just discussing concerns with a co-worker, it is crucial that any communication is clear and concise to avoid any confusion or misunderstanding on the back of what was said/stated. It is therefore also crucial that a tester is able to listen to any response and be able to communicate further if needed.

1st – Curiosity & Asking Questions – 20%

If a tester isn’t curious, then they won’t ask the right questions, if they don’t ask the right questions, they won’t be able to test the software effectively. These questions could be asking the developer why things are working in a certain way, or it could be asking questions of the software during exploratory or test case/scenario identification. Without this ability, i would fear for the quality of the products being shipped.

Asking questions is clearly the most important skill when it comes to testing, and it starts at the conception of a project. From day 0, the tester can start raising questions and queries which will get other members of the team to think differently and look into ideas which could lead to a higher quality deliverable.

So what’s missing?

There have been a lot of debates over the last couple of years over whether coding skills are needed for testers. My view is even if you can’t code, you should atleast have the ability to read code and understand what is going on to be able to have a fighting chance at testing effectively. But my data shows that only 5% of the votes were for this skill so it would suggest that it may not be as high on peoples list of desired skills as i first thought.

 

What Now?

The next step for me is to find a way to look at showing anyone interested in testing roles that it isn’t necessarily about the technical skills you need, but more about making the most of the soft skills you may already possess. Being able to work through problems, communicating clearly and asking the pertinent question would be a huge asset to to QA team, possibly more than one individual who could automate all the testing.

I would love to reach out to students who are studying  a Computer Science degree course and show them that Software Testing is an option for them and maybe eventually even push the universities to start including content in their courses.

Software Testing at University – Is it an Option?

When I left university 10 years ago, I had no clue I would end up in QA/Testing. I didn’t even realise it was an option! Looking back on my degree course (and I really enjoyed my degree), it was very Programming heavy (C#, C++, Java and Prolog all taught) and testing was only taught as part of the Software Engineering module where maybe a week or two of lectures were given and there was a group project where one person was responsible for ‘testing’.

So, ten years on, have things changed? I’ve looked through the course content for the top UK universities for Computer Science to see how much content on Testing is available. Here are my findings:

  • The first University to have a module on ‘Software Testing’ was Swansea (ranked 11th)
  • Newcastle (ranked 14th) has a ‘Software Engineering Professional’ module in year 1 which covers ‘testing and debugging tools’ and a ‘Software Engineering’ module which covers the testing fundamentals
  • Surrey (ranked 8th) had a ‘Software Quality’ module in it’s ‘Software Development for Business’ degree
  • St Andrews, Oxford & Cambridge have modules on Model Checking which is not strictly testing but instead a pre-execution activity.
  • 6-7 of the top 10 have Software Engineering modules where Testing was a line item in the module description

So in a short answer, not a great deal of universities cover testing in any great detail. Swansea and Newcastle cover more than most.

I imagine a lot of students are leaving the top universities thinking Programming or Software Development are the main options for careers. How can it be changed? The software industry has evolved over the past few years to realise the important role testing plays in the software lifecycle. Can universities be made aware of this too?

I’m potentially going back to my university to give a careers talk in the near future and really want to paint this picture of the importance of testing. If students could see and feel the atmosphere at conferences such as Testbash or at Tester Gatherings up at down the country and feel the passion that so many testers feel for the job they do, it would open their eyes and make them realise the potential of other careers available to them.

Testing should be seen as an equal to development or at least a close second but a lot of these degrees are portraying it as a much smaller element of the SDLC.

I think maybe the issue with most/all Computer Science degree courses is that they are very Programming heavy, maybe they could teach slightly less of that and cover a lot more topics not just Testing.

If anyone has any suggestions for stuff I could share with Students about testing, if and when I get to give a careers talk, please comment here or tweet me @siprior.