The software industry’s evolution is changing the landscape of software QA. Mobile applications, new approaches to development and automation are all having an impact.
The Bureau of Labor Statistics predicts strong growth in positions for software QA engineers, forecasting the creation of some 100,000 new positions through 2022. Today, the average salary in software QA is $75,444, according to the most recent Dice Salary Survey.
Many of those new jobs are bound to be in the mobile space. “Five years ago, only 5 percent of testing was in mobile applications. Today, 80 percent is in mobile applications,” says Mikhail Portnov, director of the Portnov Computer School in Los Altos, Calif., which trains career-changers for positions in software QA. Mobile testers, he says, must understand Android, iOS and other mobile platforms, in addition to common programming languages.
The rise of Agile development has led to an integration between developers and testers, according to Lee Copeland, author of A Practitioner’s Guide to Software Test Design. “In Agile, there’s no place for the stove-piped, throw-it-over-the-wall structures that previously pervaded the industry,” he says. “Now, developers and testers work closely together within a development iteration, both taking responsibility for product quality.”
This practice has spawned the rise of SDETs – Software Development Engineers in Test – who have the background and experience to create code but instead choose to focus on the testing aspects of development. While this might send shivers down the spine of classical testers, Copeland sees a future for both.
Facebook, for instance, doesn’t have a separate testing group, according to Facebook Software Engineer Simon Stewart, who recently spoke at the Special Interest Group in Testing (SIGiST) in London. Copeland sees this approach as the wave of the future.
Context has challenged testers to use their intelligence in attacking problems, rather than rely on decades-old standards and approaches, Copeland says. It’s led to exploratory – rather than scripted — testing, expanding on approaches that are focused on determining whether the product is working correctly or incorrectly, finding defects, or increasing confidence in the system. Narrow focus can be of limited use, he points out.
Emphasis on Programming, Automation
Today, employers want software testers who know at least one programming language. They don’t need to be at the level of a developer, Portnov says, but should understand constructs like loops, conditional branching, arrays and data types. “It doesn’t have to be Java or C++. It might be Python of something else,” he explains. But, “it’s a must now, if you want to be in the field.”
Matt Miller, the Irvine, Calif.-based CTO of CyberCoders, recently told Dice that clients are seeking skills in Java, Python, Ruby, C++, Puppet or Chef. He’s also seeing more white and black box testing. White box testing uses an application’s internal structures to design test cases and requires engineers to have programming skills. Black box testing takes an external perspective to test functionality.
Finally, a real enthusiasm for technology is important. If a hiring decision is between a 35-year-old career changer with a Ph.D. in microbiology and a 17-year-old with no college education, companies will choose the teen who has grown up with technology and never known life without it.