I was going through a book on software testing where I found these two terms. However both the definition said the same thing quoting which

Oracles that check results without reference to predicted output are called Partial oracle

Oracles that check correctness without predicting results are self check as oracle.

What is the difference between the two then?

1 Answer 1


In software we don't have access to complete Oracles (a mechanism for determining whether the program passed or failed) only partial ones. This means we can only ever verify some aspect of the test output. This might be why whatever book you are reading says they are the same, because they are.

I haven't heard the term "Self Check Oracles" but I have heard the term "Self Verifying Data Oracle", which is about generating data in a way that can be checked for integrity, usually by using some "key" to tag the data and later using the key to verify data correctness. See Doug Hoffmans work here for more.

Doug Hoffman has some really interesting materials & research on Oracles. In one of his more recent published sets of slides you can see he's identified or summarized 13 different test oracles. I recommend checking out his publications here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.