Agile Testing Condensed - A Brief Introduction
Agile Testing Condensed - A Brief Introduction
Agile Testing Condensed - A Brief Introduction
A Brief Introduction
ISBN 978-1-9992205-0-1
SECTION 1: Foundations . . . . . . . . . . . . . . . . . . . . 1
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Acknowledgments
CEO, Trendig.com
Life leads you to your goal. Who would have thought back in 2009
when I started the first Agile Testing Days (ATD) that I would write
the foreword to a book by the Agile Testing Queens, even though
Janet and Lisa have been part of the ATD ensemble ever since. I’m
very happy and honored that they asked me to do so.
Agile Testing Condensed is in line with the two previous books
of Janet and Lisa. This time they shed light into the corners
and explore the edges of testing and quality in agile projects −
short, concise, spot-on and right from the hearts of two women
who dedicated their careers and life to share their knowledge and
advance the activity of testing into an agile profession. It contains
insightful examples and anecdotes and is fun to read. Both authors
share their practical experiences and invite readers to retrace their
journey through numerous projects. They take you by the hand for
a walk through this challenging and beautiful world of agile testing
and explain it to you. It is a treasure chest, for you and your team.
I recommend not only this inspiring book but also their true-to-
work life training “Agile Testing for the Whole Team.”
The book crowns their work of the last 20 years, in which they
have dealt intensively with the agile world and its community.
Their countless projects, trainings, workshops, keynotes, talks, we-
binars, lean coffees, coaching, open spaces, mentoring sessions, and
conversations are condensed into this book and make its content
so practical and worthwhile. This book is a must read for anyone
considering a journey into the world of agile (including managers).
It is made for you and me. With a lot of love! Let’s enjoy it!
CONTENTS iii
This book is not an introductory testing book. There are many great
resources available to learn the basics of testing, test automation,
DevOps, and other topics. You can find some good links in our
bibliography. Similarly, this is not a basic introduction to agile
development. It is for readers who are on teams adopting agile or
those who want to know how testing and quality fits into agile
development and are looking for guidance, such as managers or
executives.
Testing manifesto
²http://www.growingagile.co.nz/2015/04/the-testing-manifesto/
Chapter 1: What Do We Mean by Agile Testing? 6
It takes a while to digest, and you can look at our blog post³ for
more details.
³https://agiletester.ca/ever-evolving-never-set-stone-definition-agile-testing/
Chapter 2: Whole-Team
Approach and Agile
Testing Mindset
Many software teams still use a phased-and-gated, linear approach
to delivering software. People in a given role are siloed on specific
teams, and they hand work off from one team to the next. The test
or QA team is seen as responsible for ensuring quality, usually at
the very end of the process and right before delivery to production,
when it’s too late to do much to improve quality.
In agile development, we break down the siloes and turn devel-
opment into a continual, iterative process. The whole delivery
team works together to build quality in throughout the process.
By “whole team,” we usually mean the delivery team – the people
who are responsible for understanding what to build, building it,
and delivering the final product to the customer.
Focus on quality
The whole-team approach means that all team members are re-
sponsible for the quality of their product. Part of this responsibility
is ensuring that testing tasks are completed alongside the rest of
the development tasks. When the goal is to deliver the highest
quality possible, rather than deliver faster, the team builds a solid
foundation of practices. To achieve that quality level, teams manage
their workload so that they have time to learn core practices such
as test-driven development (TDD) and exploratory testing. They
also take time to learn the business domain and build relationships
with business experts to identify features with the most business
Chapter 2: Whole-Team Approach and Agile Testing Mindset 9
There are several areas that require a change in how team members
approach development. When the whole team is responsible for
quality of the product as well as quality of the process, each team
member needs to be proactive in solving problems. For example,
everyone on the team can help figure out what is most valuable
to customers. They work to deliver just enough of that value in
small increments to learn how the customer uses that capability.
By creating these quick feedback loops, the team can focus their
testing on the features that are most valuable to the customer.
Each team needs to discuss and agree on a “valuable Definition
of Done” (DoD). That should include how the team plans to deal
with defects found in the code. DoD must include testing, and the
question that needs to be asked is, “What types of testing do you
mean?” In Chapter 9, we cover the agile testing quadrants and
answer that question. DoD needs to be understood in the same way
by every team member.
Multiple perspectives
Team members have different viewpoints, skill sets, and perspec-
tives. We find that by using all perspectives, we have a better
understanding of risks involved when delivering a feature. For ex-
ample, designing for testability helps turn examples of desired and
undesired software behavior into executable tests. Team members
become generalized specialists − that is, they may be experts in one
or two areas but are able to contribute to the team’s common goals
in a variety of ways.
Some examples:
In Chapter 11, we’ll talk a bit more about a tester’s role and how it
may change for agile teams.
Chapter 3: Test Planning
in Agile Contexts
One of our top seven success factors from Agile Testing is “Don’t
Forget the Big Picture.” Teams often get caught up in building,
testing, and delivering the small increments − which we encourage
− and forget about how that small slice fits into the system or how
it works toward solving the business problem.
To plan testing activities effectively, a team needs to consider its
context. To understand your context, think about three aspects of
it: the team, the product, and the levels of detail of your system.
The team
Not all teams are created equal. If you’re on a small, co-located
team, you have an ideal situation for easy communication. You
have a good chance of learning each other’s values and sharing
them. It’s a sweet spot for delivering a great product, and planning
is much easier. Teams can easily understand the next feature and
dig down into story and task level planning.
However, many people work in large, globally distributed organi-
zations. That brings on different challenges. Larger organizations
have multiple projects and many teams. When they adopt agile,
they often replace the silos based on role, such as developers and
QA, with Scrum or feature team silos.
When many large teams work in the same code base, integration
can become a huge challenge. Teams may need specialists such as
performance, security, and reliability testers, but there may not be
Chapter 3: Test Planning in Agile Contexts 13
The product
The level of quality that your stakeholders want depends on your
product as well as the type and amount of testing that might be
required. For example, a content management system used only by
internal users has different priorities than medical device software.
Each has a different environment in which they dwell and involves
different risks.
Consider the size of your product, how many people use it, or
whether it is integrated with external applications. Think about
how the product is delivered and the risk associated with the
delivery mechanism. For example, if the organization is hosting its
own web application, it has much more control about when and
how often the product is updated. Or if the product needs to work
on many devices such as phones, how do updates happen without
interrupting regular usage?
One of the main purposes of testing is to identify and mitigate risks
– to the user and to the business. Obviously, this plays a big part
in how you plan your testing. This is one reason why delivery
teams need to learn the business domain and work closely with
business experts. Domain expertise helps when it comes to planning
what to test. Does your team have a really good idea of how the
Chapter 3: Test Planning in Agile Contexts 14
Release/feature level
Remember, one size does not fit all, so make allowances for the size
and number of your teams, where they are located, how work will
be coordinated among teams, and whether all the skills needed for
testing are available to each team.
Ideally, activities are coordinated with other teams as feature
development progresses. However, it is important to note that a
more finalized product may be needed for things like adding final
screenshots to user or training documentation. Or, because it’s not
Chapter 3: Test Planning in Agile Contexts 16
Story level
At this level, it doesn’t matter whether teams are time-boxing their
iterations or working in a flow-based method such as Kanban.
Start with high-level acceptance tests (see Chapter 4: Guiding
Development with Examples for details). Get examples to increase
shared understanding of the story and turn those examples into
tests. If the tests are written before coding happens, they help guide
the development and prevent defects.
Task level
Programmers use Test-Driven Development (TDD) to write low-
level (unit) tests prior to each small piece of code. Some program-
mers call it Design-Driven Development since it helps them to
Chapter 3: Test Planning in Agile Contexts 17
design their code for testability. These tests are relatively easy to
write, and they run quickly and give fast feedback to the team. They
form much of the base of the test automation pyramid model we
discuss in Chapter 10: Visualizing a Test Automation Strategy.
Example-based methods
There are a few variations for building features and stories based
on examples. Behavior-driven development (BDD) is the one that
Janet hears most teams claim they use. BDD, first introduced by
Daniel Terhorst-North, captures example scenarios in a natural, do-
main-specific language. The “Given/When/ Then” syntax describes
preconditions, some trigger action, and resulting post-condition. As
developers write the production code, they are likely to automate
some or all the scenarios to help know when they’ve delivered what
the customer wants.
Chapter 4: Guiding Development with Examples 20
Note: By using this example, a business rule that the team may
not have considered is that in Canada, there are no pennies in use,
Chapter 4: Guiding Development with Examples 22
Impact mapping
Frameworks such as impact mapping⁷ are helpful in deciding what
features we should build and maybe even determine what the
priority should be. Start with the goal of a feature (the “why”). Then
⁶https://www.agileconnection.com/article/three-amigos-strategy-developing-user-stories
⁷https://www.impactmapping.org/
Chapter 5: Enabling Collaboration 26
identify who might help us achieve that goal and who might get in
our way. For each “who,” ask how they might help or hinder us
in achieving the goal (those are the impacts). Lastly, think about
what deliverables might result from each impact (the “what”). This
exercise helps the team understand the big picture and the reasons
behind what they are developing.
Ask questions
It’s common that a feature planning meeting starts with a discus-
sion about how to implement the feature. Sometimes the product
owner has come with her own ideas: “Take the same code as we use
for discount codes and make them negative amounts so we can add
surcharges.” (Yes, Lisa had that exact experience.) It is important
not to let that happen – start with the why.
When you get together with a business stakeholder such as a
product owner to talk about upcoming features, the first question
to ask is, “Why are we doing this feature?” Other good questions:
“What problem will this solve for the business, the customer, or the
end user?”
Chapter 5: Enabling Collaboration 27
Example mapping
Matt Wynne introduced us to the idea of example mapping⁸, and we
found it to be a great way to explore a new feature and the value it
should deliver. Work with the product owner or other stakeholders
about the business rules in a “Power of Three” type discussion.
Business rules are great places to start exploring a feature, since
they can help us slice a feature into stories as well as get a shared
understanding of how the feature should behave.
⁸https://cucumber.io/blog/example-mapping-introduction/
Chapter 5: Enabling Collaboration 28
When a tester assumes Jill’s persona, she’s likely to use the feature’s
capabilities in a different way than she normally would. For exam-
ple, she might discover that clicking on the submit button multiple
times out of impatience causes duplicate reservations.
One way to explore at the feature level is with groups. One of Lisa’s
teams often got people together for ad hoc or exploratory test ses-
sions for extra confidence on major or risky features. Collaborating
to test concurrency issues is a great example of this. More eyes on
the problem means better chances of something being found.
Much like mob programming, mob testing¹³ can be used for ex-
ploratory testing. This means there is one driver (a role that rotates
every few minutes) with multiple people helping by asking ques-
tions or making suggestions. Multiple perspectives may uncover
impacts to other parts of the system.
Charters
In her book Explore It! Elisabeth Hendrickson details how to
use charters for effective exploratory testing. Charters help you
organize the information you need to learn about your application
¹³https://www.stickyminds.com/article/amplified-learning-mob-testing
Chapter 6: Explore Continuously 35
Explore <target>
With <resources>
To discover <information of value to someone>
As charters are executed, the explorer learns and can write new
charters. We also encourage notetaking. One advantage to pairing
is that the person not driving can write the notes. We also believe
that debriefing with other team members after the exploration is
key to learning and sharing information.
Additional techniques
Other techniques help us “think outside the box.” For example,
Mike Talks has his “Oblique Testing” cards¹⁴ that can help the
tester down a path that might not have been considered otherwise.
Beren van Daele’s TestSphere¹⁵ cards also get testers thinking and
talking about their testing in different ways. As human beings, our
unconscious biases can keep us from seeing important problems.
Using cards like this can offset those biases and help teams be more
creative.
¹⁴https://leanpub.com/obliquetesting
¹⁵https://www.ministryoftesting.com/dojo/series/testsphere
Chapter 6: Explore Continuously 37
• What’s the worst thing that can happen after we release this
capability? Does that make it high risk?
• Is it ok if the system or a system capability is down for
some amount of time? If not, what is the maximum time or
percentage of time it can be down?
• For a web-based app, what browsers might customers use?
• Can we assume that customers will be using mobile devices?
Would that include phones and tablets, and does that mean
both Apple and android? What about ……?
• How will we know if the feature is successful once we release
it?
Chapter 7: Testing Quality Attributes 41
Regulatory compliance
Regulatory compliance isn’t always deemed a quality attribute, but
like the quality attributes we’ve mentioned, you need to consider it
from the beginning. Compliance does not necessarily mean stacks
of documents, but there is usually extra work involved for the team,
and it’s wise to plan early.
Organizations need to work together with auditors and regulatory
agencies to understand what information is required to show
compliance. It is important that everyone has the same vision of an
appropriately disciplined approach. For example, if the team has
automated tests that run every day and the tests provide living
documentation in the form of test results, can those be used as
evidence to support the approach or coverage? Both of us have
worked with teams that needed to show compliance (medical
devices and financial) and did it with very little “extra” work. See
Chapter 21, “Agile Testing in Regulated Environments” in More
Agile Testing for more examples and information.
Chapter 8: Testing in
DevOps
Software development has always included the process of getting
new changes to the software into production for customers to use.
In the past, much of this process was manual. There are new tools
and practices for creating software artifacts and deploying them
into test and production environments. But the basic process is
the same. Teams have many testing activities to help them feel
confident about the changes they make to their production product.
There are new terms for some of this testing, but basic testing skills
are still relevant.
The DevOps movement grew out of the idea that some orga-
nizations had embraced agile development but left their entire
operations staff out of the transition. It’s also a result of the move
to cloud-hosted applications and infrastructure as code replaced
command line interfaces. Roles have adapted. Operations special-
ists learn how to code. Programmers take responsibility for their
code even after it is in production, instead of throwing it over the
wall to operations.
Testers also adapt their own skills and activities. They contribute
in many ways, such as helping to design the automated test suites
that provide reliable and valuable information, optimizing the
delivery pipeline, and testing infrastructure code to ensure reliable
execution.
Chapter 23 in More Agile Testing goes into detail about how
operations specialists can help the delivery team improve quality by
setting up test environments, helping to implement test automation
frameworks, generating test data, and more.
Chapter 8: Testing in DevOps 44
Testing in production
In the past few years, “big data” storage has become affordable
even for small companies. Teams can log information about every
event that occurs in any test or production environment. Power-
ful technology, including artificial intelligence (AI) and machine
learning (ML), has sped up processing and analysis of these huge
amounts of data. We can quickly learn how customers are using
our products, discover problems before they do, and quickly recover
from failures.
Testing in production is just one part of any team’s approach to
building quality into their product. They still plan and execute all
the appropriate testing activities along with writing the production
code. They can also observe production use and run risk-free tests
in production to add another level of confidence and reliability.
Figure 8.3 is a wonderful graphic by Cindy Sridharan from her
article Monitoring and Observability¹⁹, and represents how teams
test trying to simulate production, monitor for predictable failures
in production, and use observability to catch anything that slips
through those other quality-driven efforts.
¹⁹https://medium.com/@copyconstruct/testing-in-production-the-safe-way-18ca102d0ef1
SECTION 3: Helpful
Models
We have found visual models an essential ingredient in helping
teams plan and execute all necessary testing activities and formu-
late an effective test automation strategy. In this section, we explain
how to use the Agile Testing Quadrants to identify all the types of
tests that are needed for each new feature set or story, and make
sure they are done when they are the most effective. Then we look
at how to use visual models such as the Test Automation Pyramid
to guide team conversations about a realistic automation strategy
that works for their context.
Tests on the left-hand side are those that guide development, the
ones that are written before coding happens or concurrently as
coding proceeds. The tests on the right-hand side are those that
critique (evaluate) the product after coding is complete. Tests on
the left help prevent defects. Tests on the right find defects in the
code or perhaps identify missing features.
The top half of the quadrants focuses on tests that are readable
by business stakeholders. These tests answer the question, “Are
we building the right thing?” The bottom half includes tests that
are written by and for technical team members. The business
stakeholders probably care about the end results, but they would
not try to read the tests. The top half is about external quality as
defined by the business. The bottom half is about internal code or
infrastructure correctness.
The quadrants are numbered for ease of reference. The four quad-
rants are labeled as:
The agile testing quadrants model helps teams think through test-
ing activities that are needed to give confidence to the product they
are building. It also helps to build a common testing language with
the team and with the organization if used to help communicate
across teams. Janet’s favorite thing about this model is that it not
only represents a holistic view into testing but also makes the whole
team’s responsibility for testing activities visible.
Chapter 9: The Agile Testing Quadrants 52
Quadrant 1
Teams can also use the quadrants to talk about what tests should
be automated. Q1 tests are typically automated by the developers
writing the production code. Many teams practice test-driven de-
velopment (TDD), writing a small unit test for some small piece
of functionality, then the code to make that test pass. Q1 tests are
designed to run quickly since they test such a small area of code
and generally don’t include interaction with other layers of the
application or databases. They give teams the fast feedback needed
to make changes to the code quickly and fearlessly.
Quadrant 2
Quadrant 3
learn what really happens and how customers use the features.
Information learned from Q3 testing feeds back into Q2, often
resulting in creating new stories or features.
Quadrant 4
Defining “Done”
Figure 10.2: Seb Rose’s version of the pyramid, number of tests vs. test coverage
example, it’s possible to have a unit-level test of the UI that does not
involve any other layers of the application. It’s possible to use TDD
for each isolated layer of the application, whether it’s the server,
the API, the UI, or a microservice.
There have been many adaptations of the pyramid model (and yes,
the classic one is really a triangle) over the years. Chapter 15 of
More Agile Testing includes several adaptations, including those
from Alister Scott and Sharon Robson.
Teams that have automated tests can draw the “shape” of their
pyramid to visualize where their current tests fit. Many teams start
out with mostly UI tests and an “upside-down” pyramid or “ice
cream cone²¹.” Others may have an hourglass. None of these shapes
are necessarily wrong, but if the current automation doesn’t meet
the team’s needs, the visuals can help picture what changes are
needed.
Conversations around a visual model help teams that are just
starting their automation efforts decide their eventual goal and
their first priorities.
the time, so you can tell at any given time exactly what your system
does.
Those portions of the iceberg above the waterline are tests that
are business readable, while those below are not (are written in
a technical language). The amount of tests will vary by team; for
example, Lisa worked on a team whose product was intended for
other delivery teams. Everyone on the team including the product
owner could understand the automated regression tests written in
low-level code. They didn’t need “business-readable” tests. In other
domains, it’s critical that business stakeholders can understand the
acceptance tests. This model helps remind us to think about what’s
needed in the team’s context.
Shared responsibility
We encourage teams to share the responsibility of testing the
business rules and higher levels of integration at the API level.
Testers should also have visibility into the unit and component
tests written by developers. As a team member, it’s important to
understand your team’s applications and the inner workings when
approaching your automation strategy.
Because automating tests through the UI tends to be more time-
consuming, there’s a temptation to hand that off to a separate
automation team or have the testers on the team take full respon-
sibility for it. We recommend that the developers, who are good at
writing efficient, maintainable code, work together with the testers,
who are good at specifying test cases, to automate tests through the
UI as well as all other layers above the base level of the pyramid.
Remember, like all the other models, the test automation pyramid
is a guide. Teams that get members in all roles together to ask
questions, chat about the answers, draw on the whiteboard, and
design experiments have the best success with automation. Visual
models like the examples in this chapter help teams talk about why
they’re automating tests, what their biggest automation pain points
are, how people with different skills could help, and what their next
experiments should be. In our experience, a step-by-step approach
works best.
SECTION 4: Agile Testing
Today
The basics of agile testing − such as using the whole-team approach,
guiding development with examples, and collaborating across roles
to build quality in − are as effective today as they were 20 years ago.
Is there anything we need to change to meet today’s challenges? In
this section, we share what some leading agile testing practitioners
see changing for the role of testers. We’ll wrap up with a bunch of
ingredients to help teams succeed with agile testing.
I see them campaigning for better feedback loops. I’ve even seen
testers start to fix bugs or implement features.
Make connections
their voice to help other team members understand the many ways
to generate quality information about the systems in development.
A great agile tester spends more time with a whiteboard marker
in hand and pairing with other team members than anything else.
It’s about helping the rest of the team to see and understand more
about the system, before the system is built. “Build Quality In” is
more than a slogan; it is a reality that great testers can help enable
on high-performing collaborative teams.
Mentor
Over the last six years, my test team has gone from a single group
working on one waterfall project at a time to individuals working
across multiple teams.
There’s a lot of talk about a whole-team approach to quality and
testing, but testers as specialists are looked to lead in this space.
That means creating a first-pass approach at a new story or feature,
but it is also important to facilitate a discussion with the larger team
about these approaches to gain feedback and explore the approach.
It also means if a testing task is too onerous for testers to complete
alone, they can help organise a division of labor among willing
team members.
I find a frequent candidate for this is cross browser/device testing.
We often test stories in the iteration using our core devices but will
occasionally visit our product on a much broader range of items.
This is where the team and their fresh sets of eyes can help, and a
little bit of organization from the tester can make a huge difference.
Although most conversations about testing a product happen within
your team, it’s also useful to “catch up” with others in the same
disciplines to share ideas and what’s been working on other teams.
This can also turn into mentoring to help individuals deal with
specific problems as well as become more daring to try new ideas.
tests present, the testing approach can be more targeted at the end-
user activities that are not covered. Another essential skill I believe
is needed might be considered a soft skill. The skill of having con-
versations with programmers about their unit and integration tests
is powerful. These conversations can lead to influencing design
decisions that in turn enable higher-quality deliverables. Bringing
knowledge about how to have crucial conversations enables the
whole team to produce better software.
Testing has evolved over the years, and the industry has developed
test engineering skills and practices, although not smoothly. I think
we have entered an era of testing enlightenment, and there is a big
shift in how organizations and testers now think of the testing role.
I observe an increasing movement toward the importance of skills.
The more skills an individual has, the more valuable they become
for a team or organization. Those individuals with skills that
span beyond test engineering skills only are the ones that can
contribute more than someone who has a basic set of test design
and execution skills. This idea is emphasized by the thinking
about generalizing specialists as discussed by Scott Ambler (http://
www.agilemodeling.com/essays/generalizingSpecialists.htm) or T-
Shaped Skills as discussed by Lisa and Janet in their books. If you
want to future-proof your career, build your test engineering skills,
as well as skills outside the traditional world of testing. Forget
about titles; in ten years’ time it is not going to mean much to
anyone if you were called “test engineer,” “test specialist,” “tester,”
“test analyst,” or “verification engineer.” Skills are ultimately more
Chapter 11: A Tester’s New Role 73
valuable than collected job titles; I have certainly found that true
in my own career.
T-shaped skills
Success factors
In our first book, Agile Testing, our summary chapter comprised
seven success factors we thought were necessary (although not
sufficient) to be successful in delivering a quality product. It is easy
to get over-whelmed by planning and executing testing activities
during short delivery cycles. Below is a short list of key success
factors and core agile testing practices to guide your teams.
“Whole-team approach”
Testers can teach other team members skills like eliciting concrete
examples of desired and undesired behavior from business experts,
evaluating different quality attributes, or doing exploratory testing.
Programmers can help testers understand the system architecture
to get better testing or even teach them basic coding constructs.
Each team member can transfer some of their deep skills to other
team members, regardless of role.
When teams realize that testing and quality are a team problem,
they can incorporate their diverse skillsets and develop an atmo-
sphere of trust and safety, as well as create a learning environment
where they can experiment and continually improve.
People also need feedback for themselves so they can find more
ways to add value. Listening and observing skills are key.
There are core practices that have proven effective in helping teams
build quality into their product.
regression tests. Agile practices are tried and true and are
designed to be done all together.
Confidence-building practices
In our second book, More Agile Testing, we identified some core
testing practices that help teams build the confidence needed to
frequently release changes to production. These practices are espe-
cially important as more teams move toward continuous delivery
or continuous deployment.
Chapter 12: Ingredients for Success 82
Use examples
Concrete examples of how an application capability should behave
help everyone on the team understand the business rules. These
examples can be turned into tests that guide development. They
can be automated so the team knows when it’s done with a story
or feature. The automated tests become part of regression test suites
that provide quick feedback on whether a new change has affected
existing production behavior. Examples help teams stay on track.
Exploratory testing
Automating regression tests leaves more time for exploratory test-
ing, one of the best ways to find the “unknown unknowns” that
could cause dire production failures. Programmers can learn to
do exploratory testing on each story before they deem their work
“finished.” This is another fast feedback loop. Everyone on the team
can learn and use exploratory testing skills. They will not only
identify unexpected problems but will also find missing capabilities
that feed back into new feature ideas.
Feature testing
It’s essential to test at all levels of detail. Because agile teams focus
on the story, they need to remember to also test at the feature level.
An important part of this is identifying what the feature really
needs to include. Testers can help figure out what is valuable to
customers by asking questions concerning what the business should
drop in favor of delivering other highly valuable features.
Chapter 12: Ingredients for Success 83
Continual learning
Context sensitivity
Every team is working within its unique context. The size of the
company, the business domain and its regulatory environment, the
technology involved, infrastructure needs – these are just some
considerations for a team as it considers how to improve its ability
to deliver value to customers frequently. Don’t adopt a tool or
practice because it’s what Google or Facebook does – use what is
appropriate for your context.
Chapter 12: Ingredients for Success 84
Keep it real
Paths to success
We know there are a lot of testers and teams out there who feel
stressed, especially on teams that are still transitioning to using
agile development values, principles, and practices. For example,
management hasn’t yet figured out how their role needs to change
and may demand more frequent deliveries and impose unrealistic
deadlines. The testing still must be done, and in too many cases,
testers still bear total responsibility for all testing activities. We’d
like to think there is some magic silver bullet tool out there that will
solve all our problems, but we know that’s not reality!
Turning testing problems into problems for the whole delivery
team to address is vital to learning how to build quality into
your products and achieving sustainable success. These key success
factors and confidence-building practices provide a framework to
help the team decide its next steps along a path to improvement.
Chapter 12: Ingredients for Success 85
An example
The team is frustrated because the product owner rejects a high per-
centage of the stories they deliver. The constant re-work, sometimes
days after the team thought the story was “finished,” is slowing
them down. Cycle time − the time from when they start working
on a story to when it is deployed to production − is much longer
than they’d like. What key success factor can help?
The whole-team approach is obvious. Let’s get the whole team, or a
representative group including all roles, together to discuss it. What
confidence-building practice would help? When the product owner
rejects a story, it’s usually because the behavior of that part of
the application is not what she wanted. The team misunderstood
the requirements. The team is continually learning (one of the
confidence-building practices), and one of the testers has just
learned about example mapping. They decide to experiment with
example mapping to see if it will build better shared understanding
of each story. They hypothesize that example mapping will reduce
story rejection rate by 20% over the next two weeks, resulting in a
10% savings of average cycle time.
They measure and experiment to see if their hypothesis is true.
In this real example, the experiment was a success. The goals for
reduction in rejection rate and cycle time were exceeded. Within
two months, rejection rate and cycle time were both reduced by
50%. The team found more benefits from example mapping as it
Chapter 12: Ingredients for Success 86
Thank you for reading, and we hope you are successful in your own
journey.
Glossary
Ad hoc testing: An informal testing activity where one looks for
bugs in a non-structured way without any advance plan.
Context diagram: A high-level diagram that represents all external
entities that may interact with a system, including other systems,
environments, and activities.
Customer: Extreme programming (XP) uses the term “customer”
to refer to a business stakeholder, product person, or end user
who meets with the programming team to set priorities, answer
questions, and make decisions about feature behavior. In contem-
porary agile teams, the term can represent any and all business
stakeholders, product team members, end users, and anyone who
helps guide development and accept delivered stories.
Endgame: The endgame is the time before release when the deliv-
ery team applies the finishing touches to the product. Not a bug-fix
or “hardening” period, it is an opportunity to work with groups
outside of development to help move the software into produc-
tion. Examples of endgame activities include additional testing of
database migrations and installation.
Iteration: Time box used for planning, with the intent that there is a
“potentially shippable product” by the end. The Scrum term for this
is “sprint.” Planning in two-week timeframes is a common practice
today, even in teams doing continuous delivery and deploying to
production more often.
Kanban: A planning approach derived from Lean manufacturing
in which teams work in a flow-based manner. They use work-in-
progress (WIP) limits, pulling new stories in that are “ready,” to fill
a newly empty WIP slot. The team plans, as needed, a few new
stories at a time.
Glossary 88
• https://testretreat.com/2018/01/28/more-agile-testing-introduction/
• https://testretreat.com/2018/01/29/more-agile-testing-learning-
better-testing/
• https://testretreat.com/2018/01/29/more-agile-testing-planning/
• https://testretreat.com/2018/01/30/more-agile-testing-business-
value
• https://testretreat.com/2018/02/15/more-agile-testing-test-automation/
Exploratory Testing
Explore It: Reduce Risk and Increase Confidence with Exploratory
Testing, Elisabeth Hendrickson, 2013, https://pragprog.com/book/
ehxta/explore-it
Exploratory Testing, Maaret Pyhäjärvi, https://leanpub.com/exploratorytesting
Test Automation
“Keep your automated tests simple and avoid anti-patterns,” Lisa
Crispin, https://www.mabl.com/blog/keep-your-automated-testing-
simple
“Test automation: Five questions leading to five heuristics,” Joep
Shuurkes, https://testingcurve.wordpress.com/2015/03/24/test-automation-
five-questions-leading-to-five-heuristics/
“Powerful test automation practices,” parts 1 and 2, Lisa Crispin and
Steve Vance, https://www.mabl.com/blog/powerful-test-automation-
practices-pt-1, https://www.mabl.com/blog/powerful-test-automation-
practices-pt-2
“Test Suite Design,” Ashley Hunsberger, https://github.com/ahunsberger/
testSuiteDesign
Accelerate: The Science of Lean and DevOps, Nicole Forsgren, et al,
https://itrevolution.com/book/accelerate/
²⁵https://www.joecolantonio.com/chaos-engineering/
Resources for Further Learning 92