In the software testing world, you may or may not aware of using techniques or models to help your testing more effectively and efficiently. Sometimes, you may not know what you should test first, whether or not your testing coverage is good enough, your test design is comprehensive or not, to name a few. A lot of questions come into your mind with curiosity from your manager/leader about your testing.
In this post, I am trying to collect Test Heuristics in Mnemonics from testing experts which have been often applying in my testing activities and how heuristics and mnemonics are sometimes used together.
What is a mnemonic?
According to the definition of Wikipedia, it can be roughly understood as a technique to help people remember something more easily.
What is a heuristic?
According to Wikipedia, “A heuristic is an adjective for experience-based techniques that help in problem-solving, learning, and discovery.” A heuristic method is particularly used to rapidly come to a solution that is hoped to be close to the best possible answer, or optimal solution. Heuristics are “rules of thumb”, educated guesses, intuitive judgments, or simply common sense. Heuristics as a noun is another name for heuristic methods.
When you face a problem, you try some solutions that may work. For instance, if you suddenly find your computer inoperable, what do you do? You may press the power button. If that doesn’t work, then you may check the power cable, and if that also doesn’t work, then you may try plugging it into a different power source and so on. Most of us try a number of steps to solve our problems. These steps may not always work but we try them because we know that they may work.
In several cases, a well-known heuristic may not have a mnemonic, for example, Test Heuristics Cheat Sheet created by Elisabeth Hendrickson.
Why do we need to leverage Heuristics in Testing?
With test heuristics, they can bring a lot of following benefits.
- Help remember the context, where the apps or products are tested and used.
- Shortness – easy to fit in mind-maps or a piece of papers
- Test qualitatively and comprehensively in the more detailed format
- Help to avoid mistakes or missing items under similar circumstances during testing. Heuristics act as “reminders” on the base of previous experience.
What are they?
Heuristic Test Strategy Model – by James Bach and Michael Bolton
Help you formalize a testing strategy that takes you into consideration about project context, quality criteria, techniques, and key risks of your AUT.
- MIDTESTD (Miss Tested or Kid Tested) – Project Environment Heuristics
Mission/Customer, Information, Developer Relations, Team, Equipment & Tools, Schedule, Test Items, Deliverables
- CRUSSPIC STMPL – Quality Characteristics Heuristics
Operational Criteria – CRUSSPIC
Capability, Reliability, Usability, Security, Scalability, Performance, Installability, Compatibility
Development Criteria – STMPL
Supportability, Testability, Maintainability, Portability, Localizability
- FDSFSCURA – Test Techniques Heuristics
Function, Domain, Scenarios, Flow, Stress, Claims, User, Risks, Automation Checking
- SFDIPOT (San Francisco Depot) – Product Elements
Structure, Function, Data, Interfaces, Platforms, Operations, Time
RCRCRC (Revenue) – Regression Testing Heuristics by Karen N. Johnson
The mnemonic RCRCRC will help you remember key words for a test heuristic that could support you with regression testing and select what tests should be concentrated on picking up to bring the most values. The letters stand for Recent, Core, Risky, Configuration, Repaired, and Chronic.
SHADED FIGS – Test Design with tapping into your emotions by Adzic, Gojko
(Image source: Extracted from the book – Fifty Quick Ideas to Improve Your Tests)
The ‘shaded figs’ heuristic helps teams design more complete tests, whether up-front or during an exploratory session. It mimics new ideas for tests and exposes other areas of risk for consideration. This heuristic includes nine emotions: scary, happy, angry, delinquent, embarrassing, desolate, forgetful, indecisive, greedy, stressful.
RIMGEA – Bug Advocacy Mnemonic by Cem Kaner
Replicate it, Isolate it, Maximize it, Generalize it, Externalize it, And Say it Clearly and Dispassionately
FCC CUTS VIDS – Touring Heuristics by Michael D Kelly
- Feature Tour, Complexity Tour, Claims Tour
- Configuration Tour, User Tour, Testability Tour, Scenario Tour
- Variability Tour, Interoperability Tour, Data Tour, Structure Tour
I SLICED UP FUN – Mobile Application Testing Mnemonic by Jonathon Kohl
Inputs, Store, Location, Interactions/Interruptions, Communications, Ergonomics, Data, Usability, Platform, Function, User Scenarios, Network
TERMS – Test Automation Mnemonic by Albert Gareev
Tools & Technology, Execution, Requirements & Risks, Maintenance, Security
CRUMBS – Test Automation Mnemonic by Albert Gareev
- Confirmation, Coverage Criteria & Complexity
- Risk, Robustness & Reliability
- Usefulness & Usability
- Maintainability & Manual Effort
- Basis & Bias,
- Span, Separation, & Security
FIBLOTS – Model Workloads for Performance Testing by Scott Barber
Frequent, Intensive, Business Critical, Legal, Obvious, Technically Risky, Stakeholder Mandated
IVECTRAS – Performance Test Classification Mnemonic by Scott Barbe
INVESTIGATION or VALIDATION
of END-TO-END or COMPONENT
response TIMES and/or RESOURCE consumption
under ANTICIPATED or STRESSFUL conditions
How to apply, customize, develop heuristics?
- Learn about heuristics. Having an understanding of heuristics gives you the tools to apply and encourages you to develop your skills.
- Comprehend when a heuristic or method is helpful. When it should be used and when it should not.
- Grasp how to formulate your own problems so that you can adopt the best heuristic to solve your problems.
- CUSTOMIZE: Be aware that sometimes you don’t need to use someone else’s heuristics completely and blindly. You may use a part of it. For instance, you might not see the usefulness of “Structure” in SFDIPOT in some cases, you can eliminate it.
- TAILOR and DEVELOP: Look for ideas in your testing that fits into your AUT. I commonly add a “Configuration” word into SFDIPOT to validate different configurations to uncover potential risks. I also tailor the “Time” to associate with a timestamp, timezone, and other data related to time rather than using it as a fast/slow response because the response time, rendering time, or relevant performance issues were covered in my performance testing strategy.
Creating Your Mnemonics – Let’s give it a try
To rapidly recall your ideas, if the shortcut tool can help you, let create it. I created my mnemonics – SERE (stands for Strategy, Execution, Report, Evolution) for my testing assessment, to identify where the testing gaps are in the entire testing activities. I will explain this mnemonic in another post later. Stay tuned!