Let’s now dig into the second component of the manual vs. automation testing pair. Test automation aims at running more tests in less time. For that, test automation engineers develop test scripts for automated test execution. Designed based on frequently executed manual test cases, test scripts allow running multiple checks simultaneously, with no human assistance.
There are two common approaches to test automation: API-level testing and UI-level testing.
With API-level testing (or integration testing), testers ensure that the requests sent to the software’s business logic and other applications integrated with the test item are handled correctly.
UI-level testing, in turn, stands for checking software’s functionality via interacting with its UI elements. For that, test automation engineers can either develop custom automated test scripts or turn to visual comparison tools that allow analyzing an app’s UI against its previous version.
So, what are the types of testing that are worth automating?
High-volume regression testing
is the number one candidate for automation. Although it requires some preparation to set up an environment for running automated checks, design a test automation ecosystem, and develop test scripts, the time saved outweighs the initial investments.
Here’s an example from Slava Markovski
, QA automation expert at ITRex, to support this statement: replacing manual regression testing with test automation in a project dealing with insurance software featuring complex calculations allowed the team to reduce the regression testing runtime from two weeks to just two hours.
To ensure your test automation initiative yields guaranteed time and cost savings, it is better to evaluate the need for automation and start rolling out test automation activities, like preparing the needed environment and developing first tests scripts, at the beginning of a project.
Another type of testing worth automating is performance testing
, though it lies outside the immediate area of responsibility of test automation teams and is usually executed by performance engineers. To test the response times, throughput, resource utilization, stability, and scalability of an app, performance engineers simulate the behavior of several simultaneous users to check an app’s performance characteristics.
While developing test scripts, test automation engineers rely on tools that serve different purposes and span: