Thursday, April 26, 2012

Software Testing Oracles

     I am working with a Software Testing Coach (Anne-Marie Charrett) to challenge myself and learn new things about Software Testing.  Occasionally, I will post things that we talk about.  Recently, she and I talked about Oracles which I am writing about today.

     When I hear the term Oracle, the first thing I think of is the Matrix movies starring Keanu Reeves as Neo.  In the movies, the Oracle is a lovely, wise woman who bakes cookies...but who also knows what will happen in the future.  She is not unlike Software Testing Oracles, which exist to assist Testers to "know" the future, or in testing language, something trustworthy to help predict or compare what should happen with something about to be tested.  Or to get right to the point, if it passes or fails.  That “something to trust” can be several things:

   -The product itself with a new release
   -Similar products to compare
   -Programs such as SQL (not to load a database, but to verify data)
   -Automated tests
   -User manuals
   -Product owner, User, Customer
   -The developer, Architect, test lead, etc.
   -Previous versions of test cases
   -User Stories (Agile)

     Testers do not always have the luxury of time anymore.  Time to pour over requirements and specs (if they're even available), to write long, detailed test cases, or to spend months learning the product.  New software can be given to the experienced (or rookie) Tester with no support of documentation or knowledge of the product.  And as far as release cycles, they are usually just weeks.  Oracles are one tool for the Tester to be able to jump into testing a feature, function, or product, and have some semblance of confidence to assist them before completely leaping into the unknown.
     As you are figuring out which Oracle you can trust to help you in your test effort, it’s important to keep in mind that things can and do change (products), incorrect information can sometimes be passed down (user manuals), and assumptions will happen (requirements, people).  Oracles are a great resource and are there to alert you to a potential issue to be reported.  But you must be aware of the possibility of changes, incorrect information, and assumptions.  As a Tester, we especially don’t want to let our own assumptions rule (or ruin) us.  As Anne-Marie Charrett recently said to me, “Assumptions are everywhere.  Our job as Testers is to question what we think we know and question what other people think they know.  Testing is all about asking questions.”   

     So make it your goal to continually ask the questions, challenge the assumptions, and gather the best Oracles for your projects.  Neo would be pleased.

Anne-Marie Charrett:

For more information on Testing Oracles, here are some great links:


  1. Good to know, I would like to share one of the software testing company. Indium software is one of the best Independent software testing company* established in 1999 | offshore QA Firm | Offshore & In-Housing Software Testing Services. Indium has its registered office in California, Georgia and also has multiple offshore delivery centers in India.
    Services like Mobile application testing services, Game software testing services, Software Testing services, QA services, Software verification and validation, Offshore Software testing, QA Validation services, Test consulting services, automated software testing, quality assurance software, web based application testing .

  2. It’s a very useful & qualitative information shared.
    Indeed a nice share.