In the software testing field, specialists use a lot of various heuristics to make a decision and analyze a problem during testing. They can be extremely useful when making suggestions if a person isn’t sure in the way how to start the testing process. Or it may even happen, that he/she has no idea what to do next.
Heuristics are highly valuable for a particular context, especially if people use them wisely. You may not always choose the right heuristic. But it worth remembering that if some heuristic doesn’t work as it should, you can always try another one.
Popular Software Testing Heuristics
QA engineers often deal with various heuristics in the form of checklists, cheat sheets, and even mnemonics. Sometimes, people call them oracles and models.
And it doesn’t matter how they are called correctly and what form they use on practice. If they are a solution for tester’s problem and they help to make independent decisions, these must be heuristics.
There are three the most popular mnemonics among testers. Let’s analyze each of them in more detail.
#1 Goldilocks (by Elisabeth Hendrickson)
This heuristic is based on the following concept – too big, too small, just right!
With this mnemonic, testers can think about the data input field, try to check too big, small, and standard fields for specific contextual data. For example, they can test how the value is entered in the currency amount field: at first, it can be a negative value, then – something more typical for the product under test.
You can obtain more detailed information about this heuristic in the book “Explore it” by Elisabeth Hendrickson.
#2 RCRCRC (by Karen N. Johnson)
This mnemonic allows remembering keywords for test heuristics on a project that is used for regression testing. The letters of this abbreviation stand for:
- R – recent;
- C – core;
- R – risky;
- C – configuration;
- R – repaired;
- C – chronic.
Each word is used to make a tester think about useful test ideas on a particular project. For example, the first word ‘recent’ says about previously uploaded code or special testing features that are necessary to realize due to some editing.
You can follow this link and read more about this mnemonic, its usage during regression testing, and see authorial Karen’s slides.
#3 FEW HICCUPPS (by James Bach and Michael Bolton)
FEW HICCUPPS is a special mnemonic that allows a tester remembering keywords for used oracles helping to verify problems in software. These oracles are extremely useful if there is no technical requirement or if it has inadequate information blocks.
It is worth remembering that all oracles are the very same heuristics but of a special type helping to find bugs in a software product.
This abbreviation has the following meaning:
- F – familiar;
- E – explainability;
- W – world;
- H – history;
- I – image;
- C – comparable product;
- C – claims;
- U – user expectation;
- P – product;
- P – purpose;
- S – standards and statuses.
These oracles can be focused on the necessary validation criteria. For example, if the software can correspond to its background. Also, FEW HICCUPPS can be used as a special metaphor to think before starting the testing process of new software functionality.
Other Popular Heuristics
Above, we analyzed only three popular test heuristics which are in demand among testers. If you want, you can read the great work of engineer Del Dewar who collected some test heuristics and grouped everything into understandable mental maps.
A short note: considering that some test heuristics use mnemonics, it is a very common incorrect assertion that heuristics should contain mnemonics, or that these concepts are the same.
This is not entirely true. No heuristic requires mnemonics; they are simply created so that it is easier to remember and put their contents into practice.
Mnemonic is a type of heuristic. They function as special cognitive paths aimed at solving memory problems.
Cheat lists are also a type of heuristic. And so you can easily continue to infinity.
Your Testing Heuristics
If you are a tester, you will always have your heuristics in your constant use but you can not even guess about it! This primarily depends on the fact that the creation and implementation of heuristics is an intuitively innate process of thinking. But this also happens because everything that QA does when checking software can be analyzed exactly like heuristics.
Both test techniques and test ideas are created with the help of certain shortened routes that help you quickly make the right decisions when faced with problems.
As a QA, a person can adhere to a specific routine before starting the testing process (for example, open new testing tools – hardware and software). A person does all this as his/her user experience tells. It is important to remember that all this can still be useful in the work and that only an early discovery will help solve the problems of loss of concentration in the initial stages of testing.
Identifying heuristics for each tester is very difficult because sometimes each of us unconsciously creates them based on experience, using the personal thinking of the system. In simple words, this means that during software testing it is only necessary to use generally accepted patterns of mnemonics and heuristics, and expand their thematic content with your observations and strategies.