If you live your life as a QA tester—specifically by testing software packages as they wend their way toward release—you’re probably hearing a lot about the need to double down on your coding skills. Especially as automation takes on a wider role in QA efforts, many an expert has declared that knowing how to code will soon be a requirement for anyone involved in software testing.
At the same time, some developers and QA testers argue that building software is a team effort, and each member of the team makes their own contribution with their own unique skills. While automation is particularly important in some areas—such as regression testing, load testing and security—these tech pros point out that prioritizing which areas to test, or stress-testing a product’s UI, require the kind of imagination that machines simply don’t possess.
“Writing code and debugging is the developer’s job,” said the authors of Guru99, a technology education web site. However, good testers should have “good knowledge of programming skills” and at least some familiarity with certain languages, depending on the type of testing they’re involved with.
For example, coding knowledge is necessary for testers focused on automated testing, just as understanding SQL is needed for efforts that involve database verification. In Agile testing environments, testers work closely with programmers and must understand the product’s code base. In any case, Guru99 recommends knowing your way around JavaScript (often used to write test scripts) and languages such as Java and VBScript.
The specifics will depend who you’re working for and the project you’re working on. The QA tester methodologies used vary “according to the need and specifications of the web site, app or application functionality,” said Bob Weber, president of the development firm Weblications in Princeton, N.J.
QA Testers: Knowing How to Think is Key
While he believes developers should act as the first level of QA, “unfortunately, developers don’t like to test their code,” Weber said. He doesn’t see that changing anytime soon: “That’s why QA testers need to create clever automated tests that run many permutations of data entry, links and such to capture problems that can then be fixed by the developers.”
Weber believes good testers have two important attributes: Solid logical thinking skills and a good knowledge of programming skills, particularly for scripting. “This doesn’t mean that QA testers need to be able to write programmatic code—writing code and debugging problems are the developer’s job,” he said. However, as scripting languages such as JavaScript, Perl, Ruby and SQL have evolved, “the ability to automate testing, create SQL queries and the like enable the QA tester to more effectively evaluate a web site or app.”
Weber notes that QA tester processes are becoming more complex and automated. As that evolution proceeds, he said, “script programming becomes increasingly important.” While some applications can be tested manually, automation is becoming more common and “requires a level of programming to get that job done.”
In particular, he believes QA testers should be able to create tests and automated processes that can “thoroughly and quickly evaluate an application.” As time goes on, “testers will need to be fluent in several scripting languages to effectively perform their job.”
Learning to Code, Learning to Test
Manual testers who want to learn coding skills have a number of options available to them, said Liz Eggleston, co-founder of Course Report, a tech-education evaluation site in New York. “If you already have a full-time job, then look at part-time bootcamps like Tech Talent South or Actualize, or even online bootcamps like Thinkful,” she suggested. “If you have more time, look into full-time immersive JavaScript bootcamps like Hack Reactor.”
Meanwhile, educational options dedicated to QA have begun to appear. Eggleston said DevMountain’s Software QA Immersive teaches JavaScript, Selenium and NightwatchJS, unit testing, load testing and API testing. “This is a great option” for people who are completely new to testing or tech, she believes.
For his part, Weber believes that all QA testers should understand manual testing (“This is not going away.”) and know at least two scripting languages (with one of them being JavaScript) as well as SQL. In addition to those skills, he said, the best testers have “an analytical mindset, good communication skills and an aptitude for manual and automated processes.” In general, he added, knowing how to program “will always help a QA specialist throughout their career.”
For many QA tester veterans of the field, knowing how to code is important for anyone working in technology. “Learning to code,” Eggleston said, “will help you understand the possibilities in your role, manage and work with other teams and take your career to the next level.”