As users and IT continue to look for ways to shorten application development timeframes, automating large portions of QA seems to promise a solution. But how far can you go?
The traditional quality assurance process is multi-step and requires at least two types of software testers: The first tester exercises data edit and processing functions in applications, and they ensure that all of these processes are working correctly. The second QA tester is more familiar with the business’s needs and how the application should address them. This tester is usually savvy about application technical details as well as the business systems with which the application is going to interact.
But there’s more to QA than just these two front-running functions. Applications must be integration-tested to ensure that they interact and exchange data with all of the different systems and data that they work with. They must also be moved to application staging areas where they can be regression tested. This ensures that they don’t break any other existing software with which they interface and that they can run the maximum amount of transactions for which they were designed in production.
SEE: Hiring kit: Back-end Developer (TechRepublic Premium)
From an IT standpoint, applications must pass through all of these hurdles before they can go live. What’s frustrating is that QA staffs are small, and it takes time to move applications through all of these tests. At the same time, organizations don’t like to add more QA staff. This begs the question of which QA tests can be automated so that human QA people aren’t needed.
The QA automation testing toolset
Automation tools are productively used in software QA when the testing that these tools are performing is repetitive in nature and highly predictable. The reason is simple: These tools are only as good as the QA staff programs.
If a tool is programmed to track and confirm forward user navigation on a website, but isn’t programmed for backward navigation, only forward navigation will be checked. With this in mind, here are four common categories of QA test automation tools.
Application unit test automation
This verifies that application code syntax is correct, debugs it and assures that the application’s code is clean so the app can be advanced for further testing.
This is where automation test scripts can execute various business processing scenarios that the application is likely to encounter. The objective is to test that the application can process the business functions for which it was designed.
Automated application execution scripts that run system-wide regression tests
These ensure that the introduction of the new application doesn’t compromise existing IT infrastructure.
Automation tools that QA can script to simulate user interactions
These tools work ensure that usability and functionality are achieved by the application. All of these tools can enable QA to reduce the amount of human time spent on testing applications.
Can QA automation solve every QA need?
QA automation tools assist QA in handling its workload, but automation can’t be used in every situation. In the DevOps and agile environment, for example, the code and user requirements change so often that you never arrive at a point of application stability where automation could be used. In these cases, applications must be manually tested.
In other cases, such as during user interface design, QA automation can’t possibly anticipate how every user will utilize an application, since humans are unpredictable. There is some processing that is so complex that only an experienced human QA person can test it.
What QA can do
QA can best implement test automation scripts and tools in cases where application processes are repetitive and predictable. In other cases, such as when an application and its requirements continue to change, manual testing is the better option. The task for QA managers is to identify those areas of QA that are highly repetitive and tedious.
These areas are typically well suited to testing automation. Most importantly, they enable QA professionals to focus on what they do best: Rooting out the hidden issues in applications that could occur when an unpredictable event occurs, causing the application to fail.