What is Automated Software Testing?

Article Details
  • Written By: Archana Khambekar
  • Edited By: Andrew Jones
  • Last Modified Date: 27 September 2019
  • Copyright Protected:
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
In 1961, the Kennedy family was given a puppy named Pushinka; her mother was one of the first Soviet space dogs.  more...

October 17 ,  1777 :  The British surrendered to US military forces in the Battle of Saratoga.  more...

Software is tested to confirm that all valid inputs are correctly interpreted and executed, while incorrect inputs are thrown out. Tests also verify that results are generated efficiently, and that a large volume of data can be handled without hiccups. Testing can be carried out manually or electronically. Automated software testing involves the use of specialized software to test the code that is under development. Such testing benefits the software development process, when applied judiciously.

Manual tests depend on the meticulousness of the people doing the testing. Manual software testing is time-consuming, and needs a significant ratio of testers to developers for most applications. This raises the cost of development. In addition, manual testing has the limitation that large amounts of data, or large numbers of simultaneous users or inputs, cannot be tested easily.

Automated software testing programmatically controls test execution, and the evaluation of output. The testing software provides inputs, which correspond to different conditions, to the software that is being evaluated. For each set of conditions, the testing software compares the actual results to desired results, and maintains statistics on the aggregate behavior of the target software. Following a “run”, the testing software typically provides summary results so that people can rapidly determine what to remedy.


In automated software testing, the tedious tasks involved in testing such as logging in, or entering data like postal addresses are mechanized. Vast combinations of conditions can be tested in each run. Since automated testing involves the use of computers and software, it also enables the simulation of large loads of input data or extremely rapid inputs. Each run of a number of test conditions can be completed in a matter of hours. Hence, automated testing is very useful for regression testing, which ensures that a new feature or bug fix did not inadvertently break previously working code.

Some recent development methodologies such as Extreme Programming emphasize that tests be available before coding. The development methodologies emphasize that regression testing be carried out multiple times each day to ensure the correctness of software as it develops. If the software team has to adhere to this methodology for any significant software, it becomes mandatory that automated software testing is used.

The automation testing software has to be fed the desired inputs and outputs. One way to do this is to store manual test conditions into the software. Another way is to write code to generate various conditions, within the acceptable limits of the software to be tested. Thus, the basis of automated software testing is definitely human effort. The automated testing software cannot go beyond this on its own.

Automated software testing has a significant cost in terms of the software to be acquired as well in its use. So, whether to automate, and what part of the testing to automate, are key decisions. Automated testing is not appropriate for features and environments that are expected to change significantly. In most applications, a mix of manual and automated testing is suitable.


You might also Like


Discuss this Article

Post your comments

Post Anonymously


forgot password?