What is
automated software testing?
Let’s start out with a definition of software testing.
You might find some disagreement in the testing community about how to precisely
define it, but let's use a general statement that most people would
accept. Software testing is the act of
executing software to meet one, some, or all of the following goals :
- To make sure the software meets specified requirements
- To identify defects in the software (these defects are
often referred to as “bugs”)
- To gain an understanding of the level of quality of the
software
Currently, to meet these goals, many organizations utilize
manual software testing, meaning people sit in front of a computer and use test
scripts, which basically step the person through the test, once action at a
time. Often, many of these test scripts need to be executed repeatedly, as
successive releases of the software are readied for deployment. Not only can
this monotonous testing grow boring for the individuals that have to run the tests, but
from an organizational perspective it can be very resource intensive.
In order to help alleviate this problem, some companies
developed automated testing tools. In simple terms, after people use these
tools to create automated test scripts, the tools can run those scripts whenever
directed to do so, with little oversight needed from actual humans. This allows
the testers that would normally be executing the scripts manually to concentrate
on other, hopefully more interesting aspects of software testing.
We are now several generations along in terms of automated
test tools. For the most part, the first generations were difficult to use, and
the automated scripts they were used to create were not easily maintained. Now,
however, the latest tools have evolved into more user-friendly and efficient
applications that can be utilized by a broader range of people that have
different levels and types of skills.
|