240 likes | 611 Views
Rapid Software Testing. Rapid Testing. This is a general testing methodology. It adapts to any kind of project or product. 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 .
E N D
Rapid Testing This is a general testingmethodology. It adapts to any kind of project or product. 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.
What is Testing? Testing is questioning a product in order to evaluate it. • 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
Getting Answers • 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 problemsand inconsistencies “Try it and see if it works.”
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 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 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 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…” De-focusing My Model of the World Focusing “I see…”
DE-FOCUS • If you are Frustrated just DE-FOCUS • 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.. • 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 • Simplify your tests • Conserve states • Frequently repeat your actions • Frequently return to known state • Make precise observations
FOCUS • To maximize test integrity.. • 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 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” 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 come from? What do we do with what we learn? Will everyone follow the same script the same way?
Exploratory Tests What happens whenthe unexpected happens during exploration? Where does exploration come from? 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 come from? What do we do with what we learn? Will everyone follow the same script the same way?
Exploratory Tests What happens whenthe unexpected happens during exploration? Where does exploration come from? What do we do with what we learn? Will everyone explore the same way?
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