You are on page 1of 3

Foster and Automated Testing

Automated software testing (or software test automation) is software testing aided by
specialized software tools that provide the ability to define a test, run it multiple times
and verify the results with a low amount human interaction.

In Foster it is useful to define two major areas for automated testing: the user interface
(UI) and the middle-tier and business-level testing. The UI is what users see and work
with, but it is the layers beyond the UI that move all the data between the UI and the
business layer and it is the business layer that define the major business rules that
allow/restrict access to said data.

Automated UI testing can be done by recording a series of actions on the UI (like clicking
a button on the toolbar, typing in a deal number and then pressing Get, etc.) and replaying
these recordings and verify the results. Business level testing can be achieved by creating
test scripts (pieces of code that describe how an automated tool should interact with the
Foster) and running these test scripts with an automated test tool.

Automated testing is beneficial primary in the fields of regression testing: repeatedly


cycling through the test scripts and for measuring the performance of the system.
Automated tests at best highlight the differences between expected outcomes and actual
outcomes. It is worth noting that an automated test cannot investigate the reasons for,
isolate the causes of or explain the impact of a particular bug. Manual intervention is
always necessary at some point. With that said, automated testing is a very useful tool for
detecting a large number of common software errors.

Benefits of Automated Tests:


 It eliminates human error due to boredom and fatigue (for example if a tester has
to cycle through 500 deals in Foster, it is likely that (s)he will make a mistake
after the 200th, simply because (s)he gets bored, the screen looks almost the same
for two deals, so it becomes increasingly easier to miss something erroneous.)
 It frees up testers for more useful, constructive and creative applications of their
knowledge (instead of letting a tester create 100 new commodities/ deals/etc. for
testing purposes, an automated test tool can be used to do such tasks. It is
estimated that currently testers spend 1-3 days with recreating test data after each
test deployment. With an automated test tool this period could be as short as 2-4
hours.)
 It allows a tester to pass large amounts of data through the product quickly, thus
validating most of the basic functions. The tester can then concentrate on specific
mission critical or high risk functions to properly evaluate them. For example, a
large amount of basic functionality testing can be automated: accessing all forms
and see if they come up properly, verifying control content, etc. In the time freed
up by automated tests, testers can manually test newly product features.
 It allows testers to spend less time on documentation and more time on planning
and conducting those tests: after creating an automated test, it is a completely self-

Foster And Automated Testing 1 of 3


containing block of code, so testers usually need not to worry about their
internals.
 Results are very consistent, which is not possible during manual testing. An
automated test will return the same results every time it is run on the same project,
while manual testing results can be varying due to human mistakes.
 It helps management a great deal by allowing them to manage a smaller test team.
 It helps producing a rapid acceleration in project development and hence creates
cost savings on a large scale and continuing basis. The following diagram shows
the reduction in development cycle time caused by automated tests (note that the
very first entry for automated tests takes longer as test scripts have to be
developed, but on subsequent runs, hey complete much faster):

Test Execution 1 2 3 4 5 6  
Manual 15 15 15 15 15 15 90 hours
Automated 45 2 2 2 2 2 55 hours

Drawbacks of Automation:
 Not as flexible as manual testing – whenever there are some changes in the
product, many test scripts might have to be updated (when a combo box is not
enabled by default on the Legal Status form, some test scripts will break down
and report errors; these tests will have to updated before automated testing can
begin.)
 Higher skill requirements – tests scripts are usually written in some scripting
language which requires some familiarity with programming.

Automated Test Tools

Several automated tools exist that can be used with Foster to cover multiple areas of
testing. Areas that can be automated include:

 Deployment testing (checking for Foster components on a client machine and


verifying that they all downloaded correctly.)
 Navigation within Foster (going from form to form, opening dialogs, etc.)
 Testing specific business functions (querying for a specific deal on Dole List
form, trying to save a commodity with a name that already exists and checking for
an error message, etc.)
 Data verification on the UI (on the Dole form a deal can be automatically checked
to make sure that all fields contain the correct data, etc.)
 Load testing and simulating multiple users to recreate production scenarios where
multiple users access Foster concurrently.
 Loading test data (as mentioned earlier) to help tester to recreate a test
environment.

The following automated test tools are available (among others):

Foster And Automated Testing 2 of 3


 Mercury Interactive WinRunner
 Segue SilkTest
 IBM/Rational TestManager

These tools allow testers to record actions on the UI and then replay them and they have
their own scripting language to create test scripts. Usually they provide interfaces to
access testing results programmatically and they have capabilities to integrate with
existing bug tracking systems.

The following diagram shows the process of integrated manual and automated testing:

New Test Create New/


Can old test
Release Replace
scripts be No
Available For Obsolete
used?
QA Test Scripts

Yes

Create Test
Scripts For
New
Features

Run Manual
Automated Usability
Tests Testing

Development Major Issues Release


Yes No
Fixes Issues Found? Product

The diagram shows that automated testing can be done in parallel to manual testing
(which is necessary to test areas that automated testing cannot cover, like usability
testing, etc.) and then results can be evaluated.

As a conclusion, automated tests can provide a very effective (in reducing development
cycle/costs) addition to existing manual testing and should be used to help Foster
development to the maximum possible extent.

Foster And Automated Testing 3 of 3

You might also like