3 Things a Modern QA Analyst Needs to Know
In my years of working in Quality Assurance (QA), I have heard many times that QA folks feel they are not developers, so they should not be looking at code. Many moons ago, that would have been accurate, since the role of a QA Analyst was to mainly look at front-end features after they were coded and moved to the QA environment. The QA Engineer would look at the back-end features, the database and code, and no more.
Well in today’s world of automated scripts and testing, that is no longer the case. In order to create an automation script (test), a QA Analyst needs to know some coding. The most common code for automation is Java, which is used in a popular tool called Selenium. Automation pretty much falls into these categories:
- 1. Create
- 2. Maintain
- 3. Execute
In order to create tests, we need to develop software to run the tests. As such, we need sufficient programming acumen to create an automation endeavor that is both audience-appropriate and maintainable. There are many ways in which we can acquire these skills: everything from formal schooling, online training courses or on the job training; there’s no set, best way to gain this ability. What is key, however is experience. The more experience you have, the more mistakes you’ve (hopefully) already learned from. These lessons then help to refine your automation implementation skills.
Furthermore, I am not suggesting that all testers must learn to code, but to be viable in today’s testing world, it sure can’t hurt! There will always be platforms and applications that present testing challenges because they can’t be automated in a valuable way or even not at all. We will always need humans to perform testing, because every test will not be perfect and repeatable, and sometimes it takes a sentient mind to find errors and anomalies.
Maintenance is the ability to maintain our automation as a superset of execution; if we expect to test any of the changes we make to our automated environment, we need to be able to execute it.
Maintenance can be as simple as changing the automation’s configuration to run against a different test environment. Or, it can also be as complex as debugging, modifying, and testing the automation code. In general, some amount of programming is required to be able to perform maintenance in an automation system.
The basic automation skill is that of executing automation. By execute, I don’t mean clicking a button and emailing results to someone: I mean running an automation tool, like Selenium, that executes logic against a system under test, understands what the tool is doing, evaluates the results of the that tool’s execution, and takes appropriate actions based on the results.
In order to do this, some expertise in the system and in the automation tool is necessary; the tool is not doing our jobs (QA). Instead, it’s helping us do our jobs more efficiently. We still have to know our roles and product domains.
If we find we are unable to run the tool or take action on its results, we may well have a problem with our tool or how we are using our tool. If only a small group of people is capable of using the tool, we probably will have an unacceptable bottleneck. Otherwise, perhaps it’s just a training issue; this is an issue that can usually be resolved.
As you can see, a lot goes into being a QA Analyst in today’s complex, automated testing environment. Tools and processes help the work get done quicker, but QA teams need a wide variety of skills to not only make sure automation runs smoothly, but also ensure that the experiences we create perform at a high level and delight visitors.