program is called automation tool, or test library. Software test automation runs test
cases, performs actions with the system under test, validates the outputs of the
system and logs the results [14]. This is all done without human intervention. Before
a testing tool can do the testing, it needs to be specifically instructed what exactly
needs to be done. This is done manually with test scripts [13]. The implementation
techniques for automated test scripts can be roughly divided into two methods; using
capture-playback tools or manual programming [14].
This section aims to shortly introduce the different approaches for automated
software testing. Manual test script programming opens up more powerful options
than capture-playback tools, and a special introduction is given on data-driven test
automation and keyword-driven test automation approaches. The concept of test
automation framework is also introduced.
2.3.1. Capture-playback tools
Capture-playback tools do basically what the name implies. The user starts to record
a session with the tool, and the tool captures every keystroke, mouse movement and
click that the user performs during the session. Once finished, the tool stores all the
actions performed into a test script. The generated test script can be played back to
automatically test the application later when necessary. [4] [13]
Creating test scripts with capture-playback tools can be fast and requires only
little, if any, technical skills from the tester, but they often result in test script
maintenance issues. To perform a small change into the test script, or if the
application’s user interface changes even slightly, it is often required to fully re-
record the test script from the beginning. Test automation scripts in general always
require maintenance, but with capture-playback tools, the needed maintenance
usually overwhelms the gained benefits in the long run. Test data is also hard coded
into the test script, and provides no means for test data variability. [13] [15, p.50-57]
2.3.2. Manual programming
A more flexible technique for implementing test automation is manual programming
of the test scripts for the automation tool. At a low level, it is comparable to software
development where programming or scripting language is used [16, p.65]. With good
software development practices utilized, the maintainability of the automated tests
increase, reducing the work effort needed after initial implementation.
Maintainability of automated tests is one key factor for achieving a positive return on
investment for repetitive testing tasks when compared to traditional manual testing.
Utilizing manual test script programming and levels of abstraction, a more
sophisticated approach to test automation can be achieved.
2.3.3. Data-driven test automation
Data-driven test automation can be described as taking a step further from basic
manual test script programming. The principle in data-driven testing is to
differentiate the actual test data from the test scripts [13] [15] [17]. This is done by
creating the test script manually, then replacing the used inputs and expected outputs