36
MB Full Day Tutorial 10/13/2014 8:30:00 AM "A Rapid Introduction to Rapid Software Testing" Presented by: Michael Bolton DevelopSense Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ [email protected] www.sqe.com

A Rapid Introduction to Rapid Software Testing

Embed Size (px)

Citation preview

Page 1: A Rapid Introduction to Rapid Software Testing

MB Full Day Tutorial

10/13/2014 8:30:00 AM

"A Rapid Introduction to Rapid Software

Testing"

Presented by:

Michael Bolton

DevelopSense

Brought to you by:

340 Corporate Way, Suite 300, Orange Park, FL 32073

888-268-8770 ∙ 904-278-0524 ∙ [email protected] ∙ www.sqe.com

Page 2: A Rapid Introduction to Rapid Software Testing

Michael Bolton

DevelopSense Tester, consultant, and trainer Michael Bolton is the coauthor (with James Bach) of Rapid Software Testing, a course that presents a methodology and mindset for testing software expertly in uncertain conditions and under extreme time pressure. A leader in the context-driven software testing movement, Michael has twenty years of experience testing, developing, managing, and writing about software. Currently, he leads DevelopSense, a Toronto-based consultancy. Prior to DevelopSense, he was with Quarterdeck Corporation, where he managed the company’s flagship products and directed project and testing teams—both in-house and worldwide. Contact Michael at [email protected].

Page 3: A Rapid Introduction to Rapid Software Testing

1Copyright © 1996‐2014, Satisfice, Inc.

One‐Day Sampler

1

Copyright © 1995‐2014, Satisfice, Inc.

James Bach, Satisfice, Inc.

[email protected]

www.satisfice.com

+1 (360) 440‐1435

Michael Bolton, DevelopSense

[email protected]

www.developsense.com

+1 (416) 656‐5160

Rapid Software Testing

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 contributed to and has taught from 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

Page 4: A Rapid Introduction to Rapid Software Testing

2Copyright © 1996‐2014, Satisfice, Inc.

Assumptions• (You are able to use a Windows‐based computer for basic 

tasks.) 

• You test software (or any other complex artifact).– Or you manage people who do 

• 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.

• Good testing requires thinking.

• 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.

Non‐Assumptions

• You do not have to be an actual working tester. Perhaps you work with testers or want to learn about how a good tester operates.

• You do not have to be coder, but you can approach this material asa coder.

• It doesn’t matter what you test. Hardware, software, anything…

• It doesn’t matter what development process you use. Agile, Fragile, Crash Dummy, Bungee Jump, Rollerball, Moneyball, Ballroom dance, River Dance, or Waterfall… This is a mental discipline which applies to anything.

• If you need to FAKE a testing project, this class will not help.

Page 5: A Rapid Introduction to Rapid Software Testing

3Copyright © 1996‐2014, Satisfice, Inc.

Rapid Testing

25

Rapid testing is a mind‐setand a skill‐set of testing

focused on how to do testingmore quickly, 

less expensively, with excellent results.

This is a general testingmethodology. It adapts to

any kind of project or product.

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. 

Page 6: A Rapid Introduction to Rapid Software Testing

4Copyright © 1996‐2014, Satisfice, Inc.

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. 

Key Themes in 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.

• 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.

• Understand your users, don’t just read specs. 

• Dynamically manage the focus of your work.

• Your context should drive your choices, both of which evolve over time. 28

Page 7: A Rapid Introduction to Rapid Software Testing

5Copyright © 1996‐2014, Satisfice, Inc.

The Testing Formality Continuum

When I say “exploratory testing” and don’t qualify it, I mean any testing work on the informal side of this continuum.

INFORMAL FORMALNot done in any specific way, nor to verify specific facts.

Done in a specific way, or to verify specific facts.

Machine Checking

HumanChecking

Vague/Generic Test Scripts

“HumanTransceiver”

Matrix/Outlineof Test Conditions

Product Coverage OutlinePlay

Specific Test Data

SurveyExploratory

AnalyticalExploratory

Page 8: A Rapid Introduction to Rapid Software Testing

6Copyright © 1996‐2014, Satisfice, Inc.

Testing with a Less Formal Procedure

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 primarily for the auditors. 

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

* By “formal testing”, we mean testing that must be done in a specific way, or that must be done to verify a specific fact.

Page 9: A Rapid Introduction to Rapid Software Testing

7Copyright © 1996‐2014, Satisfice, Inc.

Key Premises of This Class• Testing is about finding a potentially infinite number of problems in an infinite space in a finite amount of time

• Therefore, we must…

– understand our mission

– explore and model the product and the test space to know where to look for problems

– know how to recognize problems quickly

– prefer inexpensive, lightweight, effective tools

– reduce dependence on expensive, time‐consuming artifacts, while getting the best value from the ones we’ve got

– do nothing that wastes time or effort

– tell a credible testing story 33

A Computer Program

A set of instructionsfor a computer.

See the Association for Software Testing’s Black Box Software Testing Foundations course, Cem Kaner & James Bach

Page 10: A Rapid Introduction to Rapid Software Testing

8Copyright © 1996‐2014, Satisfice, Inc.

A House

A set of building materials, arranged in the

“House” design pattern.

A House

Something for people to live in.

Page 11: A Rapid Introduction to Rapid Software Testing

9Copyright © 1996‐2014, Satisfice, Inc.

Kaner’s Definition of a Computer Program

• A computer program is

• a communication

• among several people

• and computers

• separated over distance and time

• that contains instructions that can be run on a computer.

The purpose of a computer program isto provide value to people

Implications of Kaner’s Definition• A computer program is far more than its code• A software product is far more than the instructions for the device

• Quality is far more than the absence of errors in the code.

• Testing is far more than writing some code to confirm that other code returns a “correct” result.

Quality is value to some person(s).

—Jerry Weinberg

Software testing is the investigation of systems consisting of people and their work, computers, programs, and the relationships between them.

Page 12: A Rapid Introduction to Rapid Software Testing

10Copyright © 1996‐2014, Satisfice, Inc.

What Is Testing?

• Excellent testing is not merely a branch of computer science– testing includes computer science, mathematics, technical domains

– BUT… focus only on programs and functions, and you leave out questions of value and other relationships that include people

• To me, excellent testing is more like anthropology—interdisciplinary, systems‐focused, investigative, storytelling

Biology Archaeology Language Culture

How to Test

• Write test cases?

• Play with the product?

• Use the all‐pairs test technique?

• Use equivalence class partitioning?

• Use record and playback automation?

• Read the spec?

• Report bugs? Help design the product?

• Write code for the product?

• Play ping pong in the break room?

Page 13: A Rapid Introduction to Rapid Software Testing

11Copyright © 1996‐2014, Satisfice, Inc.

Call this “Checking” not Testing

Observe Evaluate Report

Interact with the product in specific ways to collect specific observations.

Apply algorithmicdecision rules to those observations.

Report any failed checks.

means

operating a product to check specific facts 

about it…

A Check Has Three Elements

1. An observation linked to…2. A decision rule such that…3. both observation and decision rule can be applied 

algorithmically. 

A check can be performed

by a human who has been instructed not to think

(and who is slow and variable)

by a machinethat can’t think

(but that is quick and precise)

See http://www.satisfice.com/blog/archives/856

Page 14: A Rapid Introduction to Rapid Software Testing

12Copyright © 1996‐2014, Satisfice, Inc.

Acquiring the competence, motivation, and credibility for…

Testing is…

creating the conditions necessary for…

…so that you help your clients to make informed decisions about risk.

evaluating a product by learningabout it through experimentation, which includes to 

some degree: questioning, study, modeling, observation and inference, including…

operating a product to check specific facts about it…

TacitTest Procedures

ConsistencyOracles

Prospective Testing

Learning and Teaching

Commitment Management

(inc. estimation)

RecruitingHelpers

Managing TestingLogistics

Test Tooling and Artifact 

Development

Test Framing

BugAdvocacy& Triage

ProjectPost Mortem

Creating ArchivalDocumentation

Guiding Helpers

Discovery ofCurios, Issues &

Risks

Building theTest Team

Designing Checks and Tests

Playing withthe Product

StudyingResults

Galumphing

ConfiguringProduct & Tools

Schedule Management

StudyCustomerFeedback

RelationshipBuilding

Making FailureProductive

SympatheticTesting

Maintaining PersonalHealth and Motivation

TeamLeadership

Quasi‐Functional Testing

PlayingProgrammer

Testing w/SimulatedConditions 

Testing a Simulation

Creating the Test Lab

Studying Specs

Managing Records

PlayingBusiness Analyst

OppositionResearch

Testability Advocacy

Cultivate Credibility

Page 15: A Rapid Introduction to Rapid Software Testing

13Copyright © 1996‐2014, Satisfice, Inc.

Why is the testing/checkingdistinction such a big deal?

Why Is Testing/Checking A Big Deal?

Because increasingly, software mediates not only mimeomorphic actions, but also polimorphic actions.

There’s your answer!

Thanks, and have a great day!

Page 16: A Rapid Introduction to Rapid Software Testing

14Copyright © 1996‐2014, Satisfice, Inc.

Behaviour

• the physical counterpart of an action. (The other part of action is intention)

• behaviours are observable and describable without reference to context. 

• Examples:  a blink, a scratch, a clap

See Harry Collins, The Shape of Actions and  Tacit and Explicit Knowledge

Mimeomorphic Action

• an action that can always be carried out by repeating the behaviour, irrespective of context

• can therefore be mimicked by machines which do not need to understand the context

Page 17: A Rapid Introduction to Rapid Software Testing

15Copyright © 1996‐2014, Satisfice, Inc.

Polimorphic Action

• An action where the behaviourmust be changed according to context in order to carry out the action. (e.g. a greeting, a love letter)

• note that sometimes the same behaviour can instantiate different actions according to context.

Hey, babe… live around here?

We’ll ambush the guards at nine

tonight.

Damn these allergies!

Okay, ready. Hand me the

telescope.

Harry Collins on Software Testing

“Computers and their software are two things.  As collections of interacting cogs they must be ‘checked’ to make sure there are no missing teeth and the wheels spin together nicely.  Machines are also ‘social prostheses’, fitting into social life where a human once fitted.  It is a characteristic of medical prostheses, like replacement hearts, that they do not do exactly the same job as the thing they replace; the surrounding body compensates. 

Abstract, “Machines as Social Prostheses”,  EuroSTAR 2013

Page 18: A Rapid Introduction to Rapid Software Testing

16Copyright © 1996‐2014, Satisfice, Inc.

Harry Collins on Software Testing

“Contemporary computers cannot do just the same thing as humans because they do not fit into society as humans do, so the surrounding society must compensate for the way the computer fails to reproduce what it replaces. This means that a complex judgment is needed to test whether software fits well enough for the surrounding humans to happily ‘repair’ the differences between humans and machines.  This is much more than a matter of deciding whether the cogs spin right.”

Abstract, “Machines as Social Prostheses”,  EuroSTAR 2013

2 + 2 = 4

• The automated check was programmed to enter 

and then + 

and then 2

and then =

• The program returned 4.  (YAY!)

• The automated check logged “pass!”

• A customer was still unhappy.

WHY?

Page 19: A Rapid Introduction to Rapid Software Testing

17Copyright © 1996‐2014, Satisfice, Inc.

Testers light the way.

53

This is our role.We see things for what they are.

We make informed decisions about quality possible,because we think critically about software.

Testers Light the Way:The Risk Gap

What we know

What we need to know

Our knowledge of the status of the product.

Page 20: A Rapid Introduction to Rapid Software Testing

18Copyright © 1996‐2014, Satisfice, Inc.

55

What is testing?

“Try it and see if it works.”

“Try it to discover enough,about whether it can work,and how it might not work, to learn whether it will work.”

Testers light the way.

• These definitions are designed to be inclusive.

• Inclusive definitions minimize the chance that you will inadvertently overlook an important problem.

56

Testing is evaluating a product by learning about it through experimentation.

Quality is value to some person (who matters).

A bug is any problem thatthreatens the value of the product.

An issue is any problem thatthreatens the value of the testing.

Page 21: A Rapid Introduction to Rapid Software Testing

19Copyright © 1996‐2014, Satisfice, Inc.

57

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.

Project Environment

• 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.

Page 22: A Rapid Introduction to Rapid Software Testing

20Copyright © 1996‐2014, Satisfice, Inc.

59

“Ways to test…”?General Test Techniques

• Function testing – test each feature or function

• Domain testing—divide and conquer the data

• Stress testing—overwhelm or starve the product

• Flow testing—do one thing after another after another

• Scenario testing—test to a compelling story

• Claims testing—test based on what important people say

• User testing—involve (or systematically simulate) the users

• Risk testing—think of a problem, and then test for it

• Automatic checking—runs squintillions of programmed checks

60

• 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

Cost as a Simplifying FactorTry quick tests as well as careful tests

A quick test is a cheap test that has some valuebut requires little preparation, knowledge,

or time to perform.

Page 23: A Rapid Introduction to Rapid Software Testing

21Copyright © 1996‐2014, Satisfice, Inc.

61

• Input Constraint Attack

• Click Frenzy

• Shoe Test

• Blink Test

• Error Message Hangover

Cost as a Simplifying FactorTry quick tests as well as careful tests

A quick test is a cheap test that has some valuebut requires little preparation, knowledge,

or time to perform.

• Resource Starvation

• Multiple Instances

• Crazy Configs

• Cheap Tools

What is Coverage?

62

______ coverage is “how much testing we’vedone with respect to some model of ______”

It’s the extent to which we have traveled over some map of the product.

Page 24: A Rapid Introduction to Rapid Software Testing

22Copyright © 1996‐2014, Satisfice, Inc.

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

Structure

Function

Data

Interfaces

Platform

Operations

Time 63

CapabilityReliabilityUsability

CharismaSecurityScalabilityCompatibility

PerformanceInstallabilityDevelopment

Quality CriteriaWhere’s the Value to People?

64

Our job is to identify value, and threats to value.Many test approaches focus on capability (functionality) and underemphasize the other criteria.

Capability Scalability

Reliability Compatibility

Usability Performance

Charisma Installability

Security Development

Page 25: A Rapid Introduction to Rapid Software Testing

23Copyright © 1996‐2014, Satisfice, Inc.

What makes something a problem?

• “a difference between what is perceived and what is desired.”

– Dewey, J., How We Think: A Restatement of the Relation of Reflective Thinking to the Educative Process, 1933

• “an undesirable situation that is significant to and maybe solvable by some agent, though probably with some difficulty.”

– G.F Smith, “Towards a Heuristic Theory of Problem Structuring”, quoted in Weick, Karl E.Sensemakingin Organizations. Sage Publications, Inc, 1995

65

• A process or tool by which the output is checked.

• A reference document with useful information.

• A known good example output.

• A known bad example output.

• A process or tool that helps a tester identify patterns.

• A person whose opinion matters.

• An opinion held by a person who matters.

• A disagreement among people who matter.

General Examples of Oraclesthings that suggest “problem” or “no problem”

People

Mechanisms

Page 26: A Rapid Introduction to Rapid Software Testing

24Copyright © 1996‐2014, Satisfice, Inc.

How Do People React to Software?

ConfusionSurprise

FrustrationImpatience Amusement

Annoyance

What Might Feelings Tell Us?

Impatience  a threat to performance?

Frustration  a threat to capability?

Fear a threat to security?

Surprise a threat to reliability?

Confusion  a threat to usability? to testability?

Annoyance  a threat to charisma?

Boredom  an insignificant test?

Tiredness  time for a break?

Anxiety a need for a particular skill?

Curiosity a pointer to useful investigation?

Page 27: A Rapid Introduction to Rapid Software Testing

25Copyright © 1996‐2014, Satisfice, Inc.

• A process or tool by which the output is checked.

• A reference document with useful information.

• A known good example output.

• A known bad example output.

• A process or tool that helps a tester identify patterns.

• A person whose opinion matters.

• An opinion held by a person who matters.

• A disagreement among people who matter.

• A feeling like confusion or annoyance.

General Examples of Oraclesthings that suggest “problem” or “no problem”

People

Mechanisms

Feelings

Tacit Explicit

Other People

Tester Your

Feelings & Mental Models

Shared Artifacts(specs, tools, etc.)

Stakeholders’Feelings &

Mental Models

Inference

ObservableConsistencies

ReferenceConference

Experience

Oracles from the Inside Out

Page 28: A Rapid Introduction to Rapid Software Testing

26Copyright © 1996‐2014, Satisfice, Inc.

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.

71

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

• A process or tool by which the output is checked.

• A reference document with useful information.

• A known good example output.

• A known bad example output.

• A process or tool that helps a tester identify patterns.

• A person whose opinion matters.

• An opinion held by a person who matters.

• A disagreement among people who matter.

• A feeling like confusion or annoyance.

• A desirable consistency between related things.

General Examples of Oraclesthings that suggest “problem” or “no problem”

People

Mechanisms

Feelings

Principles

Page 29: A Rapid Introduction to Rapid Software Testing

27Copyright © 1996‐2014, Satisfice, Inc.

84

Oracles are Not PerfectAnd 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.

• 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 else you will lose credibility.

MIP’ing VS. Black Flagging

85

Skill in applying oracles means…• Capacity to recognize a more diverse range of problems• Power to merge test design and test execution• No need to specify all test ideas explicitly, in advance• Ability to take advantage of tacit knowledge in testers, helpers, and yourself

• Reduced dependence on documents• Openness to recognizing unanticipated problems• Capacity to describe problems efficiently and effectively• Being able to test anything right now without scripts

Acting on test ideas,not being led by test cases. 

Page 30: A Rapid Introduction to Rapid Software Testing

28Copyright © 1996‐2014, Satisfice, Inc.

A General Statement About Oraclesto Discourage Silly Documentation

3.0 Test Procedures3.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.

87

Some Quality Criteria Are Oriented Towards Product Development 

Testability affords us opportunities for observing and controlling the product. Reduced testability gives bugs 

more time and more opportunities to hide.

Supportability

Testability

Maintainability

Portability

Localization

Page 31: A Rapid Introduction to Rapid Software Testing

29Copyright © 1996‐2014, Satisfice, Inc.

Testability:Observability & Controllability

Imagine a clock under a glass shield. You are not allowed to come near it or poke or probe it…

In order to test a product well, I must be able to control the execution to visit each important state that it has, see everything  important, and control the variables (in the environment) that might influence it.

Testability:Smallness and Simplicity

• A product is smaller, in testing terms, when there are fewer interestingly different and risky things that must be looked at.

• It is algorithmically simpler when there are fewer variations of those things to look at, and fewer conditions to control or consider when looking at them.

• This is related to your models of the product and usage as well as your theories of error and failure.

Page 32: A Rapid Introduction to Rapid Software Testing

30Copyright © 1996‐2014, Satisfice, Inc.

Tying It All Together

91

To test is to compose, edit, narrate, and justifyTHREE stories.

A story about the status of the PRODUCT……about what it does, 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……how you recognized problems……about what you have and haven’t tested yet……and what you won’t test at all (unless the client objects)…

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

Bugs

Issues

Product any good?

How do you know?

Why should I be pleased with your work?

Page 33: A Rapid Introduction to Rapid Software Testing

31Copyright © 1996‐2014, Satisfice, Inc.

Rapid Testing Documentation

• Recognize that – 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:  tool or product?– 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

What Does Rapid Testing Look Like?Concise Documentation Minimizes Waste

94

Risk ModelCoverage Model Test StrategyReference

Risk CatalogTesting Heuristics

General

Project‐Specific Status 

DashboardSchedule BugsIssues

Page 34: A Rapid Introduction to Rapid Software Testing

32Copyright © 1996‐2014, Satisfice, Inc.

Three Forms of Test Management

• People‐based: Account for the people who test.

“Jerry tests the back‐end. Michael tests the front‐end.”

• Artifact‐based: Account for tangible work products. 

“Here’s the 217 test cases we created.”

• Activity‐based: Account for the things that testers do.

“Here are the test activities that comprise our strategy. We did 17 test sessions this week, so far. Mostly, scenario testing.”

Two kinds of activity‐based management:thread or session

Accountability for Exploratory Testing:Session‐Based Test Management

• Charter– A clear, concise mission for a test session

• Time Box– 90‐minutes (+/‐ 45) 

• Reviewable Results– a session sheet—a test report that can be 

scanned, parsed and compiled by a tool

• Debriefing– a conversation between tester and

manager or test lead

vs.

96See http://www.satisfice.com/sbtm.

Page 35: A Rapid Introduction to Rapid Software Testing

33Copyright © 1996‐2014, Satisfice, Inc.

Test Design and Execution (Coverage)vs. Interruptions

• A “perfectly effective” testing session is one entirely dedicated to test design and execution– this is exceptional, not the rule; survey or intake sessions might be perfect

• Setup, bug investigation, and reporting take time away from test design and execution

• Suppose that a testing a feature takes two minutes

– this is a highly arbitrary and artificial assumption—that is, it’s wrong, but we use it to model an issue and make a point

• Suppose also that it takes an extra eight minutes to investigate and report a bug

– another sweeping generalization in service of the point

• In a 90‐minute session, we can run 45 feature tests—as long as we don’t find any bugs 97

How Do We Spend Time?(assume all tests below would find bugs if bugs were present)

Module Bug reporting/investigation(time spent on tests that find bugs)

Test design and execution(time spent on tests that find no bugs)

Number of tests

A (good) 0 minutes (no bugs found) 90 minutes (45 tests) 45

B (okay) 10 minutes (1 bug, 1 test) 80 minutes (40 tests) 41

C (bad) 80 minutes (8 bugs, 8 tests) 10 minutes (5 tests) 13

Investigating and reporting bugs means….

or…

…or both.

• In the first instance, our coverage is great—but if we’re being assessed on the number of bugs we’re finding, we look bad.• In the second instance, coverage looks good, and we found a bug, too.• In the third instance, we look good because we’re finding and reporting lots of bugs—but our coverage is suffering severely.  A system that rewards us or increases confidence based on the number of bugs we find might mislead us into believing that our product is well tested. 98

Page 36: A Rapid Introduction to Rapid Software Testing

34Copyright © 1996‐2014, Satisfice, Inc.

What Happens The Next Day?(assume 6 minutes per bug fix verification)

Fix verifications

Bug reporting and investigation today

Test design and execution today

New teststoday

Total over two days

A 0 min 0 min (no new bugs) 90 min (45 tests) 45 90

B 6 min 10 min (1 new bug) 74 min (37 tests) 38 79

C 48 min 40 min (4 new bugs) 2 min (1 test) 5 18

Finding bugs today means….

or…

…or both.

…which means….

•…and note the optimistic assumption that all of our fixed verifications worked, and that we found no new bugs while running them.  Has this ever happened for you? 99