Rapid Software Testing Rapid Testing Rapid testing is
- Slides: 22
Rapid Software Testing
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 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 - 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 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…” My Model of the World “I see…”
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. . 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 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 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 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 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 exploration? What do we do with what we learn? Will everyone explore the same way?
Combine Scripted and Exploratory
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
- Rapid software testing
- What is domain
- Motivational overview of logic based testing
- Du path testing
- Globalization testing
- Cause effect graphing technique
- Control structure testing in software testing
- Decision table testing in software testing
- Advantages and disadvantages of decision table
- Decision tables testing
- Rigorous testing in software testing
- Testing blindness in software testing
- Domain testing in software testing
- Rapid prototyping model in software engineering
- Characteristics of rapid application development
- Rad software engineering
- Positive testing vs negative testing
- Cs 3250
- Functional testing vs unit testing
- Perbedaan white box dan black box
- Behavioral testing adalah
- Component testing is a black box testing
- Zczc state graph