After Testival meetup, I always write short summary about what I learned on the meet up. This time learning went in both directions. I gave a talk about lateral thinking as a source for test ideas. I noted audience feedback as part of exercise part of the presentation.
Again, meetup sponsor was Degordian! Thank you.
We had 15 testers and started with usual introduction and what we had tested today confession.
Second talk was about Selenium and it was give by Ana Prpic. It was comprehensive overview about Selenium history that ended with hands on presentation in webdriver.io against “The Internet” Heroku demo application.
Zeljko gave 5 minute talk about Vim, and I learned that there is vim-adventures game, a fun way to learn Vim keyboard shortcut secrets. Zeljko also provided feature photo for this post. Thanks!
How to come up with test ideas using lateral thinking?
One of the most important software tester skill is to come up with test ideas. There is a number of test techniques that help tester to do this task. One such test technique is lateral thinking.
Lateral thinking is simply put the skill to think outside the box. This talk also had fun part when audience got chance to practice lateral thinking.
I started with question: “How to come up with test ideas?”
Here are the audience answers:
- acceptance criteria, customer and team
- explore the application
- spying on developers!
Last answer is brilliant. On the other side, it can be frightening if you have to spy on you developers to get important information. But in the context of just over listening in “open space” developers conversations, this is brilliant source of test ideas!
Here is list of sources for test ideas:
- Risk Catalogs
Risk catalog is comprehensive list of risks (the danger of something bad happening [Bach]) in common components or functions that we should test. For example OWASP project have a great collection of risk catalogs in security context. Risk catalogs come in form of checklist, but not in “dangerous” form. Those list will give test ideas, not the actual tests. For example list of Input methods for your application would consist of: mouse, keyboard, unicode with hints that could help you in creating actual tests.
- Quality Characteristics
Those are quality attributes. For example, security is one quality attribute, and error handling is another one.
- Test Techniques
This is how testers test. We all know about (do we?) functional testing, but there is many more test techniques.
- Critical and Lateral Thinking
Critical and Lateral thinking help you to solve problems. There are rather abstract concepts. This presentation is about lateral thinking, and critical thinking is about how to identify and change our assumptions about the problem.
- Domain Knowledge
Everything you know/do not know about your project.
Mnemonics helps us to memorize a set of heuristics (a fallible method that COULD help us to solve a problem). SFDPOT is one such mnemonic created by J. Bach. and it stands for Structure, Function, Data, Platform, Operation and Time. These are all useful sources of test ideas.
- Mind map collections
Risk list in form of mind map.
Test techniques in form of tours. For example, lets do the claims tour which means let’s use application driven by user documentation.
Test Sphere Card Deck
Ministry of testing card deck that has 100 cards divided in five categories: Patterns, Quality Aspects, Feelings, Techniques and Heuristics.
- Rubber Duck Testing
When you describe your solution for a problem to a rubber duck. By saying it aloud, you are verifying it and possibly coming up with idea how to refactor your initial solution.
Then I asked another question: “What could you do with a baseball cap?”
Here are the answers, in order they were given:
- keep head warm
- head rain protection
- head cooling aid
- send a message
- fashion statement
- entertainment by throwing it in the air
- begging aid
- distance/volume measurement
- carry object
- catch object
- vote collecting
- small fire estinguisher
- keep barbecue fire
There was five minutes deadline. There is a pattern, ideas were developing from most common one (what we learned first in our life about a cap) to more complex one (camouflage), that we learned latter in our life.
Lateral thinking is problem solving skill that help us to think out of the box. Shane Snow gives five methods how to spark lateral thinking about the problem:
- List the assumptions
Assumption is something that we think is true about the problem, but we do not have proof. Listing those assumptions will help us to test them.
2. Verbalize the convention
Convention is typical approach to solve a problem. How I can solve this problem using convention?
3. Rewrite the question
By rewriting the asked question about the problem, you will get new perspective and ideas.
4. Start backwards
Give a solution to the problem, and test it on given problem.
5. Change perspective
Change user role, change time, change position, and new ideas for the solution will emerge!
For the last 5 minute exercise, I wrote handy mnemonic PAB-RC (Perspective, Assumptions, Backwards, Rewrite, Convention) and presented a problem:
A man is lying dead in a field.
Next to him there is an unopened package.
There is no other creature in the field.
How did he die?
Here are given solutions:
Man fell on his head.
Package fell on his head.
Did not take medicine from the box.
Fell from a plain (this is also change of perspective).
Here are perspectives:
Fell from a plain.
Men is in mine field.
Fell from a plain was true, but there was no time to put package in the context.
The answer is: Men is parashooter and in the air parachute fell of his back. Man hit the ground and died.
For exercise, there is a lot of lateral puzzles on the internet. For example, you can try to come up with your own puzzle.
Here is my take on that:
Every working day, around 8.30, our backup server crashes. Why?
- How to come up with test ideas? by Erik Brickarp
- How to Apply Lateral Thinking to Your Creative Work? by Shane Snow
- THE TOP TEN LATERAL THINKING PUZZLES