Tuesday 19 June 2018

How Not To Get Into Test Automation

I’m going to have a bit of a moan. I’m not inclined to rant, however this has been a bugbear of mine for a while which came up again recently. I’m hoping that sharing my thoughts will hopefully both get them off my chest, whilst at the same time providing some useful career advice for budding testers.

Here’s an example of a conversation I recently had with a candidate for a testing job

Me - So what would you ideally like to be doing in a new role?

Candidate - Well I’ve got lots of experience of manual testing so I’d like to use my experience there, and ideally I’d also like the opportunity to get into automation

Me - have you done anything so far to develop automation tooling skills?

Candidate - No, the opportunity hasn’t come up in my previous roles so ideally I’d get a role with a company that’s going to help me develop in this area

Me - Sigh.

I have lost count of the number of times I’ve had this conversation and I’ve never hired a candidate off the back of such a discussion. I’m sorry to these candidates - but if I am hiring with automation in mind then the last person I’m going to hire is someone who claims to want to develop skills in that area but has taken no steps in acquiring those skills themselves.

If I want someone to create automation tools then the characteristics that I'm looking for are typically

  • They are capable of writing code to automate tests - this doesn’t have to involve knowing a specific language - just that they can understand coding structures
  • They are capable of understanding the benefits and limitations of automating test execution
  • They are capable of self learning

If you are not able to demonstrate these skills then it's naïve to expect an employer to land you with a juicy test role where you get trained in test automation.

To be absolutely clear, I'm not in any way stating that personal development is the sole responsibility of the employee and any new skills need to be progressed in their own time. What I am saying is that the chances that I would choose to invest time and money into building the skills of an individual increase significantly if that person can demonstrate the ability to learn and improve themselves. Opportunities for self progression don't often land unexpectedly, they tend to gravitate towards those people who appear to deserve and merit the opportunity.

Teach yourself

Across my previous testing roles I've created many test tools and harnesses

  • I created a multi-server database test scheduling harness in Linux shell after teaching myself shell scripting
  • After a manager rejected my proposal to automate ODBC tests, I did it anyway, demonstrated the value and got justification to build on and maintain these
  • I taught myself java in my evenings and created two test harnesses for acceptance and load testing the JDBC interface
  • I learned Perl to output our test build results in a readable html report
  • I learned python to create a simple test harness to parse JSON to test a REST interface
  • I learned ruby to create a random SQL query generator as a side project

In every single instance I learned the language off my own back in order to add the value in what I felt was the best way. Sometimes this started with some help from developers. Other times this involved sitting up late on Friday nights starting from "Hello World" with a beer and a few web pages to get me started on the basics of the language. Now I’m not advocating that everyone spend their Friday nights working, but if you’re driven to do something and are learning new skills it genuinely doesn’t feel like work (the beer helps with that!).

The intention here isn’t to show off - after all most of these harnesses were picked up, maintained and often improved by other members of my team who developed themselves and their skills in the process. Not only that but they then went on to create their own tools - not because I asked them to but because they wanted to and because they could. And the reason that they could was because I’d hired people with a demonstrable ability to self learn to improve their skills whilst adding value.

The technology doesn’t matter...

When hiring testers I’m not interested in whether they know a specific language or tool. I am, however, absolutely focussed on finding people that have shown the ability to drive their own improvement and make opportunities for themselves. This doesn’t necessarily have to involve tool creation, however the people who I have hired for this have shown clear evidence of researching and intelligently creating or introducing tools to improve the testing in their companies.

I remember once being particularly excited about a CV that landed on my desk. The tester in question had clearly self-learned new technologies in order to demonstrate value and suggest a number of improvements in previous roles that improved testing and saved time/money. Naturally I hired this person and she went on to become one of the best testing hires I’ve ever made. That CV became my go to example when talking to recruiters about what a good tester CV really looks like (a great way to discuss tester recruitment - I call it "recruitment by example" )

... and technologies alone aren’t enough

On the flip side, I’m also very sceptical of hiring individuals who have been trained in one technology, such as Selenium, and shown no flexibility in looking outside that at other tools or approaches. Testing ain’t programming people and, whilst coding with one technology is useful it’s not what makes a great tester.

One of the best testers I’ve hired has no coding skills but has delivered great automation. She used her strong testing knowledge and relationship building skills to motivate developers to help her in introducing automated acceptance testing. The same tester also introduced Session Based Exploratory Testing to cope with a cutting of testing headcount in the business. I’d rather have a tester with no coding skills who has effected change in this way over someone that’s worked exclusively on Selenium automation for 5 years.

Don't just sit there

So that’s it - rant over. I hope that if you’re a tester who is looking for work then you take some of this on board. Don't expect prospective employers to do the work for you. Be hungry, be proactive, be a pioneer of tools and approaches in your organisation, and ultimately be prepared to take the first few steps on whatever path you wish to pursue yourself...

..oh and if you live in commutable distance from Gloucestershire UK let me know - I’m always happy to speak to you as I'm frequently looking for proactive and passionate testers to join my team.

Photos by Fabrizio Verrecchia and Etienne Boulanger on Unsplash

Anonymous said...

very good post, I feel very identified despite spending a couple of years refusing to learn to develop. Today I believe 100% in self-learning, there is no other way.

Whatsapp Button works on Mobile Device only

Start typing and press Enter to search