If I ask you, which speed lane you take while coming to office each morning? You would be surprised that I will have different answers from different people. Some of you will simply say “Fast”, “Slow”, or “Middle”, other would respond “It Depends on the Traffic”, and some would say “I come in Public transport, so I don’t drive to work!” :-p

Thing is, each answer is right in accordance to its context and if you see it in a bigger picture, actually each answer is also rather incomplete! Why? Because, you cannot stick to one speed and lane at all, unless you live in your office and does not go to work at all!

The structure of the city and its traffic is context based and changes as per the demographics, the road conditions, number of lanes, the drivers and the type of traffic it allows, the speed limit of the road and size of the lanes. For example, consider yourself entering the “Lines Area Corridor – Karachi”, you raise the speed, there are lanes on the road, so you drive with confidence, and reach the “parking plaza” within the next 2 minutes, and here right at the entrance to Saddar, the complete scenario changes. You suddenly shift the gear to the lower level, there are people on the road, and there are carts, bikes and traffic coming in from 4 different directions. Everything changes; have you ever consider that while driving?

2 Question is, how do you make out that there is a problem, and then find it?

The techniques that kept varying in your mind to transact with the traffic are your own, you have either learned these with experience, or someone with similar experience told you that, and you simply adapted, and additionally it is also happening in real time. In so many words, you are actually using “Heuristics” and the principles which allow you remain under “Lawful” driving and not hitting someone or doing something illegal on the road are called “Oracles”.

What are heuristics?

A heuristic is a fallible method for solving a problem or making a decision”

Whereas an Oracle is;

A principle or mechanism by which we recognize a problem

So the next question that pops up in the mind is that “where can we find the list of Heuristics and Oracles, best suited for our need?”

The answer; well, it depends, as there are no “Best Practices” but only the good ones. For each problem and the way to its solution different people have actually used their own or existing methods. For example, if you see the domain of “Context Driven Testing”, you would find several Heuristics as solutions for a number of problems and similarly, several oracles being used to help out in recognizing these problems.


Remember and note that all Heuristics are Oracles; it depends on the context where we are using them. Take for instance, FEW-HICCUPPS (Familiarity, Explainability, World, History, Image, Comparable Products, Claims, User Expectations, Product Itself, Purpose, and Statutes) is a global quality criterion heuristic, and by global I mean you can use it for any system or product you wish to test in terms of its Quality. Now, this also serves as an oracle and a heuristic, depending on the context, a tester or a team is facing at the given time.

The common sense flag:

– Question is can I use heuristics partially? Yes I can!
– Question is can I modify heuristics? Yes I can!
– Question is can I add another method in heuristics? Yes I can!
– Question is can I discard heuristics? Yes I can, as it did not fit my context!
– Question is can I create a new heuristics? Yes I can, but that will not be FEW – HICCUPPS! It would be something else.
– Question is if I talk about heuristics, can I mention an older version? Well, it depends, but do keep the right reference to the newer one, and if you were unaware of the newer one, then keep yourself updated.You know, Google, before you Doodle


James Bach has put forwarded a simple method to create your own heuristics;

– Attempt to solve a problem.
– Conceive of a need or desire to add structure to that attempt OR Notice a pattern.
– Look for a pattern in the problem you are solving.
– Try to understand the pattern as best you can:

— What’s the essence of this pattern?
— How can I simplify this pattern?

– Label it.

– Try it (experiment with it).

— Be a skeptic.
— Vary your label.
— See if you actually remember your heuristic when you need it.


Some of the popular heuristics which you can use in Testing are:

–          Cop Flung Gun – For mobile applications

–          SFDIPOT – For Product Elements

–          Touring Heuristic by Michael D Kelly

–          MidTested – For Project Environment

So let’s start exploring new ideas, methods to strengthen our testing – keep experimenting and keep practicing!


Arslan Ali is a Software Testing and Training professional; he serves his passion at OuttaBox (www.outtabox.co) as a Training Consultant for various software testing workshops, and also works as a Senior Consultant Information Solutions at Sidat Hyder Morshed Associates – a renowned software solution provided in Pakistan.

Arslan has been around ICT industry past 15 years and have diverse experience in Software Development, Quality Assurance and Business Process implementation.

You can reach him out on twitter @arslan0644.

Share Button