Rapid Software Testing Rapid Testing Rapid testing is

  • Slides: 22
Download presentation
Rapid Software Testing

Rapid Software Testing

Rapid Testing Rapid testing is a mind-set and a skill-set of testing focused on

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.

What is Testing? Asking questions Questions about the idea or design of the product

What is Testing? Asking questions Questions about the idea or design of the product to find ways to configure and operate it The product “answers” and tester observes and evaluates it’s behavior To evaluate a product is to observe the behavior of the product in the field and to identify important problems Testing is questioning a product in order to evaluate it.

Getting Answers “Try it and see if it works. ” Try it Ask questions

Getting Answers “Try it and see if it works. ” Try it Ask questions - Try different things - Try different combinations - Try weird things - - - See Observe Where to look? How to look? What’s visible, invisible? Did it change? It works Evaluate - Compare against the spec - Find problems and inconsistencies

Getting Answers “Try it and see if it works. ” …really means. . “Try

Getting Answers “Try it and see if it works. ” …really means. . “Try it to discover enough, about whether it can work, and how it might not work, to learn whether it will work” Know your mission Begin systematically… …Then chase the risk

Using Models to test You must cover the product and for that you need

Using Models to test You must cover the product and for that you need a good models of it Testing is in your head: Models: technical knowledge, domain knowledge, product knowledge, experiential knowledge Thinking: vertical thinking(logic), lateral thinking (creativity) Feeling: impressions, intuitions, motivations

Models A model is an idea, activity or object… such as an idea in

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 demonstration or a program …that represents another idea, activity, object… Such as something complex that you need to work with or study. …whereby understanding the model may help you understand or manipulate what it represents.

Exercise Wine glass: find all relevant attributes to test it I’m a waiter. Order

Exercise Wine glass: find all relevant attributes to test it I’m a waiter. Order beer from me that fulfill your expectation. Magic trick. When you have no model is difficult to find your oracles.

Focusing and Defocusing “I believe…” My Model of the World “I see…”

Focusing and Defocusing “I believe…” My Model of the World “I see…”

DE-FOCUS If you are Frustrated just DE-FOCUS 1. 2. 3. 4. Look over your

DE-FOCUS If you are Frustrated just DE-FOCUS 1. 2. 3. 4. Look over your recent tests and find a pattern here With your next few tests, violate the old pattern Prefer “multiple factors at a time” Vary your observations

DE-FOCUS To find unexpected problems or more problems quickly in a complex product. .

DE-FOCUS To find unexpected problems 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 procedures and tools Try to see everything with open expectations Make the test hard to pass, instead of easy to reproduce

FOCUS If you are Confused just FOCUS 1. 2. 3. 4. 5. Simplify your

FOCUS If you are Confused just FOCUS 1. 2. 3. 4. 5. Simplify your tests Conserve states Frequently repeat your actions Frequently return to known state Make precise observations

FOCUS To maximize test integrity. . 1. 2. 3. 4. 5. 6. Start the

FOCUS To maximize test integrity. . 1. 2. 3. 4. 5. 6. Start the test from known(clean) state Prefer simple, deterministic actions Trace test steps to a specified model Follow established and consistent procedures Make specific predictions, observations and records Make it easy to reproduce (automation may help)

Exercise IP Address Syntax checker This program checks the syntax of IP addresses There

Exercise IP Address Syntax checker This program checks the syntax of IP addresses There is a bug in it: for some valid IP addresses, it wrongly rejects them as invalid Your job is to find the bug. When you find it, the program will tell you how many tries it took for you to find the bug Try to investigate the bug after you find it

IP Address Conclusion Defocusing may help you to find problems Learn how to “choose”

IP Address Conclusion Defocusing may help you to find problems Learn how to “choose” random numbers Example: Pick a RANDOM number between 1 and 20. Intuition is a fine start, but don’t let that be the end

Scripted Tests What happens when the unexpected happens during a script? Where do scripts

Scripted Tests 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?

Exploratory Tests Where does exploration come from? What happens when the unexpected happens during

Exploratory Tests Where does exploration come from? What happens when the unexpected happens during exploration? What do we do with what we learn? Will everyone explore the same way?

Scripted Tests What happens when the unexpected happens during a script? Where do scripts

Scripted Tests 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?

Exploratory Tests Where does exploration come from? What happens when the unexpected happens during

Exploratory Tests Where does exploration come from? What happens when the unexpected happens during exploration? What do we do with what we learn? Will everyone explore the same way?

Combine Scripted and Exploratory

Combine Scripted and Exploratory

Blending Scripted and Exploratory Generic scripts: specify general test procedures and apply them to

Blending Scripted and Exploratory Generic scripts: specify general test procedures and apply them to different parts of a test Vague scripts: specify a test step-by-step, but leave out any detail that does not need to be pre-specified Improvisation: have scripts, but encourage deviation from them too Roles: give each tester to test a certain part of the product. Leave rest up to them Fragmentary cases: specify tests as a single sentences of phrases

Exercise Disk Mapper

Exercise Disk Mapper