Managing Automation Expectations
In order to implement a successful automation effort, testers need to educate management
on a number of different issues. Educating management on these issues could mean the
difference between a successful automation effort and a failed automation attempt.
One such important issue addresses integrating test automation into the entire development process.
Testers need to educate senior management as well as scripters on how a specific tool will fit into
their software development environment and software development life cycle. It is equally important
to remind everyone that manual testing does not end when automation is implemented.
Another issue concerns the purchasing of tools and their impact on test planning. Test planning, planning
what to test and how to test, becomes much more complex and more important when a tool is purchased. For
example, test automation is rarely justified for all testing. The tester needs to determine what tasks make
sense to automate and what does not make sense to automate.
Moreover, an organization needs to understand that automation does not eliminate manual efforts on the part
of testers. Testers need to maintain automation scripts and verify the execution of automated scripts.
This is manual work that needs to be factored into the test team's testing activities.
In addition, in order to automate successfully, testers need training and time to master test tools. Many
managers view test tools as simple capture/playback programs that a tester can learn and implement in his
or her spare time. This is a misconception. Successful test automation frequently requires the use of
complex tools tools that are much more complex that just capture/replay tools. In order to use these
tools effectively, testers need considerable training. Management needs to be committed to training testers
on these tools and to establishing the infrastructure in which the tool operates.
Also successful test automation requires the involvement of the software development team as well as testers.
In the past, developers and testers had minimal contact. Frequently, the philosophy was to "throw code over the
wall and see if it works". This type of interaction does not work when automating the testing process. Developers
and testers will need to work much more closely together. Developers will have to provide support personnel and technical
information on their development methods. They also will be asked to use the automation tools during their unit and/or
integration testing. More troubling to the developer will be that test automation may raise concerns about the testability
of their code. This especially will be the case if standards are not followed, or if developers use odd, homegrown or
even very new libraries/objects.
Finally, an organizations project management team must have a clear understanding about the types of roles and
responsibilities required for a successful automation effort. The creation of the test environment starts when an organization
purchases hardware and installs a tool. Then the test team and development team need to work together to build and maintain a
test automation environment that may include dedicated servers, workstations, databases and the like. Management needs to
include development of the test environment in the overall project plan. They should also budget for the resources needed
to successfully automate testing.
Back to outline
Roles and Responsibilities in Successful Automation
Mosaic consultants have found that in addition to a testing process, it is essential to have
dedicated automation testing resource(s) when using tools to support the test team as they
automate the testing process. The number of testing resources will vary depending on the size
of the project or organization. However, the following roles, duties and skills will help ensure
the success of the testing and automation effort: