Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Wordpad
V3.0
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
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. James Bach and Michael Bolton co-create and teach this class. Jon Bach has been a long-term collaborator in developing ET management and training methods. Many of the ideas in this presentation were also inspired by or augmented by other colleagues including Doug Hoffman, 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
Assumptions
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 arent 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
Rapid Testing
Rapid testing is a mind-set and a skill-set of testing focused on how to do testing more quickly,
8. Testers accept responsibility for the quality of their work, although they cannot control the quality of the product.
5
We Use the Socratic Method: We will probably not ask you any
We Need to Hear from You: You control what you think and do, so
we encourage you to question and challenge the lecture. (Talk to me during the break, too.)
6
If I call on you, and you dont want to be put on the spot, say Pass!
or HELP!
7
To teach you how to test a product when you have to test it right now, under conditions of uncertainty, in a way that stands up to scrutiny.
To help you practice thinking like an expert tester. Do that well, and youll be able to handle any testing situation.
9
The Roadmap
SECTION 1
10
The Bug
Quality is value to some person (who matters). A bug is anything about the product that threatens its value.
These definitions are designed to be inclusive. Inclusive definitions minimize the chance that you will inadvertently overlook an important problem.
13
What is testing?
Asking Questions
What is testing?
Getting Answers
Procedures
Coverage
Oracles
15
What is testing?
Getting Answers
Try it to discover enough, about whether it can work, and how it might not work, to learn whether it will work.
16
What is testing?
Serving Your Client
If you dont have an understanding and an agreement on what is the mission of your testing, then doing it rapidly would be pointless.
17
Section 2
18
The Flowchart
Specifications
Problem
Thinking
- Vertical thinking (logic) - Lateral thinking (creativity)
Product
Feelings
- Impressions - Intuitions - Motivations
The important parts of testing dont take place in the computer or on your desk.
whereby understanding the model may help you understand or manipulate what it represents.
- A map helps 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.
20
Screen
Calendar
Wine Glass
Wason
I believe
I see
21
Coverage
Product coverage is the proportion of the product that has been tested with respect to some model.
Structure
Function
Data
Platform Operations Time
22
input
output
platform
input
functions functions
output
platform
input
output
input
output
input
output
platform
Profiler
input
output
platform
29
30
31
Tests
Quality Criteria Perceived Quality Product Elements
32
What is Testing? Discover enoughcan work...will work. 1. 2. 3. 4. 5. 6. 7. 8. 9. Model the test space. Determine coverage. Determine oracles. Determine test procedures. Configure the test system. Operate the test system. Observe the test system. Evaluate the test results. Report test results.
Sphere
KEY IDEA
34
Mission
Strategy
Situation at Hand
Unachievable Mission
Strategies
Appear to care Declare your assumptions. Ask for what you need. Maybe theres a simple way out. Share the problem; ask for help. Re-negotiate your mission (make a counter-offer). Avoid pathetic compliance. Promise good faith effort, not unconditional success.
36
How Do We Know What Is? We know what is because we see what is.
We believe we know what is because we see what we interpret as signs that indicate what is based on our prior beliefs about the world.
System 2
get more data
Slower Surer
REFLECTION
Faster Looser
REFLEX
System 1
See Thinking Fast and Slow, by Daniel Kahneman
Scientific Skills
posing useful questions observing whats going on describing what you perceive thinking critically about what you know recognizing and managing bias designing hypotheses and experiments thinking despite already knowing analyzing someone elses thinking reasoning about cause and effect treating facts as merely what we believe we know as of this moment
40
The truth may not matter, or may matter much more than you think. (poor understanding of risk)
The Project
Schedule Infrastructure
Thinking Like A Tester: Spot the missing words! I performed the tests. All my tests passed. Therefore, the product works. The programmer said he fixed the bug. I cant reproduce it anymore. Therefore it must be fixed. Microsoft Word frequently crashes while I am using it. Therefore its a bad product. Step 1. Reboot the test system. Step 2. Start the application.
44
The system shall operate at an input voltage range of nominal 100 - 250 VAC.
Magic
Detective Video
Studying magic can help you develop the imagination to find better bugs.
Triangle
2+2=
KEY IDEA
47
Oracles
An oracle is a heuristic principle or mechanism by which you recognize a problem.
...it works
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.
Statutes: The system is consistent with applicable laws. Explainability: The system is consistent with my ability to explain it. Familiarity: The system is not consistent with the pattern of any familiar problem.
Consistency heuristics rely on the quality of your models of the product and its context.
51
Diskmapper
No single oracle can tell us whether a program (or a feature) is working correctly at all times and in all circumstances. Thats why we use a variety of oracles. Any program that looks like its working, to you, may in fact be failing in some way that happens to fool all of your oracles. Thats why we proceed with humility and critical thinking. You (the tester) cant know the deep truth about any result. Thats why we report whatever seems likely to be a bug.
52
Many test approaches focus on capability (functionality) and underemphasize the other criteria 54
KEY IDEA
56
Exploratory Testing Is
an approach to software testing
(applicable to any test technique)
that emphasizes the personal freedom and responsibility of each tester to continually optimize the value of his work
(optimize how?)
by treating learning, test design, test execution and result evaluation as mutually supportive activities that run in parallel throughout the project.
57
pure scripted
vague scripts
freestyle exploratory
charters roles
When I say exploratory testing and dont qualify it, I mean anything on the exploratory side of this continuum.
66
IP Address
ET is a Structured Process
Exploratory testing, as I teach it, is a structured process conducted by a skilled tester, or by lesser skilled testers or users working under supervision.
68
noun:
a fallible method for solving a problem or making a decision.
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
69
-Idea -Idea
not this.
1. 2. 3. 4. 5.
Do this Then do this Then do this Then do this And then this
70
ET is a Structured Process
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.
71
Boundary Testing
1. 2. 3. 4.
Look over your recent tests and find a pattern there. With your next few tests, violate the old pattern. Prefer MFAT (multiple factors at a time). Broaden and vary your observations.
73
Dice Game
1. 2. 3. 4. 5. 6.
Simplify your tests. Conserve states. Frequently repeat your actions. Frequently return to a known state. Prefer OFAT heuristic (one factor at a time). Make precise observations.
74
If you have any autonomy at all, you can risk investing some time in
learning thinking refining approaches better tests
76
Whenever you are called upon to test something very complex or frightening, plunge in! After a little while, if you are very confused or find yourself stuck, quit!
This benefits from disposable time that part of your work not scrutinized in detail. Plunge in and quit means you can start something without committing to finish it successfully, and therefore you dont need a plan. Several cycles of this is a great way to discover a plan.
78
79
KEY IDEA
81
Test Procedure
A test activity is a line of investigation that fulfills some part of the test strategy. A test case is one particular It can encompass many test cases. instance or variation of a test or test idea. A test procedure is a way of performing a test.
What role do you play in it? What role do tools play? Who controls your procedures? Should they be documented? How?
82
Wordpad
Configure
(if necessary) Obtain product for testing (if necessary) Install on a platform. (if necessary) Prepare test data and tools for test execution. Assure that the product is in a clean enough starting state.
Operate
Control the product and platform with inputs to exercise the product. Cause the product to exercise the right functions/states in the right sequence with the right data. Collect information about how the product behaves (collect both direct and indirect output) so that it can be evaluated.
Observe
Evaluate
83
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 helps).
84
To find unexpected problems, elusive problems that occur in sustained field use, or more problems quickly in a complex product
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.
85
KEY IDEA
86
The Test Project Context Where are you and what are you doing there?
Mission
Find Important Problems Assess Quality Certify to Standard Fulfill Process Mandates Satisfy Stakeholders Assure Accountability Advise about QA Advise about Testing Advise about Quality Maximize Efficiency Minimize Cost Minimize Time
Development
Product Project Lifecycle Project Management Configuration Management Defect Prevention Development Team
Test Team
Expertise Loading Cohesion Motivation Leadership Project Integration
Test Lab
Test Platforms Test Tools Test Library Problem Tracking System Office Facilities
87
Test Strategy
Strategy: The set of ideas that guide your test design. Logistics: The set of ideas that guide your application of
resources to fulfilling the test strategy.
Plan: The set of ideas that guide your test project. A good test strategy is:
Product-Specific Risk-focused Diversified Practical
88
Visual
Mission
The problem we are here to solve for our customer. Information about the product or project that is needed for testing. How you get along with the programmers.
Information
Schedule
Test Items
Deliverables
90
Function testing Domain testing Stress testing Flow testing Scenario testing Claims testing User testing Risk testing Automatic checking
91
Use diverse half-measures-- lots of different points of view, approaches, techniques, even if no one strategy is performed completely.
92
New Project
Long loop
Experience Problems In the Field
Interruptions Undermining Adjustments Dog Piling Continuous Use Feature Interactions Click on Help
95
Input Constraint Attack Click Frenzy Shoe Test Blink Test Error Message Hangover
96
97
Minefield Argument
100
Tests
Quality Criteria Perceived Quality Product Elements
101
What is Testing? Discover enoughcan work...will work. 1. 2. 3. 4. 5. 6. 7. 8. 9. Model the test space. Determine coverage. Determine oracles. Determine test procedures. Configure the test system. Operate the test system. Observe the test system. Evaluate the test results. Report test results.
KEY IDEA
103
That should be documented if and when and how it serves our purposes.
Who will read it? Will they understand it? Is there a better way to communicate that information? What does documentation cost you?
105
106
What Does Rapid Testing Look Like? Concise Documentation Minimizes Waste
General
Testing Heuristics
Risk Catalog
Coverage Model
Project-
Risk Model
Specific
Schedule
Issues
Bugs
108
Taking Notes
Coverage Oracles Procedures (key elements only) Test Ideas Bugs/Risks
109
1) 2) 3) 4)
vs.
110
Charter:
A clear mission for the session
A charter may suggest what should be tested, how it should be tested, and what problems to look for. A charter is not meant to be a detailed plan. General charters may be necessary at first:
Analyze the Insert Picture function
Specific charters provide better focus, but take more effort to design:
Test clip art insertion. Focus on stress and flow techniques, and make sure to insert into a variety of documents. Were concerned about resource leaks or anything else that might degrade performance over time.
111
Time Box:
Focused test effort of fixed duration
Short: 60 minutes (+-15) Normal: 90 minutes (+-15) Long: 120 minutes (+-15)
Brief enough for accurate reporting. Brief enough to allow flexible scheduling. Brief enough to allow course correction. Long enough to get solid testing done. Long enough for efficient debriefings. Beware of overly precise timing.
112
Debriefing:
Measurement begins with observation The manager reviews session sheet to assure that he understands it and that it follows the protocol. The tester answers any questions. Session metrics are checked. Charter may be adjusted. Session may be extended. New sessions may be chartered. Coaching happens.
113
Issues
#ISSUE
CHARTER ----------------------------------------------Analyze MapMakers View menu functionality and report on areas of potential risk. #AREAS OS | Windows 2000 Menu | View Strategy | Function Testing Strategy | Functional Analysis START ----------------------------------------------5/30/00 03:20 pm TESTER ----------------------------------------------Jonathan Bach TASK BREAKDOWN ----------------------------------------------#DURATION short #TEST DESIGN AND EXECUTION 65
#DURATION #TEST DESIGN AND EXECUTION #BUG INVESTIGATION AND REPORTING #SESSION SETUP #CHARTER/OPPORTUNITY
Data Files
114
Session Setup
Activity Hierarchy
All test work fits here, somewhere all work nonsession
inferred
session on charter
opportunity
test
bug
setup
117
Work Breakdown:
Diagnosing the productivity
Do these proportions make sense? How do they change over time? Is the reporting protocol being followed?
Non-Session 61% Test 28%
6/9
6/23
7/7
7/21
8/4
8/18
118
Coverage:
Specifying coverage areas These are text labels listed in the Charter section of the session sheet. (e.g. insert picture) Coverage areas can include anything
areas of the product test configuration test strategies system configuration parameters
Use the debriefings to check the validity of the specified coverage areas.
119
Coverage:
Are we testing the right stuff?
60 40 20 0
120
KEY IDEA
122
0 to 100
Reporting Considerations
Reporter safety: What will they think if I made no progress? Client: Who am I reporting to and how do I relate to them? Rules: What rules and traditions are there for reporting, here? Significance of report: How will my report influence events? Subject of report: On what am I reporting? Other agents reporting: How do other reports affect mine? Medium: How will my report be seen, heard, and touched? Precision and confidence levels: What distinctions make a difference?
Testing Dashboard
Updated:
Build:
2/21
38
Area
file/edit view insert format tools slideshow online help clipart converters install compatibility general GUI
Effort C. Q. Comments
high low low low blocked low blocked none none start 3/17 start 3/17 low 1 1+ 2 2+ 1 2 0 1 1 0 0 3
1345, 1363, 1401 automation broken crashes: 1406, 1407 animation memory leak new files not delivered
Product Area
Area
file/edit view insert format tools slideshow online help clipart converters install compatibility general GUI
15-30 areas (keep it simple) Avoid sub-areas: theyre confusing. Areas should have roughly equal value. Areas together should be inclusive of everything reasonably testable. Product areas can include tasks or risks- but put them at the end. Minimize overlap between areas. Areas must "make sense" to your clients, or they wont use the board.
127
Test Effort
None Start Low High Pause Blocked Ship
Not testing; not planning to test. No testing yet, but expect to start soon. Regression or spot testing only; maintaining coverage. Focused testing effort; increasing coverage. Temporarily ceased testing, though area is testable. Cant effectively test, due to blocking problem. Going through final tests and signoff procedure.
128
Test Effort
Use red to denote significant problems or stoppages, as in blocked, none, or pause. Color ship green once the final tests are complete and everything else on that row is green. Use neutral color (such as black or blue, but pick only one) for others, as in start, low, or high.
129
Test Coverage
0 1 1+ 2 2+ 3
Sanity Check:
Complex Cases:
Test Coverage
Color green if coverage level is acceptable for ship, otherwise color black. Level 1 and 2 focus on functional requirements and capabilities: can this product work at all? Level 2 may span 50%-90% code coverage. Level 2+ and 3 focus on information to judge performance, reliability, compatibility, and other ilities: will this product work under realistic usage? Level 3 or 3+ implies if there were a bad bug in this area, we would probably know about it.
131
Quality Assessment
We know of no problems in this area that threaten to stop ship or interrupt testing, nor do we have any definite suspicions about any. We know of problems that are possible showstoppers, or we suspect that there are important problems not yet discovered.
We know of problems in this area that definitely stop ship or interrupt testing.
132
Comments Use the comment field to explain anything colored red, or any non-green quality indicator. Problem ID numbers. Reasons for pausing, or delayed start. Nature of blocking problems. Why area is unstaffed.
133
KEY IDEA
135
Getting started
Take advantage of resources
Email me See my book Lessons Learned in Software Testing Browse the appendices of the class Join forum: software-testing@yahoogroups.com
Do some focused ET
Try a three-hour chartered bug hunt with a group of testers. See what happens. Do some ET sessions by yourself and practice noticing how you think and practice taking notes
Getting started
Try using guideword heuristics
Use my model Or modify my model Or make your own model
Getting started
Practice your systems thinking
Read The Art of Systems Thinking or An Introduction to General Systems Thinking Try the exercises in those books. Take any part of your product and model it in terms of its most important dimensions.