Why test automation skills are a career must
Face the facts: software testers with manual testing skills alone won't cut it in today's job market. Automated testing is all the rage. Yes, exploratory testing is important, and testers have certain skills that many developers do not, but the fact remains that automation testing continues to rise. Here's why gaining test automation skills is a quality assurance career must if you want to remain marketable as a tester and what technical skills and automation tools you need if you're just getting started with test automation.
For the past several years, QA and test analyst job ads have stressed the need for test automation skills. Four years ago, recruiters' advice to testers was loud and clear: gain technical and test automation skills! Since then, demand for test automation has continued to grow, and now some teams are completely eliminating manual testers and hiring only test professionals with test automation skills. This is partly due to the continuing shift toward agile development, which stresses both a "whole team" approach to quality and test automation for continuous integration. However, even teams that aren't fully embracing agile are recognizing the benefits of automating their regression test suites.
Is manual testing dead? This question sparked a heated debate on LinkedIn, with many testers defending the importance of manual testing. And in Please Let Manual Testers Be Manual Testers, blogger Ardesco writes a compelling argument ending with the plea: "Please don't try to turn manual testers into data entry clerks, and don't try and force them to become programmers; all you are doing is destroying the testing profession."
Whatever your views on the importance of manual testing, there's no denying that the industry is trending heavily toward automated testing. Testers can't afford to bury their heads in the sand and ignore the modern-day tools and techniques that are being used in development shops for test automation. This doesn't mean they're being asked to become data entry clerks or programmers, but it does require testers, like any other technology professionals, to be open to learning new skills and willing to grow and change with the times.
Do testers need to become programmers?
Having some programming experience will help any software tester. Even testers with no automated testing experience can benefit from understanding programming techniques and terminology. Testers who have exposure to coding practices can better communicate with the development team and can help with both white-box and black-box testing.
But where to start? With so many technologies and programming languages, a newbie may feel overwhelmed. You can get off to a good start by developing a better understanding of the technologies used by your development team. If you're not currently working on a development team, gaining basic web programming and SQL skills is a good start.
Elisabeth Hendrickson of TestObsessed collected data from 164 job ads to determine what programming skills were required for QA and test jobs and found that 80 percent of the positions required some programming knowledge—and that didn't include positions such as test automation engineer or developer in test, which definitely require programming expertise.
"No matter my personal beliefs, data suggests that anyone who is serious about a career in testing would do well to pick up at least one programming language," Hendrickson concludes in her report.
She found that the top five most requested programming skills, in order, were:
- SQL or relational database skills
- Java, including J2EE and EJBs
The following technologies, while not programming languages, were frequently called out as required skills:
- General web development skills including HTTP/HTTPS, HTML, CSS, and XPATH
- Web services or referenced SOAP and XSL/XSLT
Are programming skills required for test automation?
Though the documentation on some automation tools claims that programming skills are not required, a programmer or test automation engineer is ultimately required to do some programming. Those without a programming background often write tests using a simple keyword-driven language, which a test framework then converts to code or a test automation engineer uses to write interim test steps.
In other cases, the test framework may be data-driven, with inputs and outputs identified in spreadsheets. Here the manual tester is responsible for maintaining the test data and researching anomalies, hence Ardesco's reference to testers becoming "data entry clerks."
While it's possible for a manual tester with no programming skills to help create automation tests and test data, they may feel that the creativity they typically bring to the table with exploratory testing is being squelched. But compared to the tedious job of repeatedly executing manual regression tests, creating automation tests in any capacity is usually welcomed.
If nothing else, becoming familiar with automated testing tools and the process of creating automated tests will be a skill worth adding to a resume. The more technical and programming skills you have, the further you can go with test automation.
The top five automation technologies, according to Hendrickson, include:
- Selenium, including Selenium Remote Control (RC)
- xUnit frameworks such as JUnit, NUnit, TestNG, etc.
Start by learning the automated testing tool that your organization already uses. If you are conducting a job search and don't have access to a commercial tool, Selenium, the most popular automated testing technology, is open source and free of charge.
The more technical and automated testing skills you have, the more marketable you'll be as a tester. If you don't have the skills now, start learning. Even if you'd rather focus on manual testing, learning these technologies will let you help your team automate those tiresome regression tests and spend more of your creative energy on exploratory testing.