Test automation is an automated test method and describes the automation of test activities. In this web portal, this is limited to the area of software quality assurance or the software test, i.e. the IT sector.
In this automated test procedure, a software product is tested with test automation tools or self-developed test software on the market. The software to be tested is addressed and controlled by this test automation tool. After each action, verification points are evaluated in the normal case in order to check whether the result is as planned in the automated test step. If the result is not as planned, an anomaly should be logged as a result.
There are different levels of interfaces on which test automation can be based
- GUI Level – Graphical user interface
- API interfaces – eg. HTTP
- Unit tests on code level – Also called module tests or component tests.
When and why is the introduction of test automation useful?
Automated testing and the introduction of test automation into the QA process are not a “must “to produce high-quality software. However, test automation is available with complex software with a higher proportion of regression tests (repeatable tests). Basically, a certain degree of regression testing is required for test automation.
If, on the other hand, software changes very strongly and constantly (for example, in the initial phase of the development process), test automation cannot be the best choice because the effort involved in maintaining the test automation can then be too high.
Especially in the course of the agile development, test automation can hardly be dispensed with. Most of the best practices and good experience reports from agile experts agree that automated testing is a very useful addition, especially in the case of shorter iterations. Thus, tests can 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 term “continuous integration”, which has just been brought to the fore by the Agile methods, is called the “Continuous Integration”. In the “Continuous Integration”, an automatic software build and installation process is to be carried out after the code check-in. Subsequently, unit tests are run through the software to provide developers with feedback on the basic quality of the software in the shortest possible time.
Other test levels, such as integration tests and system tests (automated GUI tests), can start automatically and provide rapid feedback. It should be noted that the number of automated GUI tests should be much smaller than the unit tests.
The aim of the test automation
Test automation does not have to accelerate the development process; the goal should rather be a higher software quality through higher test coverage.
In the end, the development time can certainly be shortened as errors can be found even earlier when the automated tests run more often, but this should not be the general focus. What is certain is the higher test quality and therefore higher software quality if a suitable amount of test automation is selected on all test levels according to the software and the objectives.
If a software has a very high demand for regression tests, automated testing is in any case also a time gain as well as a cost saving. Because after the automated tests have been completed, thousands of test scripts can be run through in a short time, whereas in the manual test a lot of time and labor would be needed.
For large software projects, which are tested for complexity with many regression tests, one quickly achieves such large dimensions of test cases and thus very long test execution times that one could not cover it with manual tests, even with a multiple Testers In this case, a test automation is, of course, essential.