An oracle is a heuristic mechanism used to recognize problems by generating expected results, though oracles are fallible. Two common oracle classifications are FEW HICCUPS and Doug Hoffman's taxonomy. FEW HICCUPS is useful for designing tests and logging convincing bug reports, while Doug Hoffman's taxonomy can be used to develop automated tests. Testing oracles help detect defects, and emotions can also potentially serve as an oracle.