I always wondered how a few testers catch killer bugs so quickly. How is their intuition so sharp compared to others? Practice? In addition to practice, these testers find easy ways to remember important stuff that matters to them in different contexts. Mnemonics can be very useful to remember heuristics and oracles. I compiled the below list for me and you to learn and practice. Of course, with due credit to the creators of these heuristics and oracles.
Michael D Kelly’s Touring Heuristics – FCC CUTS VIDS
Feature tour, Complexity tour, Claims tour, Configuration tour, User tour, Testability tour, Scenario tour, Variability tour, Interoperability tour, Data tour, Structure tour
Michael D Kelly’s Test Reporting Heuristics – MCOASTER
Mission, Coverage, Obstacles, Audience, Status, Techniques, Environment, Risk
Ben Simo’s Error handling Heuristics – FAILURE
Functional, Appropriate, Impact, Log, UI, Recovery, Emotions
Adam Goucher’s ordering of Testing Tasks heuristics – SLIME
Security, Languages, requIrements, Measurement, Existing
Scott Barber’s Performance Testing heuristics – FIBLOTS
Frequent, Intensive, Business Critical, Legal, Obvious, Technically risky, Stakeholder Mandated
James Bach’s Test Strategy Heuristics – SFDPOT (San Francisco Depot)
Structure, Function, Data, Platform, Operations, Time
James Bach’s Project Environment Heuristics – CIDTESTD (Kid Tested)
Customers, Information, Developer relations, Team, Equipment & tools, Schedule, Test Items, Deliverables
James Bach’s Quality Criteria heuristics – CRUSSPIC STMPL
A. Operational Criteria - CRUSSPIC
Capability, Reliability, Usability, Security, Scalability, Performance, Installability, Compatibility
B. Development Criteria - STMPL
Supportability, Testability, Maintainability, Portability, Localizability
James Bach’s Test Techniques Heuristics – DUFFSSCRA(FDSFSCURA)
Domain, User, Function, Flow, Stress, Scenario, Claims, Risk, Automatic
James Bach’s Test Oracles – HICCUPPSF
History, Image, Comparable product, Claims, User Expectation, Product, Purpose, Standards and Statutes, Familiar Problems
James Bach’s Learning Heuristics – SACKED SCOWS
Scouting Obsessively, Authentic Problems, Cognitive Savvy, Knowledge attracts Knowledge, Experimentation, Disposable Time, Stories(Contrasting Ideas, Skepticism, Critical thinking, Lateral thinking), Other Minds, Words and Pictures, Systems Thinking
Most of us probably read and learn about a lot about heuristics and oracles. While we continue to use them, we blindly stick to them forever without discovering our own heuristics or oracles that work best for us. Please note I have a lot of respect for the existing heuristics and oracles and the people who came up with them. All I want to convey here is for us to think and experiment more to see if we can come up with our own heuristics and oracles which makes better sense to the testing that we do.
Points to Note
1. I have intentionally not detailed the above heuristics because I want you to go read those wonderful articles/blog posts where these heuristics are as is (if you are not already familiar). Summon google for help.
2. James Bach's book 'The Secrets of a Buccaneer Scholar' has a lot more learning heuristics - Will update this list once I buy the book and read it a second time.
3. If you know of any heuristics/oracles or you have come up with on your own, please do let me know.
4. There is a bug in here. No clues. Lemme see if you can find it.
Addendum on 16th Oct 09
In Michael Bolton's words: "To HICCUPP, you can now add S, for Standards and Statutes--relevant laws or industry standards. F, for Familiar Problems. All the prior oracle heuristics are consistency heuristics; we suspect that everything's okay if the product is consistent with them, and it's not okay if we see an inconsistency. The Familiar Problems oracle is the opposite; we want the product to be inconsistent with patterns of programs that we've seen before, and here if we see a consistency we suspect that there's a problem."
Happy Discovering,
Parimala Shankaraiah
http://curioustester.blogspot.com
One more to the list:
ReplyDeleteTHE CICADA KILLER WASP HEURISTIC
by Michael D Kelly
Regards,
Ajay Balamurugadas
Enjoy Testing
@Ajay
ReplyDeleteThanks for pointing out Ajay. It was a nice read for me. This also led me to James Bach's Dead Bee heuristic.
Hi Pari,
ReplyDeleteI thought the bug report might have come in by now... Well I found 2 - but, of course, I don't know if they're what you were thinking about:
"Stories(Contrasting Ideas, Skepticism, Critical thinking, Lateral thinking), Systems thinking, Other Minds, Words and Pictures, Systems Thinking"
Taking the acronyms of this gives: SSOWS - rather than SCOWS - bug #1?
Another bug(?) is that Systems Thinking appears twice. However, Systems Thinking is important so maybe it deserves the double emphasis ;-)
Regards,
/S
@Simon
ReplyDeleteWell I found 2 - but, of course, I don't know if they're what you were thinking about
I somehow knew that there was more than 1 bug even though I reviewed it a couple of times before posting.
Taking the acronyms of this gives: SSOWS - rather than SCOWS - bug #1?
Good Catch - this is the one I was looking for. When I read James Bach's book, I had captured SCOWS in my learning pad. However, while creating this post, I realised that SCOWS does not go with the listed heuristics. I need to refer back to that book to correct this.
The other bug was a failure on my review part. Thanks for letting me know.
Thanks for your time,
Parimala Shankaraiah
http://curioustester.blogspot.com
Not sure that remembering anything in particular enables highly experienced testers to capture those killer bugs. I think we initially learn by practice, which then develops into intuition and finally a sub-conscious capacity to press the wrong button at the most inopertune moment. At this point you can aspire to being a "real" tester. The downside is that you carry this capability into everyday life and nothing is safe! This is why "real" testers become Ludites and carry pencils. Peter. e-test@hotmail.com
ReplyDelete@Peter
ReplyDeleteNot sure that remembering anything in particular enables highly experienced testers to capture those killer bugs. I think we initially learn by practice, which then develops into intuition and finally a sub-conscious capacity to press the wrong button at the most inopertune moment.
Like I said, remebering is just an augmentation to what testers already know and practice. If testers just end up remembering stuff and not putting it to good use, it is a total waste of time and energy.
Good Point Peter.
Thanks,
Parimala Shankaraiah
http://curioustester.blogspot.com
Good Collection and would be a ready reckoner for freshers...
ReplyDeleteThanks for your efforts
Jagan
To HICCUPP, you can now add
ReplyDeleteS, for Standards and Statutes--relevant laws or industry standards.
F, for Familiar Problems. All the prior oracle heuristics are consistency heuristics; we suspect that everything's okay if the product is consistent with them, and it's not okay if we see an inconsistency. The Familiar Problems oracle is the opposite; we want the product to be inconsistent with patterns of programs that we've seen before, and here if we see a consistency we suspect that there's a problem.
Cheers,
---Michael B.
@Michael
ReplyDeleteThanks for pointing out Michael. I have updated this post accordingly. Glad to know that you read my blog. Thank You.
Regards,
Parimala Shankaraiah
//"Stories(Contrasting Ideas, Skepticism, Critical thinking, Lateral thinking), Systems thinking, Other Minds, Words and Pictures, Systems Thinking"
ReplyDeleteTaking the acronyms of this gives: SSOWS - rather than SCOWS - bug #1?//
//Good Catch - this is the one I was looking for. When I read James Bach's book, I had captured SCOWS in my learning pad. However, while creating this post, I realised that SCOWS does not go with the listed heuristics. I need to refer back to that book to correct this.
The other bug was a failure on my review part. Thanks for letting me know.//
SACKED SCOWS is correct and Systems thinking appears twice is also correct. So what we thought as bug is not actually a bug :)
Scouting Obsessively,
Authentic Problems,
Cognitive Savvy,
Knowledge attracts Knowledge,
Experimentation,
Disposable Time,
Stories,
Contrasting Ideas (Skepticism, Critical thinking, Lateral thinking, systems thinking),
Other Minds,
Words and Pictures,
Systems Thinking
James Bach has mentioned System thinking twice, under contrasting ideas he says Skepticism, Critical thinking, Lateral thinking and systems thinking are some important tools he use to contrast ideas.
--Dhanasekar S
For those who are interested, I wrote an article on how one might use HICCUPPSF, back when it was merely HICCUPP.
ReplyDeletehttp://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf
Hope this helps...
---Michael B.
@Michael B
ReplyDeleteThanks for pointing to this article Michael. I will go through it.
Regards,
Parimala Shankaraiah
Hi Pari,
ReplyDelete@ Good Catch - this is the one I was looking for. When I read James Bach's book, I had captured SCOWS in my learning pad. However, while creating this post, I realised that SCOWS does not go with the listed heuristics. I need to refer back to that book to correct this.
The other bug was a failure on my review part. Thanks for letting me know.
>> I need to tell you very frankly - I need to learn a lot from you. You are simply amazing. What makes you amazing and an intelligent human being is 'accepting the mistakes and learning from them and avoid repeating them instead of proving you are right even when you know you are wrong'. You are a rockstar. Be a learner and be a passionate tester and a writer. You write very well. Kool :-)
Cheers,
Vijay...
Hi Parimala,
ReplyDeleteHappen to land on this page so lately. I enjoyed reading . During crimped schedule , these kind of blog helps me to leverage some of my thoughts.
Thanks Again...
Babu
Wow all I can say is that you are a great writer! Where can I contact you if I want to hire you?
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteHello and greetings from Germany!
ReplyDeleteVery nice post about mnemonics.
I think some of them - not to mention all are very usefull for us testers in daily work!
KR, Ralf
Hello and Greetings from Germany!
ReplyDeleteNice and usefull post for the daily work as a tester!
Mnemorics are very helpfull I think.
kind regards, Ralf
This comment has been removed by a blog administrator.
ReplyDeleteUseful Post. Bookmarked .
ReplyDeleteThanks for sharing!
Nice and helpful summary. You might also want to add Bach's Heuristic Test Strategy Model - James Bach
ReplyDeletewww.satisfice.com/tools/htsm.pdf
Maybe no mneumonic, but good heuristics.