SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
MA
Full-Day Tutorial
9/30/2013 8:30:00 AM

"A Rapid Introduction to Rapid
Software Testing"
Presented by:
Paul Holland
Testing Thoughts

Brought to you by:

340 Corporate Way, Suite 300, Orange Park, FL 32073
888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Paul Holland
Testing Thoughts
An independent software test consultant and teacher, Paul Holland has more than sixteen years
of hands-on testing and test management experience, primarily at Alcatel-Lucent where he led a
transformation of the testing approach for two product divisions, making them more efficient and
effective. As a test manager and tester, Paul focused on exploratory testing, test automation,
and improving testing techniques.
A Rapid Introduction
to Rapid Software Testing
James Bach, Satisfice, Inc.
james@satisfice.com
www.satisfice.com
+1 (360) 440-1435

Michael Bolton, DevelopSense
mb@developsense.com
www.developsense.com
+1 (416) 656-5160

Paul Holland, Testing Thoughts
paul@testingthoughts.com
www.testingthoughts.com
+1 (613) 297-3468

Acknowledgements
• Some of this material was developed in collaboration with
Dr. Cem Kaner, of the Florida Institute of Technology. See
www.kaner.com and www.testingeducation.org.
• Doug Hoffman (www.softwarequalitymethods.com) has also
contributed to and occasionally teaches from this material.
• Many of the ideas in this presentation were also inspired by or
augmented by other colleagues including Jonathan Bach, Bret
Pettichord, Brian Marick, Dave Gelperin, Elisabeth Hendrickson, Jerry
Weinberg, Noel Nyman, and Mary Alton.
• Some of our exercises were introduced to us by Payson Hall, Jerry
Weinberg, Ross Collard, James Lyndsay, Dave Smith, Earl Everett,
Brian Marick, Cem Kaner and Joe McMahon.
• Many ideas were improved by students who took earlier versions of
the class going back to 1996.
2

1
Assumptions About You
• You test software, or any other complex human
creation.
• You have at least some control over the design of your
tests and some time to create new tests.
• You are worried that your test process is spending too
much time and resources on things that aren’t
important.
• You test under uncertainty and time pressure.
• Your major goal is to find important problems quickly.
• You want to get very good at (software) testing.
3

A Question

What makes
testing harder or
slower?

2
Premises of Rapid Testing
1. Software projects and products are relationships
between people.
2. Each project occurs under conditions of uncertainty
and time pressure.
3. Despite our best hopes and intentions, some
degree of inexperience, carelessness, and
incompetence is normal.
4. A test is an activity; it is performance, not artifacts.

Premises of Rapid Testing
5. Testing’s purpose is to discover the status of the
product and any threats to its value, so that our
clients can make informed decisions about it.
6. We commit to performing credible, cost-effective
testing, and we will inform our clients of anything that
threatens that commitment.
7. We will not knowingly or negligently mislead our
clients and colleagues or ourselves.
8. Testers accept responsibility for the quality of their
work, although they cannot control the quality of the
product.

3
Rapid Testing
Rapid testing is a mind-set
and a skill-set of testing
focused on how to do testing
more quickly,
less expensively,
with excellent results.

This is a general testing
methodology. It adapts to
any kind of project or product.
7

How does Rapid Testing compare
with other kinds of testing?

More Work & Time
(Cost)

When testing is turned into an
elaborate set of rote tasks,
it becomes ponderous without
really being thorough.

Ponderous
Slow, expensive,
and easier

Slapdash
Much faster, cheaper,
and easier

You can always test
quickly...
But it might be poor
testing.

Management likes to talk
about exhaustive testing, but
they don’t want to fund it and
they don’t know how to do it.

Exhaustive
Slow, very expensive,
and difficult

Rapid
Faster, less expensive,
still challenging

Better Thinking & Better Testing
(Value)

Rapid testing may not
be exhaustive, but it is
thorough enough and
quick enough. It’s less
work than ponderous
testing. It might be less
work than slapdash
testing.
It fulfills the mission
of testing.
8

4
Excellent Rapid Technical Work
Begins with You
When the ball comes to you…
Do you know you have the ball?
Can you receive the pass?

Do you know your options?

Do you know what your
role and mission is?
Do you know where
your teammates are?

Is your equipment ready?
Can you read the
situation on the field?

Are you aware of the
Can you let your teammates help you? criticality of the situation?
Are you ready to act, right now?
9

…but you don’t have to be great at everything.
• Rapid test teams are about diverse talents cooperating
• We call this the elliptical team, as opposed to the team of
perfect circles.
• Some important dimensions to vary:
•
•
•
•
•
•
•
•
•

Technical skill
Domain expertise
Temperament (e.g. introvert vs. extrovert)
Testing experience
Project experience
Industry experience
Product knowledge
Educational background
Writing skill

• Diversity makes exploration far more powerful
• Your team is powerful because of your unique contribution

10

5
What It Means To Test Rapidly
• Since testing is about finding a potentially infinite
number of problems in an infinite space in a finite
amount of time, we must…
• understand our mission and obstacles to fulfilling it
• know how to recognize problems quickly
• model the product and the test space to know where to look
for problems
• prefer inexpensive, lightweight, effective tools
• reduce dependence on expensive, time-consuming artifacts,
while getting value from the ones we’ve got
• do nothing that wastes time or effort
• tell a credible story about all that
11

One Big Problem in Testing

Formality Bloat
• Much of the time, your testing doesn’t need to be very formal*
• Even when your testing does need to be formal, you’ll need to
do substantial amounts of informal testing in order figure out
how to do excellent formal testing.
•
•

Who says? The FDA. See http://www.satisfice.com/blog/archives/602

Even in a highly regulated environment, you do formal testing

You do informal testing to make sure
you don’t lose money, blow things up, or kill people.
primarily for the auditors.

* Formal testing means testing that must be done to verify a specific fact,
or that must be done in a specific way.

6
EXERCISE

Test the Famous Triangle

What is testing?
Serving Your Client
If you don’t have an understanding and an agreement
on what is the mission of your testing, then doing it
“rapidly” would be pointless.

14

7
Not Enough
Product and Project Information?

Where do we get
test information?

What Is A Problem?

A problem is…

8
How Do We Recognize Problems?

An oracle is…
a way to recognize
a problem.

Learn About Heuristics
Heuristics are fallible, “fast and frugal” methods of solving
problems, making decisions, or accomplishing tasks.

“The engineering method is
the use of heuristics
to cause the best change
in a poorly understood situation
within the available resources.”
Billy Vaughan Koen
Discussion of the Method

9
Heuristics: Generating Solutions
Quickly and Inexpensively
• Heuristic (adjective):
serving to discover or learn

• Heuristic (noun):
a fallible method for solving a problem
or making a decision
“Heuristic reasoning is not regarded as final and strict
but as provisional and plausible only, whose purpose
is to discover the solution to the present problem.”
- George Polya, How to Solve It

Oracles
An oracle is a heuristic principle or mechanism
by which we recognize a problem.

“It works!”

really means…
“...it appeared at least once to meet some
requirement to some degree”
“...uh, when I ran it”
“...that one time”
“...on my machine.”

10
Familiar Problems

If a product is consistent with problems we’ve seen before,
we suspect that there might be a problem.

Explainability

If a product is inconsistent with our ability to explain it
(or someone else’s), we suspect that there might be a problem.

11
World

If a product is inconsistent with the way the world works,
we suspect that there might be a problem.

History

Okay,
so how the
#&@ do I print
now?

If a product is inconsistent with previous versions of itself,
we suspect that there might be a problem.

12
Image

If a product is inconsistent with an image that
the company wants to project, we suspect a problem.

Comparable Products

WordPad

Word

When a product seems inconsistent with a product that is
in some way comparable, we suspect that there might be a problem.

13
Claims

When a product is inconsistent with claims that important
people make about it, we suspect a problem.

User Expectations

When a product is inconsistent with expectations that a
reasonable user might have, we suspect a problem.

14
Purpose

When a product is inconsistent with its designers’ explicit
or implicit purposes, we suspect a problem.

Product

When a product is inconsistent internally—as when it
contradicts itself—we suspect a problem.

15
Statutes and Standards

When a product is inconsistent with laws or widely
accepted standards, we suspect a problem.

Consistency (“this agrees with that”)
an important theme in oracle principles
•
•
•
•
•
•

Familiarity: The system is not consistent with the pattern of any familiar problem.
Explainability: The system is consistent with our ability to describe it clearly.
World: The system is consistent with things that we recognize in the world.
History: The present version of the system is consistent with past versions of it.
Image: The system is consistent with an image that the organization wants to project.
Comparable Products: The system is consistent with comparable systems.

• Claims: The system is consistent with what important people say it’s supposed to be.
• Users’ Expectations: The system is consistent with what users want.
• Product: Each element of the system is consistent with comparable elements in the
same system.

• Purpose: The system is consistent with its purposes, both explicit and implicit.
• Standards and Statutes: The system is consistent with applicable laws, or relevant
implicit or explicit standards.

Consistency heuristics rely on the quality of your
models of the product and its context.

32

16
All Oracles Are Heuristic
An oracle doesn’t tell you that there IS a problem.
An oracle tells you that you might be seeing a problem.
An oracle can alert you to a possible problem,
but an oracle cannot tell you that there is no problem.
Consistency heuristics rely on the quality of
your models of the product and its context.
Rely solely on documented, anticipated sources of oracles,
and your testing will likely be slower and weaker.
Train your mind to recognize patterns of oracles
and your testing will likely be faster
and your ability to spot problems will be sharper.

General Examples of Oracles
things that suggest “problem” or “no problem”
•
•
•
•
•
•
•
•
•
•

People
A person whose opinion matters.
An opinion held by a person who matters.
A disagreement among people who matter.
A reference document with useful information.
A known good example output.
Mechanisms
A known bad example output.
A process or tool by which the output is checked.
A process or tool that helps a tester identify patterns.
A feeling like confusion or annoyance.
Feelings
A desirable consistency between related things.
Principles

34

17
Oracles from the Inside Out
Explicit

Tacit
Tester

Inference

Your
Feelings &
Mental Models

Observable
Consistencies

Other People

Experience

Conference

Reference

Stakeholders’
Feelings &
Mental Models

Shared Artifacts
(specs, tools, etc.)

Oracle Cost and Value
• Some oracles are more authoritative
• but more responsive to change

• Some oracles are more consistent
• but maybe not up to date

• Some oracles are more immediate
• but less reliable

• Some oracles are more precise
• but the precision may be misleading

• Some oracles are more accurate
• but less precise

• Some oracles are more available
• but less authoritative

• Some oracles are easier to interpret
• but more narrowly focused

18
Feelings As Heuristic Triggers For Oracles
• An emotional reaction is a trigger to attention
and learning
• Without emotion, we don’t reason well
• See Damasio, The Feeling of What Happens

• When you find yourself mildly concerned about
something, someone else could be very
concerned about it
• Observe emotions to help overcome your
biases and to evaluate significance
An emotion is a signal; consider looking into it

All Oracles Are Heuristic
• We often do not have oracles that establish a definite correct or incorrect
result, in advance. Oracles may reveal themselves to us on the fly, or later.
That’s why we use abductive inference.
• No single oracle can tell us whether a program (or a feature) is working
correctly at all times and in all circumstances.
That’s why we use a variety of oracles.
• Any program that looks like it’s working, to you, may in fact be failing in
some way that happens to fool all of your oracles. That’s why we proceed
with humility and critical thinking.
• We never know when a test is finished.
That’s why we try to maintain uncertainty when everyone else on the
project is sure.
• You (the tester) can’t know the deep truth about any result.
That’s why we report whatever seems likely to be a bug.

38

19
Oracles are Not Perfect
And Testers are Not Judges
• You don’t need to know for sure if something is a bug;
it’s not your job to decide if something is a bug; it’s your
job to decide if it’s worth reporting.
• You do need to form a justified belief that it MIGHT be
a threat to product value in the opinion of someone
who matters.
• And you must be able to say why you think so; you must
be able to cite good oracles… or you will lose credibility.

MIP’ing VS. Black Flagging
39

Coping With Difficult Oracle Problems
• Ignore the Problem
• Ask “so what?” Maybe the value of the information doesn’t justify the cost.

• Simplify the Problem
• Ask for testability. It usually doesn’t happen by accident.
• Built-in oracle. Internal error detection and handling.
• Lower the standards. You may be using an unreasonable standard of correctness.

• Shift the Problem
• Parallel testing. Compare with another instance of a comparable algorithm.
• Live oracle. Find an expert who can tell if the output is correct.
• Reverse the function. (e.g. 2 x 2 = 4, then 4/2 = 2)

• Divide and Conquer the Problem
• Spot check. Perform a detailed inspection on one instance out of a set of outputs.
• Blink test. Compare or review overwhelming batches of data for patterns that stand
out.

•
•
•
•

Easy input. Use input for which the output is easy to analyze.
Easy output. Some output may be obviously wrong, regardless of input.
Unit test first. Learn about the pieces that make the whole.
Test incrementally. Learn about the product by testing over a period of time.
40

20
“Easy Input”
• Fixed Markers. Use distinctive fixed input patterns that are easy to
spot in the output.
• Statistical Markers. Use populations of data that have
distinguishable statistical properties.
• Self-Referential Data. Use data that embeds metadata about itself.
(e.g. counterstrings)
• Easy Input Regions. For specific inputs, the correct output may be
easy to calculate.
• Outrageous Values. For some inputs, we expect error handling.
• Idempotent Input. Try a case where the output will be the same as
the input.
• Match. Do the “same thing” twice and look for a match.
• Progressive Mismatch. Do progressively differing things over time
and account for each difference. (code-breaking technique)
41

Oracles Are Linked To Threats
To Quality Criteria
Capability

Scalability

Reliability

Compatibility

Usability

Performance

Charisma

Installability

Security

Development

Any inconsistency may represent diminished value.
Many test approaches focus on capability (functionality)
42
and underemphasize the other criteria.

21
Oracles Are Linked To Threats
To Quality Criteria
Supportability
Testability
Maintainability
Portability
Localization

Any inconsistency may represent diminished value.
Many test approaches focus on capability (functionality)
43
and underemphasize the other criteria.

Focusing on Preparation and Skill
Can Reduce Documentation Bloat
3.0 Test Procedures
3.1 General testing protocol.
•

In the test descriptions that follow, the word “verify" is used to highlight specific items
that must be checked. In addition to those items a tester shall, at all times, be alert for
any unexplained or erroneous behavior of the product. The tester shall bear in mind
that, regardless of any specific requirements for any specific test, there is the
overarching general requirement that the product shall not pose an unacceptable risk
of harm to the patient, including an unacceptable risk using reasonably foreseeable
misuse.

•

Test personnel requirements: The tester shall be thoroughly familiar with the
generator and workstation FRS, as well as with the working principles of the devices
themselves. The tester shall also know the working principles of the power test jig and
associated software, including how to configure and calibrate it and how to recognize if
it is not working correctly. The tester shall have sufficient skill in data analysis and
measurement theory to make sense of statistical test results. The tester shall be
sufficiently familiar with test design to complement this protocol with exploratory
testing, in the event that anomalies appear that require investigation. The tester shall
know how to keep test records to credible, professional standard.

22
Remember…
For skilled testers,
good testing isn’t just about
pass vs. fail.

For skilled testers,
testing is about
problem vs. no problem.

Where Do We Look For Problems?

Coverage is…
how much of the
product has been tested.

23
What IS Coverage?
Coverage is “how much of the product we have tested.”
It’s the extent to which we have
traveled over some map of the product.

MODELS

Models
• A model is an idea, activity, or object…
such as an idea in your mind, a diagram, a list of words, a spreadsheet,
a person, a toy, an equation, a demonstration, or a program

•

…that heuristically represents (literally,
re-presents) another idea, activity, or object…
such as something complex that you need to work with or study

•

…whereby understanding something about the
model may help you to understand or manipulate
the thing that it represents.

- A map is a model that helps to navigate across a terrain.
- 2+2=4 is a model for adding two apples to a basket that already has two apples.
- Atmospheric models help predict where hurricanes will go.
- A fashion model helps understand how clothing would look on actual humans.
- Your beliefs about what you test are a model of what you test.

24
There are as many kinds of test coverage as there are
ways to model the system.

Intentionally OR Incidentally

One Way to Model Coverage:
Product Elements (with Quality Criteria)

• Structure
• Function
• Data
• Interfaces
• Platform
• Operations
• Time

Capability
Reliability
Usability
Charisma

Security
Supportability
Scalability
Testability
Compatibility
Performance Maintainability
Installability

25
To test a very simple product meticulously,
part of a complex product meticulously,
or to maximize test integrity…

1.
2.
3.
4.
5.
6.

Start the test from a known (clean) state.
Prefer simple, deterministic actions.
Trace test steps to a specified model.
Follow established and consistent lab procedures.
Make specific predictions, observations and records.
Make it easy to reproduce (automation may help).
51

General Focusing Heuristics
• use test-first approach or unit testing for better code
coverage
• work from prepared test coverage outlines and risk lists
• use diagrams, state models, and the like, and cover them
• apply specific test techniques to address particular coverage
areas
• make careful observations and match to expectations

To do this more rapidly, make preparation and artifacts fast and frugal:
leverage existing materials and avoid repeating yourself.
Emphasize doing; relax planning. You’ll make discoveries along the way!

26
To find unexpected problems,
elusive problems that occur in sustained field use,
or more problems quickly in a complex product…

That’s a
PowerPoint
bug!

1.
2.
3.
4.
5.
6.

Start from different states (not necessarily clean).
Prefer complex, challenging actions.
Generate tests from a variety of models.
Question your lab procedures and tools.
Try to see everything with open expectations.
Make the test hard to pass, instead of easy to reproduce.
53

General Defocusing Heuristics
• diversify your models; intentional coverage in one area can lead
to unintentional coverage in other areas—this is a Good Thing
• diversify your test techniques
• be alert to problems other than the ones that you’re actively
looking for
• welcome and embrace productive distraction
• do some testing that is not oriented towards a specific risk
• use high-volume, randomized automated tests

27
DISCUSSION

How Many Test Cases?

What About Quantifying Coverage Overall?
•

A nice idea, but we don’t know how to do it in a way
that is consistent with basic measurement theory
•
•

If we describe coverage by counting test cases, we’re
committing reification error.
If we use percentages to quantify coverage, we need to
establish what 100% looks like.
•

•

But we might do that with respect to some specific models.

Complex systems may display emergent behaviour.

28
Extent of Coverage
• Smoke and sanity
• Can this thing even be tested at all?

• Common, core, and critical
• Can this thing do the things it must do?
• Does it handle happy paths and regular input?
• Can it work?

• Complex, harsh, extreme and exceptional
• Will this thing handle challenging tests, complex data flows,
and malformed input, etc.?
• Will it work?

How Might We Organize,
Record, and Report Coverage?
•
•
•
•
•
•

automated tools (e.g. profilers, coverage tools)
annotated diagrams and mind maps
coverage matrices
bug taxonomies
Michael Hunter’s You Are Not Done Yet list
James Bach’s Heuristic Test Strategy Model
• described at www.satisfice.com
• articles about it at www.developsense.com

• Mike Kelly’s MCOASTER model
• product coverage outlines and risk lists
• session-based test management
• http://www.satisfice.com/sbtm
See three articles here:
http://www.developsense.com/publications.html#coverage

29
What Does Rapid Testing Look Like?
Concise Documentation Minimizes Waste
Testing Heuristics

Risk Catalog

General

Coverage Model Risk Model
ProjectSpecific
Testing
Playbook

Schedule

Issues

Bugs

Test Strategy
Reference

Status
Dashboard
59

Rapid Testing Documentation
• Recognize
• a requirements document is not the requirements
• a test plan document is not a test plan
• a test script is not a test
• doing, rather than planning, produces results

• Determine where your documentation is on the continuum:
product or tool?
• Keep your tools sharp and lightweight
• Obtain consensus from others as to what’s necessary and what’s
excess in products

• Ask whether reporting test results takes priority over
obtaining test results
• note that in some contexts, it might

• Eliminate unnecessary clerical work

30
Visualizing Test Progress

Visualizing Test Progress

31
Visualizing Test Progress

See “A Sticky Situation”, Better Software, February 2012

What IS Exploratory Testing?

• Simultaneous test design, test
execution, and learning.
• James Bach, 1995

But maybe it would be a good idea to underscore
why that’s important…

32
What IS Exploratory Testing?
• I follow (and to some degree contributed to) Kaner’s definition, which
was refined over several peer conferences through 2007:

Exploratory software testing is…
•
•
•
•
•

a style of software testing
that emphasizes the personal freedom and responsibility
of the individual tester
to continually optimize the value of his or her work
by treating test design, test execution, test result interpretation,
and test-related learning
So maybe it would be
• as mutually supportive activities
a good idea to keep it
• that run in parallel
brief most of the
time…
• throughout the project.
See Kaner, “Exploratory Testing After 23 Years”, www.kaner.com/pdfs/ETat23.pdf

Why Exploratory Approaches?
• Systems are far
more than
collections of
functions
• Systems typically
depend upon and
interact with
many external
systems

33
Why Exploratory Approaches?
• Systems are too
complex for
individuals to
comprehend and
describe
• Products evolve
rapidly in ways
that cannot be
anticipated
In the future, developers will likely do more verification and validation at the
unit level than they have done before.
Testers must explore, discover, investigate, and learn about the system.

Why Exploratory Approaches?
• Developers are using tools and frameworks that
make programming more productive, but that
may manifest more emergent behaviour.
• Developers are increasingly adopting unit testing
and test-driven development.
• The traditional focus is on verification, validation,
and confirmation.
The new focus must be on exploration, discovery,
investigation, and learning.

34
Why Exploratory Approaches?
•
•
•
•
•
•
•
•
•
•

We don’t have time to waste
preparing wastefully elaborate written plans
for complex products
built from many parts
and interacting with many systems
(many of which we don’t control…
…or even understand)
where everything is changing over time
and there’s so much learning to be done
and the result, not the plan, is paramount.

Questions About Scripts…
arrows and cycles
What happens when the
unexpected happens
during a script?

Where do scripts
come from?

What do we do

with what we
learn?
Will everyone follow the same
script the same way?

(task performing)

35
Questions About Exploration…
arrows and cycles
What happens when
the unexpected
happens during

Where does
exploration
come from?

exploration?
What do we do
with what we
learn?

Will everyone
explore the same way?

(value seeking)

Exploration is Not Just Action
arrows and cycles

36
You can put them together!
arrows and cycles

You can put them together!
arrows and cycles

37
What Exploratory Testing Is Not
• Touring
• http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-1touring/

• After-Everything-Else Testing
• http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-2-aftereverything-else-testing/

• Tool-Free Testing
• http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-3-toolfree-testing/

• Quick Tests
• http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-4-quicktests/

• Undocumented Testing
• http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-5undocumented-testing/

• “Experienced-Based” Testing
• http://www.satisfice.com/blog/archives/664

• defined by any specific example of exploratory testing
• http://www.satisfice.com/blog/archives/678

Exploratory Testing
The way we practice and teach it, exploratory testing…
• IS NOT “random testing” (or sloppy,
or slapdash testing)
• IS NOT “unstructured testing”
• IS NOT procedurally structured
• IS NOT unteachable
• IS NOT unmanageable
• IS NOT scripted
• IS NOT a technique

• IS “ad hoc”, in the dictionary sense,
“to the purpose”
• IS structured and rigorous
• IS cognitively structured
• IS highly teachable
• IS highly manageable
• IS chartered
• IS an approach

38
Contrasting Approaches
Scripted Testing

Exploratory Testing

•
•
•
•
•
•
•
•

•
•
•
•
•
•
•
•

Is directed from elsewhere
Is determined in advance
Is about confirmation
Is about controlling tests
Emphasizes predictability
Emphasizes decidability
Like making a speech
Like playing from a score

Is directed from within
Is determined in the moment
Is about investigation
Is about improving test design
Emphasizes adaptability
Emphasizes learning
Like having a conversation
Like playing in a jam session

Exploratory Testing IS Structured
• Exploratory testing, as we teach it, is a structured process conducted by a
skilled tester, or by lesser skilled testers or users working under supervision.

• The structure of ET comes from many sources:
•
•
•
•
•
•
•
•
•
•
•

Test design heuristics
Chartering
Not procedurally
Time boxing
structured, but
cognitively structured.
Perceived product risks
The nature of specific tests
The structure of the product being tested
The process of learning the product
Development activities
Constraints and resources afforded by the project
In other words,
The skills, talents, and interests of the tester
it’s not “random”,
The overall mission of testing
but systematic.

39
Exploratory Testing IS Structured
In excellent exploratory testing, one structure tends to
dominate all the others:

Exploratory testers construct a compelling story of
their testing. It is this story that
gives ET a backbone.
79

To test is to compose, edit, narrate, and justify
THREE stories.
A story about the status of the PRODUCT…
…about how it failed, and how it might fail...
…in ways that matter to your various clients.

A story about HOW YOU TESTED it…
…how you configured, operated and observed it…
…about what you haven’t tested, yet…
…and won’t test, at all…

A story about how GOOD that testing was…
…what the risks and costs of testing are…
…what made testing harder or slower…
…how testable (or not) the product is…
…what you need and what
you recommend.

80

40
What does “taking advantage of resources” mean?

• Mission
• The problem we are here to solve for our customer.

• Information
• Information about the product or project that is needed for testing.

• Developer relations
• How you get along with the programmers.

• Team
• Anyone who will perform or support testing.

• Equipment & tools
• Hardware, software, or documents required to administer testing.

• Schedule
• The sequence, duration, and synchronization of project events.

• Test Items
• The product to be tested.

• Deliverables
• The observable products of the test project.
81

“Ways to test…”?
General Test Techniques

•
•
•
•
•
•
•
•
•

Function testing
Domain testing
Stress testing
Flow testing
Scenario testing
Claims testing
User testing
Risk testing
Automatic checking
82

41
Cost as a Simplifying Factor
Try quick tests as well as careful tests
A quick test is a cheap test that has some value
but requires little preparation, knowledge,
or time to perform.
• Happy Path
• Tour the Product
•
•
•
•
•
•

Sample Data
Variables
Files
Complexity
Menus & Windows
Keyboard & Mouse

•
•
•
•
•
•
•

Interruptions
Undermining
Adjustments
Dog Piling
Continuous Use
Feature Interactions
Click on Help
83

Cost as a Simplifying Factor
Try quick tests as well as careful tests
A quick test is a cheap test that has some value
but requires little preparation, knowledge,
or time to perform.
•
•
•
•
•

Input Constraint Attack
Click Frenzy
Shoe Test
Blink Test
Error Message Hangover

•
•
•
•

Resource Starvation
Multiple Instances
Crazy Configs
Cheap Tools

84

42
Touring the Product:
Mike Kelly’s FCC CUTS VIDS
•
•
•
•
•
•

Feature tour
Complexity tour
Claims tour
Configuration tour
User tour
Testability tour

•
•
•
•
•

Scenario tour
Variability tour
Interoperability tour
Data tour
Structure tour

43
Summing Up:
Themes of Rapid Testing
•
•
•
•
•
•
•
•
•
•
•

Put the tester's mind at the center of testing.
Learn to deal with complexity and ambiguity.
Learn to tell a compelling testing story.
Develop testing skills through practice, not just talk.
Use heuristics to guide and structure your process.
Replace “check for…” with “look for problems in…”
Be a service to the project community, not an obstacle.
Consider cost vs. value in all your testing activity.
Diversify your team and your tactics.
Dynamically manage the focus of your work.
Your context should drive your choices, both of which
evolve over time.
88

44

Contenu connexe

Tendances

The Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapThe Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapTechWell
 
Fabian Scarano - Preparing Your Team for the Future
Fabian Scarano - Preparing Your Team for the FutureFabian Scarano - Preparing Your Team for the Future
Fabian Scarano - Preparing Your Team for the FutureTEST Huddle
 
Rethinking the Role of Testers
Rethinking the Role of TestersRethinking the Role of Testers
Rethinking the Role of TestersPaul Gerrard
 
Help Me, I got a team of junior testers!
Help Me, I got a team of junior testers!Help Me, I got a team of junior testers!
Help Me, I got a team of junior testers!SQALab
 
Rikard Edgren - Testing is an Island - A Software Testing Dystopia
Rikard Edgren - Testing is an Island - A Software Testing DystopiaRikard Edgren - Testing is an Island - A Software Testing Dystopia
Rikard Edgren - Testing is an Island - A Software Testing DystopiaTEST Huddle
 
Santa Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and ExperiencedSanta Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and ExperiencedMaaret Pyhäjärvi
 
The Future of Testing
The Future of TestingThe Future of Testing
The Future of TestingPaul Gerrard
 
Erkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users GuideErkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users GuideTEST Huddle
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?TEST Huddle
 
The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?
The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?
The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?Paul Gerrard
 
Advancing Testing Using Axioms
Advancing Testing Using AxiomsAdvancing Testing Using Axioms
Advancing Testing Using AxiomsPaul Gerrard
 
Exploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedExploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedMaaret Pyhäjärvi
 
Will The Test Leaders Stand Up?
Will The Test Leaders Stand Up?Will The Test Leaders Stand Up?
Will The Test Leaders Stand Up?Paul Gerrard
 
Test Cases are dead, long live Checklists!
Test Cases are dead, long live Checklists!Test Cases are dead, long live Checklists!
Test Cases are dead, long live Checklists!SQALab
 
Graham Thomas - The Testers Toolbox - EuroSTAR 2010
Graham Thomas - The Testers Toolbox - EuroSTAR 2010Graham Thomas - The Testers Toolbox - EuroSTAR 2010
Graham Thomas - The Testers Toolbox - EuroSTAR 2010TEST Huddle
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 
Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010
Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010
Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010TEST Huddle
 
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of TestingHo Chi Minh City Software Testing Club
 

Tendances (20)

The Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapThe Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road Map
 
Fabian Scarano - Preparing Your Team for the Future
Fabian Scarano - Preparing Your Team for the FutureFabian Scarano - Preparing Your Team for the Future
Fabian Scarano - Preparing Your Team for the Future
 
Rethinking the Role of Testers
Rethinking the Role of TestersRethinking the Role of Testers
Rethinking the Role of Testers
 
Help Me, I got a team of junior testers!
Help Me, I got a team of junior testers!Help Me, I got a team of junior testers!
Help Me, I got a team of junior testers!
 
Rikard Edgren - Testing is an Island - A Software Testing Dystopia
Rikard Edgren - Testing is an Island - A Software Testing DystopiaRikard Edgren - Testing is an Island - A Software Testing Dystopia
Rikard Edgren - Testing is an Island - A Software Testing Dystopia
 
Santa Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and ExperiencedSanta Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and Experienced
 
The Future of Testing
The Future of TestingThe Future of Testing
The Future of Testing
 
Erkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users GuideErkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users Guide
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?
 
The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?
The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?
The Pursuit of Quality - Chasing Tornadoes or Just Hot Air?
 
Advancing Testing Using Axioms
Advancing Testing Using AxiomsAdvancing Testing Using Axioms
Advancing Testing Using Axioms
 
Exploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedExploratory Testing Explained and Experienced
Exploratory Testing Explained and Experienced
 
Will The Test Leaders Stand Up?
Will The Test Leaders Stand Up?Will The Test Leaders Stand Up?
Will The Test Leaders Stand Up?
 
[HCMC STC Jan 2015] Creating a Better Testing Future
[HCMC STC Jan 2015] Creating a Better Testing Future[HCMC STC Jan 2015] Creating a Better Testing Future
[HCMC STC Jan 2015] Creating a Better Testing Future
 
Test Cases are dead, long live Checklists!
Test Cases are dead, long live Checklists!Test Cases are dead, long live Checklists!
Test Cases are dead, long live Checklists!
 
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
 
Graham Thomas - The Testers Toolbox - EuroSTAR 2010
Graham Thomas - The Testers Toolbox - EuroSTAR 2010Graham Thomas - The Testers Toolbox - EuroSTAR 2010
Graham Thomas - The Testers Toolbox - EuroSTAR 2010
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010
Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010
Tafline Murnane - The Carrot or The Whip-What Motivates Testers? - EuroSTAR 2010
 
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing[HCMC STC Jan 2015] Proving Our Worth  Quantifying The Value Of Testing
[HCMC STC Jan 2015] Proving Our Worth Quantifying The Value Of Testing
 

En vedette

Measurement and Metrics for Test Managers
Measurement and Metrics for Test ManagersMeasurement and Metrics for Test Managers
Measurement and Metrics for Test ManagersTechWell
 
High-flying Cloud Testing Techniques
High-flying Cloud Testing TechniquesHigh-flying Cloud Testing Techniques
High-flying Cloud Testing TechniquesTechWell
 
Embracing Uncertainty: A Most Difficult Leap of Faith
Embracing Uncertainty: A Most Difficult Leap of FaithEmbracing Uncertainty: A Most Difficult Leap of Faith
Embracing Uncertainty: A Most Difficult Leap of FaithTechWell
 
Problem Solving and Decision Making in Software Development
Problem Solving and Decision Making in Software DevelopmentProblem Solving and Decision Making in Software Development
Problem Solving and Decision Making in Software DevelopmentTechWell
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 
Right-sized Architecture: Integrity for Emerging Designs
Right-sized Architecture: Integrity for Emerging DesignsRight-sized Architecture: Integrity for Emerging Designs
Right-sized Architecture: Integrity for Emerging DesignsTechWell
 
Data Collection and Analysis for Better Requirements: Just the Facts, Ma'am
Data Collection and Analysis for Better Requirements: Just the Facts, Ma'amData Collection and Analysis for Better Requirements: Just the Facts, Ma'am
Data Collection and Analysis for Better Requirements: Just the Facts, Ma'amTechWell
 
Disciplined Agile Delivery: Extending Scrum to the Enterprise
Disciplined Agile Delivery: Extending Scrum to the EnterpriseDisciplined Agile Delivery: Extending Scrum to the Enterprise
Disciplined Agile Delivery: Extending Scrum to the EnterpriseTechWell
 
Coaching and Leading Agility: A Discussion of Agile Tuning
Coaching and Leading Agility: A Discussion of Agile TuningCoaching and Leading Agility: A Discussion of Agile Tuning
Coaching and Leading Agility: A Discussion of Agile TuningTechWell
 
ADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s Future
ADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s FutureADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s Future
ADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s FutureTechWell
 
Patterns in Test Automation: Issues and Solutions
Patterns in Test Automation: Issues and SolutionsPatterns in Test Automation: Issues and Solutions
Patterns in Test Automation: Issues and SolutionsTechWell
 
Key Test Design Techniques
Key Test Design TechniquesKey Test Design Techniques
Key Test Design TechniquesTechWell
 
Essential Test-Driven Development
Essential Test-Driven DevelopmentEssential Test-Driven Development
Essential Test-Driven DevelopmentTechWell
 
The Journey from Manager to Leader: Empowering Your Team
The Journey from Manager to Leader: Empowering Your TeamThe Journey from Manager to Leader: Empowering Your Team
The Journey from Manager to Leader: Empowering Your TeamTechWell
 
Critical Thinking for Software Testers
Critical Thinking for Software TestersCritical Thinking for Software Testers
Critical Thinking for Software TestersTechWell
 

En vedette (15)

Measurement and Metrics for Test Managers
Measurement and Metrics for Test ManagersMeasurement and Metrics for Test Managers
Measurement and Metrics for Test Managers
 
High-flying Cloud Testing Techniques
High-flying Cloud Testing TechniquesHigh-flying Cloud Testing Techniques
High-flying Cloud Testing Techniques
 
Embracing Uncertainty: A Most Difficult Leap of Faith
Embracing Uncertainty: A Most Difficult Leap of FaithEmbracing Uncertainty: A Most Difficult Leap of Faith
Embracing Uncertainty: A Most Difficult Leap of Faith
 
Problem Solving and Decision Making in Software Development
Problem Solving and Decision Making in Software DevelopmentProblem Solving and Decision Making in Software Development
Problem Solving and Decision Making in Software Development
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
Right-sized Architecture: Integrity for Emerging Designs
Right-sized Architecture: Integrity for Emerging DesignsRight-sized Architecture: Integrity for Emerging Designs
Right-sized Architecture: Integrity for Emerging Designs
 
Data Collection and Analysis for Better Requirements: Just the Facts, Ma'am
Data Collection and Analysis for Better Requirements: Just the Facts, Ma'amData Collection and Analysis for Better Requirements: Just the Facts, Ma'am
Data Collection and Analysis for Better Requirements: Just the Facts, Ma'am
 
Disciplined Agile Delivery: Extending Scrum to the Enterprise
Disciplined Agile Delivery: Extending Scrum to the EnterpriseDisciplined Agile Delivery: Extending Scrum to the Enterprise
Disciplined Agile Delivery: Extending Scrum to the Enterprise
 
Coaching and Leading Agility: A Discussion of Agile Tuning
Coaching and Leading Agility: A Discussion of Agile TuningCoaching and Leading Agility: A Discussion of Agile Tuning
Coaching and Leading Agility: A Discussion of Agile Tuning
 
ADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s Future
ADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s FutureADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s Future
ADC-BSC EAST 2013 Keynote: Reading the Tea Leaves: Predicting a Project’s Future
 
Patterns in Test Automation: Issues and Solutions
Patterns in Test Automation: Issues and SolutionsPatterns in Test Automation: Issues and Solutions
Patterns in Test Automation: Issues and Solutions
 
Key Test Design Techniques
Key Test Design TechniquesKey Test Design Techniques
Key Test Design Techniques
 
Essential Test-Driven Development
Essential Test-Driven DevelopmentEssential Test-Driven Development
Essential Test-Driven Development
 
The Journey from Manager to Leader: Empowering Your Team
The Journey from Manager to Leader: Empowering Your TeamThe Journey from Manager to Leader: Empowering Your Team
The Journey from Manager to Leader: Empowering Your Team
 
Critical Thinking for Software Testers
Critical Thinking for Software TestersCritical Thinking for Software Testers
Critical Thinking for Software Testers
 

Similaire à A Rapid Introduction to Rapid Software Testing

A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingTechWell
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingTechWell
 
Testing the unknown: the art and science of working with hypothesis
Testing the unknown: the art and science of working with hypothesisTesting the unknown: the art and science of working with hypothesis
Testing the unknown: the art and science of working with hypothesisArdita Karaj
 
Rapid software testing
Rapid software testingRapid software testing
Rapid software testingSachin MK
 
Things Could Get Worse: Ideas About Regression Testing
Things Could Get Worse: Ideas About Regression TestingThings Could Get Worse: Ideas About Regression Testing
Things Could Get Worse: Ideas About Regression TestingTechWell
 
Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...FiSTB
 
A Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileA Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileIlari Henrik Aegerter
 
Michael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software TestingMichael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software TestingTEST Huddle
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 
Why unvalidated assumption is the enemy of good product
Why unvalidated assumption is the enemy of good productWhy unvalidated assumption is the enemy of good product
Why unvalidated assumption is the enemy of good productSeb Agertoft
 
How do we fix testing
How do we fix testingHow do we fix testing
How do we fix testingPeter Varhol
 
How to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael BoltonHow to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael BoltonTEST Huddle
 
Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009Adrian Carr
 
Presented at Ford's 2017 Global IT Learning Summit (GLITS)
Presented at Ford's 2017 Global IT Learning Summit (GLITS)Presented at Ford's 2017 Global IT Learning Summit (GLITS)
Presented at Ford's 2017 Global IT Learning Summit (GLITS)Ron Lazaro
 
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionAgile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionMichael Palotas
 
Try: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantTry: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantQA or the Highway
 
Rapid Software Testing: Strategy
Rapid Software Testing: StrategyRapid Software Testing: Strategy
Rapid Software Testing: StrategyTechWell
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 

Similaire à A Rapid Introduction to Rapid Software Testing (20)

A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software Testing
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software Testing
 
Testing the unknown: the art and science of working with hypothesis
Testing the unknown: the art and science of working with hypothesisTesting the unknown: the art and science of working with hypothesis
Testing the unknown: the art and science of working with hypothesis
 
Rapid software testing
Rapid software testingRapid software testing
Rapid software testing
 
Things Could Get Worse: Ideas About Regression Testing
Things Could Get Worse: Ideas About Regression TestingThings Could Get Worse: Ideas About Regression Testing
Things Could Get Worse: Ideas About Regression Testing
 
Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...
 
A Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileA Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and Agile
 
Michael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software TestingMichael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software Testing
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
Why unvalidated assumption is the enemy of good product
Why unvalidated assumption is the enemy of good productWhy unvalidated assumption is the enemy of good product
Why unvalidated assumption is the enemy of good product
 
How do we fix testing
How do we fix testingHow do we fix testing
How do we fix testing
 
How to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael BoltonHow to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael Bolton
 
Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009
 
Presented at Ford's 2017 Global IT Learning Summit (GLITS)
Presented at Ford's 2017 Global IT Learning Summit (GLITS)Presented at Ford's 2017 Global IT Learning Summit (GLITS)
Presented at Ford's 2017 Global IT Learning Summit (GLITS)
 
Dallas Techologies
Dallas TechologiesDallas Techologies
Dallas Techologies
 
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionAgile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
 
Try: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantTry: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim Grant
 
Rapid Software Testing: Strategy
Rapid Software Testing: StrategyRapid Software Testing: Strategy
Rapid Software Testing: Strategy
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
[Paul Holland] Trends in Software Testing
[Paul Holland] Trends in Software Testing[Paul Holland] Trends in Software Testing
[Paul Holland] Trends in Software Testing
 

Plus de TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

Plus de TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Dernier

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

A Rapid Introduction to Rapid Software Testing

  • 1. MA Full-Day Tutorial 9/30/2013 8:30:00 AM "A Rapid Introduction to Rapid Software Testing" Presented by: Paul Holland Testing Thoughts Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2. Paul Holland Testing Thoughts An independent software test consultant and teacher, Paul Holland has more than sixteen years of hands-on testing and test management experience, primarily at Alcatel-Lucent where he led a transformation of the testing approach for two product divisions, making them more efficient and effective. As a test manager and tester, Paul focused on exploratory testing, test automation, and improving testing techniques.
  • 3. A Rapid Introduction to Rapid Software Testing James Bach, Satisfice, Inc. james@satisfice.com www.satisfice.com +1 (360) 440-1435 Michael Bolton, DevelopSense mb@developsense.com www.developsense.com +1 (416) 656-5160 Paul Holland, Testing Thoughts paul@testingthoughts.com www.testingthoughts.com +1 (613) 297-3468 Acknowledgements • Some of this material was developed in collaboration with Dr. Cem Kaner, of the Florida Institute of Technology. See www.kaner.com and www.testingeducation.org. • Doug Hoffman (www.softwarequalitymethods.com) has also contributed to and occasionally teaches from this material. • Many of the ideas in this presentation were also inspired by or augmented by other colleagues including Jonathan Bach, Bret Pettichord, Brian Marick, Dave Gelperin, Elisabeth Hendrickson, Jerry Weinberg, Noel Nyman, and Mary Alton. • Some of our exercises were introduced to us by Payson Hall, Jerry Weinberg, Ross Collard, James Lyndsay, Dave Smith, Earl Everett, Brian Marick, Cem Kaner and Joe McMahon. • Many ideas were improved by students who took earlier versions of the class going back to 1996. 2 1
  • 4. Assumptions About You • You test software, or any other complex human creation. • You have at least some control over the design of your tests and some time to create new tests. • You are worried that your test process is spending too much time and resources on things that aren’t important. • You test under uncertainty and time pressure. • Your major goal is to find important problems quickly. • You want to get very good at (software) testing. 3 A Question What makes testing harder or slower? 2
  • 5. Premises of Rapid Testing 1. Software projects and products are relationships between people. 2. Each project occurs under conditions of uncertainty and time pressure. 3. Despite our best hopes and intentions, some degree of inexperience, carelessness, and incompetence is normal. 4. A test is an activity; it is performance, not artifacts. Premises of Rapid Testing 5. Testing’s purpose is to discover the status of the product and any threats to its value, so that our clients can make informed decisions about it. 6. We commit to performing credible, cost-effective testing, and we will inform our clients of anything that threatens that commitment. 7. We will not knowingly or negligently mislead our clients and colleagues or ourselves. 8. Testers accept responsibility for the quality of their work, although they cannot control the quality of the product. 3
  • 6. Rapid Testing Rapid testing is a mind-set and a skill-set of testing focused on how to do testing more quickly, less expensively, with excellent results. This is a general testing methodology. It adapts to any kind of project or product. 7 How does Rapid Testing compare with other kinds of testing? More Work & Time (Cost) When testing is turned into an elaborate set of rote tasks, it becomes ponderous without really being thorough. Ponderous Slow, expensive, and easier Slapdash Much faster, cheaper, and easier You can always test quickly... But it might be poor testing. Management likes to talk about exhaustive testing, but they don’t want to fund it and they don’t know how to do it. Exhaustive Slow, very expensive, and difficult Rapid Faster, less expensive, still challenging Better Thinking & Better Testing (Value) Rapid testing may not be exhaustive, but it is thorough enough and quick enough. It’s less work than ponderous testing. It might be less work than slapdash testing. It fulfills the mission of testing. 8 4
  • 7. Excellent Rapid Technical Work Begins with You When the ball comes to you… Do you know you have the ball? Can you receive the pass? Do you know your options? Do you know what your role and mission is? Do you know where your teammates are? Is your equipment ready? Can you read the situation on the field? Are you aware of the Can you let your teammates help you? criticality of the situation? Are you ready to act, right now? 9 …but you don’t have to be great at everything. • Rapid test teams are about diverse talents cooperating • We call this the elliptical team, as opposed to the team of perfect circles. • Some important dimensions to vary: • • • • • • • • • Technical skill Domain expertise Temperament (e.g. introvert vs. extrovert) Testing experience Project experience Industry experience Product knowledge Educational background Writing skill • Diversity makes exploration far more powerful • Your team is powerful because of your unique contribution 10 5
  • 8. What It Means To Test Rapidly • Since testing is about finding a potentially infinite number of problems in an infinite space in a finite amount of time, we must… • understand our mission and obstacles to fulfilling it • know how to recognize problems quickly • model the product and the test space to know where to look for problems • prefer inexpensive, lightweight, effective tools • reduce dependence on expensive, time-consuming artifacts, while getting value from the ones we’ve got • do nothing that wastes time or effort • tell a credible story about all that 11 One Big Problem in Testing Formality Bloat • Much of the time, your testing doesn’t need to be very formal* • Even when your testing does need to be formal, you’ll need to do substantial amounts of informal testing in order figure out how to do excellent formal testing. • • Who says? The FDA. See http://www.satisfice.com/blog/archives/602 Even in a highly regulated environment, you do formal testing You do informal testing to make sure you don’t lose money, blow things up, or kill people. primarily for the auditors. * Formal testing means testing that must be done to verify a specific fact, or that must be done in a specific way. 6
  • 9. EXERCISE Test the Famous Triangle What is testing? Serving Your Client If you don’t have an understanding and an agreement on what is the mission of your testing, then doing it “rapidly” would be pointless. 14 7
  • 10. Not Enough Product and Project Information? Where do we get test information? What Is A Problem? A problem is… 8
  • 11. How Do We Recognize Problems? An oracle is… a way to recognize a problem. Learn About Heuristics Heuristics are fallible, “fast and frugal” methods of solving problems, making decisions, or accomplishing tasks. “The engineering method is the use of heuristics to cause the best change in a poorly understood situation within the available resources.” Billy Vaughan Koen Discussion of the Method 9
  • 12. Heuristics: Generating Solutions Quickly and Inexpensively • Heuristic (adjective): serving to discover or learn • Heuristic (noun): a fallible method for solving a problem or making a decision “Heuristic reasoning is not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution to the present problem.” - George Polya, How to Solve It Oracles An oracle is a heuristic principle or mechanism by which we recognize a problem. “It works!” really means… “...it appeared at least once to meet some requirement to some degree” “...uh, when I ran it” “...that one time” “...on my machine.” 10
  • 13. Familiar Problems If a product is consistent with problems we’ve seen before, we suspect that there might be a problem. Explainability If a product is inconsistent with our ability to explain it (or someone else’s), we suspect that there might be a problem. 11
  • 14. World If a product is inconsistent with the way the world works, we suspect that there might be a problem. History Okay, so how the #&@ do I print now? If a product is inconsistent with previous versions of itself, we suspect that there might be a problem. 12
  • 15. Image If a product is inconsistent with an image that the company wants to project, we suspect a problem. Comparable Products WordPad Word When a product seems inconsistent with a product that is in some way comparable, we suspect that there might be a problem. 13
  • 16. Claims When a product is inconsistent with claims that important people make about it, we suspect a problem. User Expectations When a product is inconsistent with expectations that a reasonable user might have, we suspect a problem. 14
  • 17. Purpose When a product is inconsistent with its designers’ explicit or implicit purposes, we suspect a problem. Product When a product is inconsistent internally—as when it contradicts itself—we suspect a problem. 15
  • 18. Statutes and Standards When a product is inconsistent with laws or widely accepted standards, we suspect a problem. Consistency (“this agrees with that”) an important theme in oracle principles • • • • • • Familiarity: The system is not consistent with the pattern of any familiar problem. Explainability: The system is consistent with our ability to describe it clearly. World: The system is consistent with things that we recognize in the world. History: The present version of the system is consistent with past versions of it. Image: The system is consistent with an image that the organization wants to project. Comparable Products: The system is consistent with comparable systems. • Claims: The system is consistent with what important people say it’s supposed to be. • Users’ Expectations: The system is consistent with what users want. • Product: Each element of the system is consistent with comparable elements in the same system. • Purpose: The system is consistent with its purposes, both explicit and implicit. • Standards and Statutes: The system is consistent with applicable laws, or relevant implicit or explicit standards. Consistency heuristics rely on the quality of your models of the product and its context. 32 16
  • 19. All Oracles Are Heuristic An oracle doesn’t tell you that there IS a problem. An oracle tells you that you might be seeing a problem. An oracle can alert you to a possible problem, but an oracle cannot tell you that there is no problem. Consistency heuristics rely on the quality of your models of the product and its context. Rely solely on documented, anticipated sources of oracles, and your testing will likely be slower and weaker. Train your mind to recognize patterns of oracles and your testing will likely be faster and your ability to spot problems will be sharper. General Examples of Oracles things that suggest “problem” or “no problem” • • • • • • • • • • People A person whose opinion matters. An opinion held by a person who matters. A disagreement among people who matter. A reference document with useful information. A known good example output. Mechanisms A known bad example output. A process or tool by which the output is checked. A process or tool that helps a tester identify patterns. A feeling like confusion or annoyance. Feelings A desirable consistency between related things. Principles 34 17
  • 20. Oracles from the Inside Out Explicit Tacit Tester Inference Your Feelings & Mental Models Observable Consistencies Other People Experience Conference Reference Stakeholders’ Feelings & Mental Models Shared Artifacts (specs, tools, etc.) Oracle Cost and Value • Some oracles are more authoritative • but more responsive to change • Some oracles are more consistent • but maybe not up to date • Some oracles are more immediate • but less reliable • Some oracles are more precise • but the precision may be misleading • Some oracles are more accurate • but less precise • Some oracles are more available • but less authoritative • Some oracles are easier to interpret • but more narrowly focused 18
  • 21. Feelings As Heuristic Triggers For Oracles • An emotional reaction is a trigger to attention and learning • Without emotion, we don’t reason well • See Damasio, The Feeling of What Happens • When you find yourself mildly concerned about something, someone else could be very concerned about it • Observe emotions to help overcome your biases and to evaluate significance An emotion is a signal; consider looking into it All Oracles Are Heuristic • We often do not have oracles that establish a definite correct or incorrect result, in advance. Oracles may reveal themselves to us on the fly, or later. That’s why we use abductive inference. • No single oracle can tell us whether a program (or a feature) is working correctly at all times and in all circumstances. That’s why we use a variety of oracles. • Any program that looks like it’s working, to you, may in fact be failing in some way that happens to fool all of your oracles. That’s why we proceed with humility and critical thinking. • We never know when a test is finished. That’s why we try to maintain uncertainty when everyone else on the project is sure. • You (the tester) can’t know the deep truth about any result. That’s why we report whatever seems likely to be a bug. 38 19
  • 22. Oracles are Not Perfect And Testers are Not Judges • You don’t need to know for sure if something is a bug; it’s not your job to decide if something is a bug; it’s your job to decide if it’s worth reporting. • You do need to form a justified belief that it MIGHT be a threat to product value in the opinion of someone who matters. • And you must be able to say why you think so; you must be able to cite good oracles… or you will lose credibility. MIP’ing VS. Black Flagging 39 Coping With Difficult Oracle Problems • Ignore the Problem • Ask “so what?” Maybe the value of the information doesn’t justify the cost. • Simplify the Problem • Ask for testability. It usually doesn’t happen by accident. • Built-in oracle. Internal error detection and handling. • Lower the standards. You may be using an unreasonable standard of correctness. • Shift the Problem • Parallel testing. Compare with another instance of a comparable algorithm. • Live oracle. Find an expert who can tell if the output is correct. • Reverse the function. (e.g. 2 x 2 = 4, then 4/2 = 2) • Divide and Conquer the Problem • Spot check. Perform a detailed inspection on one instance out of a set of outputs. • Blink test. Compare or review overwhelming batches of data for patterns that stand out. • • • • Easy input. Use input for which the output is easy to analyze. Easy output. Some output may be obviously wrong, regardless of input. Unit test first. Learn about the pieces that make the whole. Test incrementally. Learn about the product by testing over a period of time. 40 20
  • 23. “Easy Input” • Fixed Markers. Use distinctive fixed input patterns that are easy to spot in the output. • Statistical Markers. Use populations of data that have distinguishable statistical properties. • Self-Referential Data. Use data that embeds metadata about itself. (e.g. counterstrings) • Easy Input Regions. For specific inputs, the correct output may be easy to calculate. • Outrageous Values. For some inputs, we expect error handling. • Idempotent Input. Try a case where the output will be the same as the input. • Match. Do the “same thing” twice and look for a match. • Progressive Mismatch. Do progressively differing things over time and account for each difference. (code-breaking technique) 41 Oracles Are Linked To Threats To Quality Criteria Capability Scalability Reliability Compatibility Usability Performance Charisma Installability Security Development Any inconsistency may represent diminished value. Many test approaches focus on capability (functionality) 42 and underemphasize the other criteria. 21
  • 24. Oracles Are Linked To Threats To Quality Criteria Supportability Testability Maintainability Portability Localization Any inconsistency may represent diminished value. Many test approaches focus on capability (functionality) 43 and underemphasize the other criteria. Focusing on Preparation and Skill Can Reduce Documentation Bloat 3.0 Test Procedures 3.1 General testing protocol. • In the test descriptions that follow, the word “verify" is used to highlight specific items that must be checked. In addition to those items a tester shall, at all times, be alert for any unexplained or erroneous behavior of the product. The tester shall bear in mind that, regardless of any specific requirements for any specific test, there is the overarching general requirement that the product shall not pose an unacceptable risk of harm to the patient, including an unacceptable risk using reasonably foreseeable misuse. • Test personnel requirements: The tester shall be thoroughly familiar with the generator and workstation FRS, as well as with the working principles of the devices themselves. The tester shall also know the working principles of the power test jig and associated software, including how to configure and calibrate it and how to recognize if it is not working correctly. The tester shall have sufficient skill in data analysis and measurement theory to make sense of statistical test results. The tester shall be sufficiently familiar with test design to complement this protocol with exploratory testing, in the event that anomalies appear that require investigation. The tester shall know how to keep test records to credible, professional standard. 22
  • 25. Remember… For skilled testers, good testing isn’t just about pass vs. fail. For skilled testers, testing is about problem vs. no problem. Where Do We Look For Problems? Coverage is… how much of the product has been tested. 23
  • 26. What IS Coverage? Coverage is “how much of the product we have tested.” It’s the extent to which we have traveled over some map of the product. MODELS Models • A model is an idea, activity, or object… such as an idea in your mind, a diagram, a list of words, a spreadsheet, a person, a toy, an equation, a demonstration, or a program • …that heuristically represents (literally, re-presents) another idea, activity, or object… such as something complex that you need to work with or study • …whereby understanding something about the model may help you to understand or manipulate the thing that it represents. - A map is a model that helps to navigate across a terrain. - 2+2=4 is a model for adding two apples to a basket that already has two apples. - Atmospheric models help predict where hurricanes will go. - A fashion model helps understand how clothing would look on actual humans. - Your beliefs about what you test are a model of what you test. 24
  • 27. There are as many kinds of test coverage as there are ways to model the system. Intentionally OR Incidentally One Way to Model Coverage: Product Elements (with Quality Criteria) • Structure • Function • Data • Interfaces • Platform • Operations • Time Capability Reliability Usability Charisma Security Supportability Scalability Testability Compatibility Performance Maintainability Installability 25
  • 28. To test a very simple product meticulously, part of a complex product meticulously, or to maximize test integrity… 1. 2. 3. 4. 5. 6. Start the test from a known (clean) state. Prefer simple, deterministic actions. Trace test steps to a specified model. Follow established and consistent lab procedures. Make specific predictions, observations and records. Make it easy to reproduce (automation may help). 51 General Focusing Heuristics • use test-first approach or unit testing for better code coverage • work from prepared test coverage outlines and risk lists • use diagrams, state models, and the like, and cover them • apply specific test techniques to address particular coverage areas • make careful observations and match to expectations To do this more rapidly, make preparation and artifacts fast and frugal: leverage existing materials and avoid repeating yourself. Emphasize doing; relax planning. You’ll make discoveries along the way! 26
  • 29. To find unexpected problems, elusive problems that occur in sustained field use, or more problems quickly in a complex product… That’s a PowerPoint bug! 1. 2. 3. 4. 5. 6. Start from different states (not necessarily clean). Prefer complex, challenging actions. Generate tests from a variety of models. Question your lab procedures and tools. Try to see everything with open expectations. Make the test hard to pass, instead of easy to reproduce. 53 General Defocusing Heuristics • diversify your models; intentional coverage in one area can lead to unintentional coverage in other areas—this is a Good Thing • diversify your test techniques • be alert to problems other than the ones that you’re actively looking for • welcome and embrace productive distraction • do some testing that is not oriented towards a specific risk • use high-volume, randomized automated tests 27
  • 30. DISCUSSION How Many Test Cases? What About Quantifying Coverage Overall? • A nice idea, but we don’t know how to do it in a way that is consistent with basic measurement theory • • If we describe coverage by counting test cases, we’re committing reification error. If we use percentages to quantify coverage, we need to establish what 100% looks like. • • But we might do that with respect to some specific models. Complex systems may display emergent behaviour. 28
  • 31. Extent of Coverage • Smoke and sanity • Can this thing even be tested at all? • Common, core, and critical • Can this thing do the things it must do? • Does it handle happy paths and regular input? • Can it work? • Complex, harsh, extreme and exceptional • Will this thing handle challenging tests, complex data flows, and malformed input, etc.? • Will it work? How Might We Organize, Record, and Report Coverage? • • • • • • automated tools (e.g. profilers, coverage tools) annotated diagrams and mind maps coverage matrices bug taxonomies Michael Hunter’s You Are Not Done Yet list James Bach’s Heuristic Test Strategy Model • described at www.satisfice.com • articles about it at www.developsense.com • Mike Kelly’s MCOASTER model • product coverage outlines and risk lists • session-based test management • http://www.satisfice.com/sbtm See three articles here: http://www.developsense.com/publications.html#coverage 29
  • 32. What Does Rapid Testing Look Like? Concise Documentation Minimizes Waste Testing Heuristics Risk Catalog General Coverage Model Risk Model ProjectSpecific Testing Playbook Schedule Issues Bugs Test Strategy Reference Status Dashboard 59 Rapid Testing Documentation • Recognize • a requirements document is not the requirements • a test plan document is not a test plan • a test script is not a test • doing, rather than planning, produces results • Determine where your documentation is on the continuum: product or tool? • Keep your tools sharp and lightweight • Obtain consensus from others as to what’s necessary and what’s excess in products • Ask whether reporting test results takes priority over obtaining test results • note that in some contexts, it might • Eliminate unnecessary clerical work 30
  • 34. Visualizing Test Progress See “A Sticky Situation”, Better Software, February 2012 What IS Exploratory Testing? • Simultaneous test design, test execution, and learning. • James Bach, 1995 But maybe it would be a good idea to underscore why that’s important… 32
  • 35. What IS Exploratory Testing? • I follow (and to some degree contributed to) Kaner’s definition, which was refined over several peer conferences through 2007: Exploratory software testing is… • • • • • a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of his or her work by treating test design, test execution, test result interpretation, and test-related learning So maybe it would be • as mutually supportive activities a good idea to keep it • that run in parallel brief most of the time… • throughout the project. See Kaner, “Exploratory Testing After 23 Years”, www.kaner.com/pdfs/ETat23.pdf Why Exploratory Approaches? • Systems are far more than collections of functions • Systems typically depend upon and interact with many external systems 33
  • 36. Why Exploratory Approaches? • Systems are too complex for individuals to comprehend and describe • Products evolve rapidly in ways that cannot be anticipated In the future, developers will likely do more verification and validation at the unit level than they have done before. Testers must explore, discover, investigate, and learn about the system. Why Exploratory Approaches? • Developers are using tools and frameworks that make programming more productive, but that may manifest more emergent behaviour. • Developers are increasingly adopting unit testing and test-driven development. • The traditional focus is on verification, validation, and confirmation. The new focus must be on exploration, discovery, investigation, and learning. 34
  • 37. Why Exploratory Approaches? • • • • • • • • • • We don’t have time to waste preparing wastefully elaborate written plans for complex products built from many parts and interacting with many systems (many of which we don’t control… …or even understand) where everything is changing over time and there’s so much learning to be done and the result, not the plan, is paramount. Questions About Scripts… arrows and cycles What happens when the unexpected happens during a script? Where do scripts come from? What do we do with what we learn? Will everyone follow the same script the same way? (task performing) 35
  • 38. Questions About Exploration… arrows and cycles What happens when the unexpected happens during Where does exploration come from? exploration? What do we do with what we learn? Will everyone explore the same way? (value seeking) Exploration is Not Just Action arrows and cycles 36
  • 39. You can put them together! arrows and cycles You can put them together! arrows and cycles 37
  • 40. What Exploratory Testing Is Not • Touring • http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-1touring/ • After-Everything-Else Testing • http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-2-aftereverything-else-testing/ • Tool-Free Testing • http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-3-toolfree-testing/ • Quick Tests • http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-4-quicktests/ • Undocumented Testing • http://www.developsense.com/blog/2011/12/what-exploratory-testing-is-not-part-5undocumented-testing/ • “Experienced-Based” Testing • http://www.satisfice.com/blog/archives/664 • defined by any specific example of exploratory testing • http://www.satisfice.com/blog/archives/678 Exploratory Testing The way we practice and teach it, exploratory testing… • IS NOT “random testing” (or sloppy, or slapdash testing) • IS NOT “unstructured testing” • IS NOT procedurally structured • IS NOT unteachable • IS NOT unmanageable • IS NOT scripted • IS NOT a technique • IS “ad hoc”, in the dictionary sense, “to the purpose” • IS structured and rigorous • IS cognitively structured • IS highly teachable • IS highly manageable • IS chartered • IS an approach 38
  • 41. Contrasting Approaches Scripted Testing Exploratory Testing • • • • • • • • • • • • • • • • Is directed from elsewhere Is determined in advance Is about confirmation Is about controlling tests Emphasizes predictability Emphasizes decidability Like making a speech Like playing from a score Is directed from within Is determined in the moment Is about investigation Is about improving test design Emphasizes adaptability Emphasizes learning Like having a conversation Like playing in a jam session Exploratory Testing IS Structured • Exploratory testing, as we teach it, is a structured process conducted by a skilled tester, or by lesser skilled testers or users working under supervision. • The structure of ET comes from many sources: • • • • • • • • • • • Test design heuristics Chartering Not procedurally Time boxing structured, but cognitively structured. Perceived product risks The nature of specific tests The structure of the product being tested The process of learning the product Development activities Constraints and resources afforded by the project In other words, The skills, talents, and interests of the tester it’s not “random”, The overall mission of testing but systematic. 39
  • 42. Exploratory Testing IS Structured In excellent exploratory testing, one structure tends to dominate all the others: Exploratory testers construct a compelling story of their testing. It is this story that gives ET a backbone. 79 To test is to compose, edit, narrate, and justify THREE stories. A story about the status of the PRODUCT… …about how it failed, and how it might fail... …in ways that matter to your various clients. A story about HOW YOU TESTED it… …how you configured, operated and observed it… …about what you haven’t tested, yet… …and won’t test, at all… A story about how GOOD that testing was… …what the risks and costs of testing are… …what made testing harder or slower… …how testable (or not) the product is… …what you need and what you recommend. 80 40
  • 43. What does “taking advantage of resources” mean? • Mission • The problem we are here to solve for our customer. • Information • Information about the product or project that is needed for testing. • Developer relations • How you get along with the programmers. • Team • Anyone who will perform or support testing. • Equipment & tools • Hardware, software, or documents required to administer testing. • Schedule • The sequence, duration, and synchronization of project events. • Test Items • The product to be tested. • Deliverables • The observable products of the test project. 81 “Ways to test…”? General Test Techniques • • • • • • • • • Function testing Domain testing Stress testing Flow testing Scenario testing Claims testing User testing Risk testing Automatic checking 82 41
  • 44. Cost as a Simplifying Factor Try quick tests as well as careful tests A quick test is a cheap test that has some value but requires little preparation, knowledge, or time to perform. • Happy Path • Tour the Product • • • • • • Sample Data Variables Files Complexity Menus & Windows Keyboard & Mouse • • • • • • • Interruptions Undermining Adjustments Dog Piling Continuous Use Feature Interactions Click on Help 83 Cost as a Simplifying Factor Try quick tests as well as careful tests A quick test is a cheap test that has some value but requires little preparation, knowledge, or time to perform. • • • • • Input Constraint Attack Click Frenzy Shoe Test Blink Test Error Message Hangover • • • • Resource Starvation Multiple Instances Crazy Configs Cheap Tools 84 42
  • 45. Touring the Product: Mike Kelly’s FCC CUTS VIDS • • • • • • Feature tour Complexity tour Claims tour Configuration tour User tour Testability tour • • • • • Scenario tour Variability tour Interoperability tour Data tour Structure tour 43
  • 46. Summing Up: Themes of Rapid Testing • • • • • • • • • • • Put the tester's mind at the center of testing. Learn to deal with complexity and ambiguity. Learn to tell a compelling testing story. Develop testing skills through practice, not just talk. Use heuristics to guide and structure your process. Replace “check for…” with “look for problems in…” Be a service to the project community, not an obstacle. Consider cost vs. value in all your testing activity. Diversify your team and your tactics. Dynamically manage the focus of your work. Your context should drive your choices, both of which evolve over time. 88 44