How to Upskill from Manual to Automated Testing
Testing is evolving. A few short years ago, the role of a software tester was more or less what it said on the tin – someone who ran tests against software to check that the requirements had been satisfied.
However, fast forward to 2017, and there is reducing demand for people to manually execute tests against software, and the reasons why are not hard to understand. Manual testing is slow, expensive and prone to error. In a world where the consumer expects fast-paced delivery, and solutions must support a myriad of devices and platforms, manual testing simply doesn’t enable the delivery pace that the market expects. The rise of automated testing in response to this has been rapid. Leveraging the practise of “building software to test software” is faster and more accurate than manual testing, plus, unlike a human Test Engineer, a piece of testing software can run around the clock.
So testing has changed, and so, therefore, has the role of a Tester. Whilst testers are becoming more removed from the hands-on process of test execution, Test Engineers still have an absolutely critical role to play – namely, developing the automated platforms which will run the tests and provide analysis. But to be able to fulfil that role, they need the right skill sets.
Why do I need to move to Automated Testing?
In Fruition’s latest report into the development and testing recruitment market in Yorkshire, we found that demand for manual Testers had fallen sharply even in the past six months. Permanent job vacancies were down by around 15 per cent, while conversely, opportunities for manual Test Engineer contractors rose. In other words, less and less IT companies are employing manual Testers directly, preferring to hire on a piecemeal basis as and when the need arises, because they do not have the volume of work to justify permanent recruitment. For the manual Testers, the effect is a reduction in job security and earning potential.
On the other hand, demand for Test Automation Engineers is booming, with both permanent vacancies and salaries enjoying a steady upward trajectory. The key driver is that companies are looking to recruit Test Engineers with programming skills, who can manage the whole process of developing, running and managing automated tests.
Anecdotally, we are learning that the status of Testers with these skill sets within a DevOps culture is rising all the time. With competition in the market intensified by ever more sophisticated technology and pressure to bring platforms online as efficiently as possible, Test Engineers are becoming a crucial cog in the smooth delivery of IT products and services – the ‘go to’ people for ensuring QoS and RoI. With that enhanced status will come greater opportunities, and greater earning potential.
What do I need to learn?
To be able to make the most of these emerging opportunities, Testers will need to upskill and embrace new ways of working. To use the analogy of a factory production line, the move from manual to automated testing is like the move from an assembler to the skilled engineer who builds the assembly machines. Test Automation Engineers are being asked to build testing software, and the key skill they need for that is programming.
Aside from the programming language itself, there are a number of other core skills recommended to any would be Automated Test Engineer. Knowledge of SQL features high on the list of in-demand skills, as much of the work of an Automated Test Engineer centres around creating, managing and interpreting data in databases.
Knowledge of Continuous Integration (CI) is desirable, as a key facet of the move to automated testing is that testing happens much closer to the development process, as each change to the codebase automatically triggers the execution of automated tests and provides rapid feedback on the validity of the changes. Understanding how to automate that process adds critical value to how efficient and reliable the whole testing process is. This is reflected in the market, with a lot of IT companies looking for working knowledge of pre-packaged testing applications, with Selenium particularly popular.
Testers now need to be much more cognisant of software architecture too. Traditional functional testing was carried out on a “black box” basis – with the tester having no knowledge of the inner workings. Continuous Integration pipelines can generate code coverage metrics which highlight areas of code which lack test coverage, and an ability to understand that output and design test cases to execute targeted areas of the solution is a hugely desirable skill.
Finally, as testing the gap between development and testing narrows, it is often said that training to be a developer requires much more than just technical skills. Just as importantly, good programmers require skills in critical thinking, problem solving, management of delivery and good organisation – in other words, all the non-technical skills you need to be able to move from concept to finished project.
This applies equally in test automation – the process starts with a concept, and a set of criteria that the solution needs to fulfil, and the testers need to develop a process which can do that accurately, reliably, efficiently and, often, repeatedly. No longer is testing an “end game” activity, when the finished product is handed over the wall to be tested. Teams work collaboratively to develop solutions iteratively, with testing forming a core part of that evolutionary process. That is a key reason why, at the very top of our in-demand skills list for Automated Test Engineers, expose to working in an Agile environment was number one.
So in summary, if you are working as a Manual Tester, the weight of evidence suggests that the future of the discipline lies in automation. With IT companies looking for the cost and efficiency benefits of faster, more accurate, continuous testing, those in the testing profession seem to have a choice between a narrowing of opportunities, or upskilling and becoming a key figure in the DevOps culture. At one time, separation between development and testing was clear cut, and both disciplines required quite distinct skill sets. But with the rise of test automation, that is no longer the case, and the demand in testing now is for people with the programming skills to develop and manage the automated testing platforms.
Fruition is an IT recruitment specialist based in Leeds. As well as recruitment for development and testing roles in the Yorkshire region and beyond, we specialise in information security roles, infrastructure and service management, and analysis and project management. To find out more about the services we offer, please contact us here.