Agile Ebook
Agile Ebook
LogiGear
This eBook outlines ten ways to improve your automation, and includes some of our own experiences, as well as some
projects that we’ve tackled for clients over the years. We know that there are still a wide number of organizations that
are still struggling with Agile; whether you are new to automation, or an experienced practitioner, we hope that you
use this eBook as a resource.
In his prior role as project director at CMG (now CGI) in the Netherlands, Hans
assisted clients across Europe in developing and deploying software testing
solutions. He is an internationally recognized expert on test automation, test
development and testing technology management. He is co-author of
Integrated Test Design and Automation (Addison Wesley, 2001), and speaks
frequently at international testing conferences.
ABT is a modular-design and action-driven test In ABT the focus is on development of test assets
method that provides a systematic approach to called “test modules”, an activity that can be
increase the success of automated testing. independent from system development. It has no
Modular-design addresses the challenges of test specific preference on when in the Agile process
planning and test case management through those test modules are developed. That makes it
efficient test organization. easy to integrate the methodology into Agile. The
term often used for test automation in Agile
Action-driven test development eliminates the
projects that best describes what is needed is
majority of the programming work required to
“just-in-time automation.” When ABT is applied,
automate and maintain tests long-term. ABT
the term changes to “just in time test
consists of three parts:
development.” Independent to that, a high level
1. TOP-DOWN, MODULAR TEST PLANNING of automation can be an invaluable contribution
in improving the productivity and speed in sprints.
2. TEST MODULE DEVELOPMENT
3. ACTION-DRIVEN TEST AUTHORING
Test design
Making automated testing successful (scalable and How can automated functional testing fit into Agile
maintainable for the long-term) is often regarded as a projects? That is a question we encounter a lot
technical challenge, when in reality, it is a test design nowadays. Functional testing often remains a manual
challenge: process because during Agile iterations/sprints, there is
simply not enough time to automate it. This is dissimilar
● Technical problems can take precedence to unit testing, which is routinely automated effectively.
sometimes, but once resolved they normally go off the
critical path. The organization of tests in meaningful modules, the
separation of test design from automation design, and
● On the other hand, poorly organized tests can be a the low-maintenance action/keyword foundation all
continuous burden for their automation. contribute to making ABT the sure path to success for
Agile Automation. These are proven results.
Test design, while essential, is only one of the many activities of test development. Other activities include
test execution, test result follow up, and test maintenance. Automation architecture and implementation
are the technical part of a test automation project. Both test design and automation architecture need to
be thoughtfully organized with product development phases in mind.
Automation Automation
What is an action?
Actions are the building blocks of your test
cases, telling the system which operations to
perform. Actions typically interface with the
application under test, but may have other
functions as well. These include documentary
actions, actions that interact with the host file
system, and various support actions.
Agree on the approach, both the method in general and various relevant practices. Discussions on
fundamentals can slow a team down. To ease the process we like to do “sit down meetings”: at the end
of the day come together, relax (“sit down”), and discuss experiences and practices, if possible with an
experienced person in the room. It works better than retrospectives if a new trade needs to be learned
and understood.
Build the framework. Use an iterative approach. Start high level and build down.
Save design and maintenance time by using a just-in-time, JIT, approach.
Hybrid approach: business-level tests are developed early; detailed, typically UI-specific tests are created
in parallel with the development sprints.
Test and automation artifacts are products in their own right, with their own life cycles that may or may not
be embedded in sprints. For example a test module can be developed early independent of sprints, but
also early within a sprint. An interaction test module will normally be developed later in a sprint, when the
interaction functionality has been defined and/or developed and is stable. Actions might be implemented
long after (or even before) their use in tests.
Automated tests can be very disruptive if they’re too sensitive to changes of the application under test or
its environment. Much of what we discuss in Action Based Testing is aimed in achieving resilience:
● The ability of tests to still work even if there are changes.
● If a change in the tests or their automation is needed, it should be localized, in a single or few actions or
interface mappings.
The automation engineer cannot do this alone; it is a team responsibility, for example:
● The tester needs to produce a test design that is good for automation: specify detailed steps and
checks if and only if needed.
● The developers should play their role by providing insight in what they produce, and by baking testability
into their products.
● Product owners should help come up with “interesting” cases: business situations that they know are
hard for the application to handle. Without their help tests often get bland (and low level).
Share responsibility
One of our financial services clients was a few months into a project when
automation problems seeded and started to get out of control. They got
help. We paused the project. We then re-structured, reinforced and began
building again. We began by following the XP practice of coding
standards, common data formats, common naming suggestions, and most
of all, common test design methods. Team members were taught that
actions are shared and tests are shared—by using this practice,
maintenance became easier, and also became a shared responsibility.
Once we rebuilt the foundation, most of the tests that were created during
the initial phase were thrown out but after that the team’s test creation
velocity took off! More and better testing was happening. Even from the
start, maintenance costs were cut just from sprint to sprint.
Summary
Efficient Agile automation is the new normal! Shifting paradigms, planning ahead, and great collaboration
are key attributes to success. It also takes hard work: by remembering some basic Agile practices and
iterating them, you can make your automation better over time. Adopting low maintenance and scalable
methods like ABT with TestArchitect is essential to building fast resilient automation. Another key is to use
retrospectives to make the process and communication better, fix roadblocks quicker and share lessons
learned.
ABOUT LOGIGEAR
Since 1994, LogiGear has been providing consulting, manual and automated software testing, and
application development and maintenance services that enable customers to shorten their time to
market, reduce costs, and improve product quality. We’ve served hundreds of clients around the globe,
ranging from early-stage startups to Fortune 500 companies across a broad spectrum of industries.
Make sure that your suites are lean and mean. Automated tests get old.
Automation does have a shelf life. Have a good methodology and
process to remove old tests as well as maintain and add new ones.
The automated test suites need to be fast, efficient, and effective.
Examine your tests and test design-be critical and honest about value.
A team will need to redesign, optimize, or even cut the size of their
automated suites for continuous testing.