Heuristics and Oracles

As part of the "Learn Something New Every Day" challenge, I had decided to read an article a day and write short notes on Lessons Learned.

Image result for LESSONS LEARNED



The topic of the week: Heuristics and Oracles

The words "Heuristics and Oracles" are new concepts, for testers who have not heard about it.
I have not used these terminologies in the last 6 years at my job.

I heard about the words "Heuristics, Oracles" in Weekend Testing session.
From a long time, I wanted to learn about Heuristics and Oracles more in detail and to Understand it in a better way.

Heuristics:

When we have a Testing Problem in Application, we try with different options or test ideas which we know how to test it and see if it works. The different options which we try are the test heuristics.

Heuristics are simply experience-based techniques for problem-solving, learning, and discovery. 

In Real Time, you might be experienced with testing an application which has scheduling functionality.
Now, the testing problem in an application is "To Test and Validate if scheduled Jobs are running or not"

The Test Heuristics can be:
  • Jobs can be scheduled in different ways: Day, Week, Month, Year and Time.
    • We would be testing if the job is scheduled for 5.00 am UTC is started to execute at a specified time or not, considering the Application server is running on UTC Timezone. --  The test heuristic is running at a specified time.
    • We would also test if the job at the specified day of the week and time is started to execute -- The test heuristic is waiting for the specified day of the week and time.

When we run out of test ideas, we can use heuristics to assist in exploratory testing.
Note: We cannot apply all heuristics, but we must try as much as possible.

Test Heuristics Cheat Sheet

Heuristic Test Strategy Model


Oracles:

While testing an application, we might discover a bug and immediately shouts "Got a Bug".
But there might be some cases, where the developer would not agree and asks for "why it is a bug? Is it part of the requirement document?"

we might think that "It should not work like this right?  Is it really a Bug?" 
There are number of ways, we can determine if its a bug or not. These are called as "Test oracles"

Oracles are simply the principle or mechanism by which we recognize a problem.

Oracles help to discover the real reason, why I think it is a bug.

Testers often say, We recognized the problem as "Product does not meet its expectations/requirements"



Few Hiccups


Popular Posts

JMeter Producing Error: Windows RegCreateKeyEx(...) returned error code 5

Understanding about Contract Testing