Guide to automated software testing (test automation)

software developer

Automated software testing (test automation) is a part of the testing process at the stage of quality control in the software development process.

It uses software to run the tests and verify the results of execution, which helps to reduce testing time and make it easier to process.

The first attempts to automate appeared in the era of operating systems DOS and CP / M.


There are two main approaches to automated testing: testing and code-level testing of the user interface (eg, GUI testing). The first type includes, in particular, unit testing. The second – an imitation of user actions using special test frameworks.

GUI automation

The most common form of automation is to test applications in a graphical user interface (GUI). The popularity of this form of testing is due to two factors: first, the application is tested in the same way that people will use it, and secondly, it is possible to test the application, without having access to the source code.

GUI Automation has developed over four generations of tools and techniques :

Tools recording and playback (capture / playback tools) writes the tester during manual testing. They allow you to perform tests without direct human intervention for a long time, significantly increasing productivity and eliminating repetitive actions during manual testing.

At the same time, any small change in the software under test requires rewriting the manual tests.

Script Writing (scripting) – a form of programming languages specifically designed for automated software testing – mitigates many problems of recording and playback tools.

But programmers are engaged in the development of high-level who work separately from testers run tests directly. Moreover, the scripts are most suitable for testing GUI and can not be embedded, the packet in any way or even in a combined system.

Finally, changes in the test software require complex changes to the relevant scripts, and support the ever-increasing library of test scripts eventually becomes an insurmountable task.

Data-driven testing – a methodology that is used in test automation. The test scripts are executed and verified on the basis of data that is stored in a central repository or database.

Database role can execute ODBC- resources , csv or xls files , etc. Data-driven testing – the combination of several interacting test scripts and data sources in the framework used in the methodology.

Testing by keyword (Keyword-based) automation implies sharing the process of creating cases on two stages: planning and implementation phase.

In this case, the final test is not a program code and a description of the sequence of parameters ( for example, ” make a database with a username and password XXX YYY”).

One of the main problems of automated testing is its complexity: despite the fact that it eliminates part of routine operations and accelerates the execution of tests, more resources can be spent to upgrade the tests.

This applies to both types of automation. Refactoring is often necessary to update the unit tests, and code changes can take as much time as changing the core code.


To automate testing , there are many applications. The most popular ones in 2007:

HP LoadRunner, HP QuickTest Professional, HP Quality Center
Segue SilkPerformer
IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Rational TestStudio

Using these tools helps testers to automate the following tasks:

product installation
create test data
GUI interaction
definition of the problem

However, these automated tests can not completely replace manual testing.  Best use of automated tests – regression testing.


JUnit – testing applications for Java
NUnit – a JUnit port . NET
Selenium – testing applications HTML; supports browsers Internet Explorer, Mozilla Firefox, Opera, Google Chrome, Safari.
TOSCA Testsuite – application testing HTML,. NET, Java, SAP
UniTESK – testing applications in Java, C .