Inside the world of testing and quality assurance, we frequently hear the words Test Heuristics and Test Oracles, yet what are they and how we can execute them into our day by day testing activities?
Heuristics and Oracles may appear inaccessible concepts for new testers. The words sound scholastic, expelled from the truth of what a tester does each day. In fact, they are enormously helpful tools for critical thinking.
Therefore, what are Heuristics and Oracles, and for what reason should you learn more about them?
In its easiest definition, a heuristic is a rule of thumb that you apply to tackle an issue.
A heuristic procedure is a way to deal with critical thinking, learning, or discovery that utilizes a down to earth technique not destined to be ideal or flawless, however adequate for the quick objectives. Where finding an ideal arrangement is incomprehensible or unfeasible, heuristic techniques can be utilized to accelerate the way toward finding a satisfactory solution. Heuristics can be mental shortcuts that facilitate the intellectual load of settling on a choice. Examples of this technique incorporate utilizing a rule of thumb, an informed estimate, an instinctive judgment, stereotyping, profiling, or presence of mind.
Frequently enough, when we face an issue, we attempt some arrangement that may work. If you all of a sudden discover your PC inoperable, what do you do? You may press the power button; if that doesn’t work, at that point you may check the power cable, and in the case that likewise doesn’t work, at that point, you may try plugging it to another power source, etc. Most of us try attempts various steps to take care of our issues. These means may not generally work but rather we attempt them since we realize that they may work.
When you test software, you utilize these heuristics either intentionally or unwittingly. Even when you have your test cases or scripts recorded to moment detail, you don’t ordinarily follow them precisely as it stands. Have you seen there are times while testing that something catches your eye that is either not in your scripts or not even in the requirements and you states to yourself, “hold tight, that doesn’t look right? Let me attempt this to perceive what occurs.” You speculate issues since heuristics are guiding you.
“Oracle is the guideline or system used to recognize the issue. It helps in settling on a choice about the issue”
While testing an application, we may find a bug and promptly yells “Got a Bug”.
But, there may be a few cases, where the developer would not concur and requests “why it is a bug? Is it part of the necessity record?”
We may believe that “It should not work like this right? Is it really a Bug?”
There are various ways, we can decide whether it’s a bug or not. These are called as “Test oracles”
Oracles help to find the real reason, why I think it is a bug.
Testers regularly state – We perceived the issue as “product does not live up to its expectations/requirements”
Heuristics and Oracles in Agile and Exploratory Testing
Both Heuristics and Oracles are imperative with regards to exploratory testing in an agile condition. When we don’t have sufficient opportunity to build test cases and the product is persistently advancing, we can’t simply depend on pre-structured test scripts, we need to utilize our domain knowledge (Test Oracles) and past testing experience (Test Heuristics) to have the option to rapidly plan and execute tests at the same time while additionally finding out about the product.