What does an automation tester do

Test automation definition, tutorial and article

© everythingpossible - stock.adobe.com

Test automation is a automated test procedure and denotes the Automation of test activities. In this web portal, this refers to the area Software quality assurance or the Software test limited, so the IT sector.

In this automated test procedure, a software product is tested using test automation tools available on the market or test software developed in-house. The software to be tested is addressed by this test automation tool and thus controlled. After each action, verification points are usually evaluated in order to check whether the result of the automated test step is as planned. If the result is not as planned, an anomaly should be logged as a result.

At the end of the day it has to be evaluated manually whether the anomaly is an error or not. The anomaly displayed by the test automation tool could, for example, also be based on a new software version with a correct and changed software design and "only" the test script was forgotten to update.

There are different levels of interfaces on which test automation can be based

  • GUI level - graphical user interface
  • API interfaces - e.g. HTTP
  • Unit tests at code level - Also known as unit tests or unit tests.

When and why does it make sense to introduce test automation?

Automated tests and the Introduction of test automation are in the QA process no "Got to"In order to produce high-quality software. However, test automation is useful for complex software with a higher proportion of regression tests (repeatable tests). Basically, a certain degree of regression tests speaks in favor of test automation.

If, on the other hand, software changes very rapidly and constantly (e.g. in the initial phase of the development process), test automation may not be the best choice, since the effort required to maintain the test automation can then be too high.

Test automation can hardly be dispensed with, especially in the course of agile development. Most best practices and good testimonials from Agile experts agree that automated tests are an extremely useful addition, especially for the shorter iterations. This means that tests can also run overnight and tests can also run automatically after each code check-in, including an automatic build process.

Continuous integration, continuous delivery and test levels

© -

When we talk about the automatic build process and automatic tests after code check-in, the catchphrase is "Continuous Integration", which has now come to the fore thanks to the agile methods. With "Continuous Integration", an automatic software build and installation process should run after the code check-in. Unit tests then run on the software in order to give the developers feedback on the fundamental quality of the software in the shortest possible time.

Other test levels such as integration tests and system tests (automated GUI tests) can also start automatically and provide quick feedback. It should be noted that the number of automated GUI tests should be much smaller than that of unit tests. This is supposed to be the diagram of theAgile test pyramid clarify.

Goal of test automation

© Coloures-Pic - stock.adobe.com

Test automation does not have to accelerate the development process Rather, the aim should be higher software quality due to higher test coverage.

In the end, the development time can certainly be shortened, as well earlier found bugs can be if the automated tests run more often, but this should not be the general focus. What is certain is the higher test quality and thus higher software quality if a suitable scope of test automation is selected at all test levels according to the software and the objectives.

If software has a very high need for regression tests, then automated testing is always a time and cost saving. Because thousands of test scripts can be run through in a short time after the automated tests have been created, whereas manual tests would require a lot more time and manpower.

In large software projects that are tested with many regression tests due to their complexity, the number of test cases and thus very long test execution times can quickly be so large that manual tests can no longer cover them, not even with multiple tests Testers. In this case, test automation is of course essential.

Pros and cons of test automation

Whether a "test script" is a better and more attentive "tester" than a "person" depends on the exact case. If a manual tester tests regression tests 8 hours a day, possibly the same tests every few days, one can certainly assume a certain operational blindness. Because every person sometimes overlooks something, especially with such an approach.

On the other hand, test scripts can have bugs and test automation tools can have bugs. And it can be forgotten to make necessary changes in the test automation in the event of software changes, so that the test script is still running, but no longer checks everything correctly. Errors would be concealed here and there is a sure mess when you look at the results, although there are errors that cannot be found due to the poor quality of the test scripts. A human manual tester might have noticed these errors directly. A test script just checks exactly what it is taught.

Furthermore, a test automation script has no intelligence. When performing manual tests, a human tester can always bring his experience into play and look left and right to see whether there are any errors outside of the exact test steps. Here we come in the space of exploratory and experiential testing.

Test automation is therefore certainly never a substitute for a complete manual test. Nevertheless, it is often a good tool in software quality assurance and that is why in many complex and large software projects a very large proportion of the tests are carried out using automated test procedures.

Most errors are found, however, if both tools of the software test are used properly.

Development of test automation and test tools

There is a large market for commercial and open source test automation tools. A very up-to-date and complete list can be found in this post: Test Automation Tools

There are various strategies for setting up test automation, from the introduction of existing test tools and adjustments to your own needs to the complete in-house development of a complete test automation tool and test automation framework. In general, development experience and programming are always required when setting up test automation.

© everythingpossible - stock.adobe.com

With good test automation, however, only a small number of test automation specialists need to be able to program. Through methods like Keyword-driven and data-driven test automation, can be automated to the outside world with the use of "keywords". A graphical user interface (UI) may also be available for this purpose, so that the testers can easily and efficiently compile the automated tests graphically. It is also important to determine the desired granularity of the keywords through a comprehensive analysis.

The keyword-driven approach also has tremendous maintenance benefits. The maintenance of the test automation is often an underestimated point, because the test automation system usually has to be adapted continuously. In general, when the software changes, the changes in the test automation should be able to be made in as few places as possible.

A good example of this is the "login" into a software application. This "login" test step will certainly appear later in most test scripts and test cases, but no one wants to adapt hundreds or even thousands of test scripts when the "login" is changed. To do this, a test automation solution must be structured in a sensible way.

Automated tests are a real software project

Unfortunately, automated testing in companies is often not given the attention it needs. "Just by the way" is not appropriate here. Test automation quickly becomes so complex that it has to be set up in a similar way to a software project. This also includes version control in order to have the code of the test scripts in a source code repository and to be able to easily understand changes.

Efforts should be estimated and test automation should be included in the project planning of the software to be tested. Sufficient budget must also be planned for, for manpower as well as tools and test environment. Bugs will certainly be found in the existing test automation solution, too error should be used for large test automation projects also in bug tracking tools (Defect management tools).

Short note: In addition to the extensive testing tool lists available on this web portal, you will soon also find a detailed list of bug tracking tools.

The following is an overview of articles on test automation by the testing board editorial team and additional articles from external blogs on the subject of "automated tests".