|
Add to del.icio.us
Digg it!
Add to reddit
Add to MyWeb
Effective Management of Test Automation Failures
Hung Q. Nguyen, CEO, President, and Founder, LogiGear Corporation
In recent years, much attention has been paid to setting up test automation
frameworks which are
effective, easy to maintain, and allow the whole testing team to contribute to
the testing effort.
In doing so, we often leave out one of the most critical considerations of test
automation: What
do we do when the test automation doesn’t work correctly?
Testing teams need to develop a practical solution for determining who’s
accountable for analyzing
test automation failures, and ensure that the right processes and skills exist
to effectively do
the analysis.
There are three primary reasons why your test automation may not work
correctly:
-
There is an error in the automated test itself
-
The application under test (AUT) has changed
-
The automation has uncovered a bug in the AUT
The first step whenever a failed test occurs in test automation is to figure
out what happened. So who should be doing this?
Too often in testing organizations, it’s the case that as soon as a test
engineer runs into a problem
with the test automation, they simply tell the automation engineer “Hey, the
test automation isn’t working!”
The job of analysis then falls to the automation engineer, who is already
overburdened with
implementing/maintaining new and existing test automation.
How can we push this analysis ‘upstream’ to the test engineers who execute the
test automation?
In order to do this, we must first look at why the test engineers don’t feel
that they can or should
analyze the issues.
In a typical ‘scripting approach’ to test automation, the test engineers will
first write a verbose test case,
typically in Word, Excel, or some sort of in-house or 3rd party test case
management tool. Once that task is
completed, the test engineers effectively “throws it over the wall” to the
automation engineer.
The automation engineer thens create a scripted version of the test case, and
"throw it back over the wall”
to the test engineer, who then executes the automated test.
More often than not, the test engineer will not understand the scripted test
very well. If something is
broken, she relies on the automation engineer to figure out what went wrong.
This situation violates
the very principle of the four fundamental tasks that an experienced test
engineer must be able to do:
-
Design/write tests.
-
Execute tests and identify/seek out failure.
-
Analyze a failure for reproducibility and ideas to incorporate into new tests.
-
Report a failure and/or bug.
At a minimum, the test engineer should be able to analyze the results of the
automated tests,
and figure out if a failure is due to an actual bug in the AUT. If there is no
apparent bug,
then the test engineer should be able to determine whether or not a change
occurred in the
application. Finally if there is no apparent bug or changes in the AUT, then
she may confidently
consider that the issue was caused by an error in the automation.
So how can you empower the test engineer to analyze test automation failuress?
It’s simple really.
If your test engineers can create automated tests themselves, then
they will be empowered to analyze
those tests when they don’t work. In our experience, a keyword driven test
automation framework is
the best way to enable your test engineers to effectively own the analysis of
test automation failures.
With a properly implemented keyword-driven test automation framework, the
analysis of a test automation
failure consists of the following steps:
-
Did the test automation uncover a bug in the AUT? (Done by a test engineer)
- Was
the failure caused by a change in the AUT? (Done by a test engineer and/or
automation engineer)
- Was
the failure caused by an error in the automation itself? (Done by an automation
engineer)
With keyword driven test automation, scripting is kept to a minimum, so most of
your failures will
occur due to bugs or changes in the AUT. Test engineers should be able to do
most of the failure
analysis, freeing your automation engineers to focus more on creating new
automated tests, and
allowing you to further increase your test coverage, reduce testing time,
decrease maintenance,
and most importantly, create higher quality products!
Download free articles, white papers, templates and more!
|