Professional Documents
Culture Documents
Fall 2005
GUI REGRESSION AUTOMATION
by
Cem Kaner, J.D., Ph.D.
Professor of Software Engineering
Florida Institute of Technology
and
James Bach
Principal, Satisfice Inc.
Copyright (c) Cem Kaner & James Bach, 2000-2004
This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this
license, visit http://creativecommons.org/licenses/by-sa/2.0/ or send a letter to Creative Commons, 559
Nathan Abbott Way, Stanford, California 94305, USA.
These notes are partially based on research that was supported by NSF Grant EIA-0113539 ITR/SY+PE:
"Improving the Education of Software Testers." Any opinions, findings and conclusions or
recommendations expressed in this material are those of the author(s) and do not necessarily reflect the
views of the National Science Foundation.
Black Box Software Testing Copyright © 2003-05 1
Overview
• The GUI regression test paradigm
• Engineering regression
automation: Some successful
architectures
• Planning for near-term ROI
• 30 common mistakes
• Questions to guide your analysis of
requirements
Acknowledgment
Much of the material in this section was developed or polished during the meetings of
the Los Altos Workshop on Software Testing (LAWST). See the paper, “Avoiding
Shelfware” for lists of the attendees and a description of the LAWST projects.
• The main GUI test tool vendors also support data-driven testing
Black Box Software Testing Copyright © 2003-05 56
Black Box Software Testing Copyright © 2003-05 57
You can plan for near-
term ROI
• Some tests are fundamentally repetitive,
and are reused many times in a short time
– Smoke testing
• Check every build with such basic
tests that failure disqualifies the build.
IfIfititcosts
costs10x
10x
– Variations on a theme
as
asmuch
muchto to
automate
automatethe the
• Many instances of almost the same
test, slight variations in data or timing test
testas asto
torun
runitit
• Useful for troubleshooting
bybyhand,
hand,but
but
you’ll
you’llrun runitit2020
– Configuration testing
times
timesin inthe
the
• Test 50 printers, same test suite, same
next
nextweek,week,of of
night.
• Who would want to run this suite 50x
course
courseyou you
by hand? should
should
automate
automateit. it.
Black Box Software Testing Copyright © 2003-05 58
You can plan for near-
term ROI
• Some tests are too hard to do manually.
Automate these tests to extend your reach
– Load and stress testing
– Life testing
– Function equivalence testing
– Performance benchmarking The value of
• Oracle (early 1980’s) did performance automating these is
comparisons of features from build to not that you save a
build to expose anomalous timing few nickels.
differences: The value is that
– often caused by delayed-fuse bugs, automation lets you
like wild pointers gain information
– bugs that might not become visible that you couldn’t
in normal testing until much later otherwise gain.
(and then they are irreproducible).
Black Box Software Testing Copyright © 2003-05 59
Black Box Software Testing Copyright © 2003-05 60
Common mistakes in
GUI test automation
1. Don’t write simplistic test cases.
2. Don’t make the code machine-specific.
3. Don’t automate bad tests.
4. Don’t create test scripts that won’t be
easy to maintain over the long term.
5. Avoid complex logic in your test
scripts.
6. Don’t mix test generation and test
execution.
7. Don’t deal unthinkingly with ancestral
code.
8. Don’t forget to retire outdated or
redundant regression tests.
• Requirement:
– “Anything that drives design choices.”
• The paper (Avoiding Shelfware) lists 27 questions. For example,
• Will the user interface of the application be stable or not?
• Let’s analyze it.
– The reality is that, in many companies, the UI changes late.
– Suppose we’re in an extreme case, the UI changes frequently and very
late.
– Does that mean we cannot automate cost effectively?
– No. It means that we should
• Do only those types of automation that can yield a fast return on
investment, or
• Invest carefully in an approach that maximizes maintainability.