Oracles

Oracles image

What is an oracle?

An oracle in testing is a source of knowledge that informs your testing, and that information can be used to inform or determine your testing or to determine if something is a defect or not. Oracles can sometimes inform you of other oracles, and oracles are like a spidey sense when you get the feeling that something doesn't quite seem right here. Cool. 

Do you have any examples?

  • You have comparable products. So does the application have to work in a way that is in line with similar products?
  • Statutes. Does the application have to work in a way that conforms to laws and regulations.
  • Claims, does the application have to work according to requirements or specifications. Are there any marketing or sales claims made regarding the software, or past experiences, so relating to things that you have experienced in the past to inform you of the software that you're testing? 

What's the value? 

They can be used as a source, for backing up your book reports, and, also, they can inform your test design and what might take priority in your testing. 

What are the pitfalls?

Oracles are flawed. Using one oracle will return only one piece of the puzzle. You need to use many oracles to gain a fuller picture. And now we know about oracles.
Oracles are sources of knowledge that you can use to inform your testing and help you decide whether something might be a bug.
There are different types of oracles we can use in software testing, each serving as a guide to help us determine whether something is a defect or working as expected. Here’s a breakdown of the common oracle types: 

  • Specified: Based on docs and requirements.
    Clue: “It’s written down.”

  • Implicit: Based on common sense or expectations.
    Clue: “It should just work like this.”

  • Human: Based on expert opinion.
    Clue: “Let me ask someone.”

  • Regression: Based on past results.
    Clue: “It was working fine last week.”

  • Heuristic: Based on best practices and design rules.
    Clue: “This feels wrong.”

  • Derived: Based on calculations or models.
    Clue: “Let me check the math.”

  • Statistical: Based on data patterns or probabilities.
    Clue: “The numbers don’t look right.”

MoT Professional Membership image
For the advancement of software testing and quality engineering
Explore MoT
Castelo Branco Meetup image
Tue, 6 May
The Future of Testing in an Automated World: Embracing Continuous Learning and A
MoT Software Testing Essentials Certificate image
Boost your career in software testing with the MoT Software Testing Essentials Certificate. Learn essential skills, from basic testing techniques to advanced risk analysis, crafted by industry experts. Early access available now at a discounted rate!
Leading with Quality
A one-day educational experience to help business lead with expanding quality engineering and testing practices.
This Week in Testing image
Debrief the week in Testing via a community radio show hosted by Simon Tomes and members of the community
Subscribe to our newsletter
We'll keep you up to date on all the testing trends.