article-spots
article-carousel-spots
programs
Hard skills
Test automation: Robots work hard — people rest!
17 Sep 2021

Test automation is one of the most popular IT directions in the EPAM training center. Let us see why. Today we will study the objectives of test automation and in what cases it is used. 

Test automation objectives

Any testing aims to get as much data about the application quality as possible within the project resources. Typically, these resources (time, budget, team competencies, software, and hardware) are limited. Therefore, software test automation is one of the ways to optimize resources.

Time-saving

From the practical point of view, the automation of testing is the transfer of many tasks, carried out manually by engineers, to software and hardware complexes.

Such a transfer implies that the software solution will accomplish a certain task with acceptable quality and less cost. First of all, time cost. The program does not spend time on smoke and coffee breaks, it does not get tired at the end of the working day and can operate in the 24x7x365 mode.

Exemption from routine

Programs do only what they were created for: they follow their algorithm. They perform routine operations much better than a man. For example, they will easily run a script with thousands of different data sets. This is difficult for a man: performing routine operations over a long period of time causes fatigue. And fatigue causes mistakes and slows down the pace of work.

But programs do not have intuition and are not able to generate creative solutions. Thanks to the transfer of work “to robots” engineers have more time to do other things. For example, they can embed a new type, or technique, or an instrument in the process of creating a software product. This will provide additional information on the quality of the application and reduce the likelihood of previously undetected errors.

Reliability

An important factor in automation is increasing reliability. Once programmed and tuned, the algorithm implemented by the program will always run the same way, with the same result. The program will not confuse and forget to enter the input data, will not miss the check of the required parameter and it does not have an “eye closed” from endless repetitions. If a failure occurs, it will be registered.

When do we apply automation testing?

Economic feasibility

From a technical point of view, any test tasks can be automated. Or at least most of them. The question is how much it will cost. Some types of testing are easier, cheaper, and faster to perform manually. For example, evaluation of the usability of the graphical user interface: one can evaluate, offhand, location of controls, their layout, color scheme, and the logic of the interface.

Yes, most of these checks can be performed by software. But time spent on creating the appropriate algorithm, validating it, implementing it, executing, and analyzing the results obtained can greatly exceed the time and cost of performing such verification manually. To avoid this, the economic feasibility of automation (Return On Investments, ROI) is calculated at the stage of preparation of test automation.

Regression and smoke testing

However, for many types of testing, automation is economically feasible. First of all, for such time-consuming and relatively long-term types of testing, like regression and smoke testing. Their feature is in multiple repetitions of a large number of tests under the same conditions. Therefore, they are easy to debug and then execute one at a time.

Unit-testing

There are types of tests that cannot be performed manually in principle. For example, modular (unit) testing: it is impossible to check manually millions of operators, transitions and their chains, combinations on all possible datasets. Or performance testing: how can you manually simulate the simultaneous access to the site of thousands or even tens of thousands of users? You can't do it without special software. 

Accessibility testing

There are also specific types of testing that provide additional information on the quality of the application required by the subject area or conditions of application. For example, accessibility testing (accessibility) describes the ability of users with special needs to use the application.

The requirement that public commercial and government services be accessible to such groups of users is now regulated by the legislation of most developed countries, and customers require that products be made accessible on a mandatory basis. These checks are technically simple but numerous and routine. Manual checks can take up to several days while automating them with freely available tools is easy and the main part of the checks takes no more than a few minutes.

Integration of automation into software development

And, of course, one cannot ignore the question of integrating automated types of testing into modern software development processes (Software Development Life Cycle, SDLC). The current standard is the Continuous Integration and Deployment (CI/CD) concept. All modern tools of automation of testing are designed for fast and as simple as possible, «seamless», integration with CI/CD tools - Jenkins, Bambo, GitHub, cloud services like AWS or Azure. So, the procedures of automatic testing and deployment of a new build can be started with a single click.