Test script
![]() | This article possibly contains original research. (July 2009) |
A test script in software testing is a set of instructions that will be performed on the system under test to test that the system functions as expected.
There are various means for executing test scripts.
- Manually. These are more commonly called test cases.
- Automated
- Short program written in a programming language used to test part of the functionality of a software system. Test scripts written as a short program can either be written using a special automated functional GUI test tool (such as HP QuickTest Professional, Borland SilkTest, and Rational Robot) or in a well-known programming language (such as C++, C#, Tcl, Expect, Java, PHP, Perl, Powershell, Python, or Ruby).
- Extensively parameterized short programs a.k.a. Data-driven testing
- Reusable steps created in a table a.k.a. keyword-driven - or table-driven testing.
These last two types are also done in manual testing.
The major advantage of Automated testing is that tests may be executed continuously without the need for a human intervention. Another advantage over Manual testing in that it is easily repeatable, and thus is favoured when doing regression testing. It is worth considering automating tests if they are to be executed several times, for example as part of regression testing.
Disadvantages of automated testing are that automated tests are often poorly written or simply break during playback. Since most systems are designed with human interaction in mind, it is good practice that a human tests the system at some point. Automated tests can only examine what they have been programmed to examine. A trained manual tester can notice that the system under test is misbehaving without being prompted or directed. Therefore, when used in regression testing, manual testers can find new bugs while ensuring that old bugs do not reappear while an automated test can only ensure the latter.
One shouldn't fall into the trap of spending more time automating a test than it would take to simply execute it manually, unless it is planned to be executed several times.
See also