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.