06 October, 2009

The Power of Mnemonics

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

21 comments:

  1. One more to the list:

    THE CICADA KILLER WASP HEURISTIC
    by Michael D Kelly

    Regards,
    Ajay Balamurugadas
    Enjoy Testing

    ReplyDelete
  2. @Ajay

    Thanks for pointing out Ajay. It was a nice read for me. This also led me to James Bach's Dead Bee heuristic.

    ReplyDelete
  3. Hi Pari,

    I 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

    ReplyDelete
  4. @Simon
    Well 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

    ReplyDelete
  5. 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
  6. @Peter
    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.


    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

    ReplyDelete
  7. Good Collection and would be a ready reckoner for freshers...

    Thanks for your efforts

    Jagan

    ReplyDelete
  8. 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.

    Cheers,

    ---Michael B.

    ReplyDelete
  9. @Michael

    Thanks for pointing out Michael. I have updated this post accordingly. Glad to know that you read my blog. Thank You.

    Regards,
    Parimala Shankaraiah

    ReplyDelete
  10. //"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?//
    //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

    ReplyDelete
  11. For those who are interested, I wrote an article on how one might use HICCUPPSF, back when it was merely HICCUPP.

    http://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf

    Hope this helps...

    ---Michael B.

    ReplyDelete
  12. @Michael B
    Thanks for pointing to this article Michael. I will go through it.


    Regards,
    Parimala Shankaraiah

    ReplyDelete
  13. Hi Pari,

    @ 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...

    ReplyDelete
  14. Hi Parimala,
    Happen 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

    ReplyDelete
  15. Wow all I can say is that you are a great writer! Where can I contact you if I want to hire you?

    ReplyDelete
  16. This comment has been removed by a blog administrator.

    ReplyDelete
  17. Hello and greetings from Germany!
    Very nice post about mnemonics.
    I think some of them - not to mention all are very usefull for us testers in daily work!

    KR, Ralf

    ReplyDelete
  18. Hello and Greetings from Germany!
    Nice and usefull post for the daily work as a tester!
    Mnemorics are very helpfull I think.

    kind regards, Ralf

    ReplyDelete
  19. This comment has been removed by a blog administrator.

    ReplyDelete
  20. Useful Post. Bookmarked .
    Thanks for sharing!

    ReplyDelete
  21. Nice and helpful summary. You might also want to add Bach's Heuristic Test Strategy Model - James Bach
    www.satisfice.com/tools/htsm.pdf‎

    Maybe no mneumonic, but good heuristics.

    ReplyDelete