Identify built in test oracles

Whenever I'm testing an application, I'm always looking for built in test oracles. That is, something I can use within the product to help me identify possible issues in other areas of the product.

For an example of this, let's look at the WSJ's Market Data Center. Within the Market Data Center you can look at some performance charts for the S&P 500 Index (to pick one randomly). If you follow that link, you should notice that you're presented with some interactive charts. However, you might also notice a tab for "Standard Charting."


If you click this tab, the same data is rendered in a non-interactive way. You would expect that when the static charts on "Standard Charting" are rendered, the data they display would match the default rendered data on the "Dynamic Charting" tab. It's those three little words - "you would expect" - that mean you've found an oracle. You now have a way to identify problems by using the application itself.
Test OraclesMichael Kelly