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
-Requirements
-User manuals
-Product owner, User, Customer
-The developer, Architect, test lead, etc.
-Previous versions of test cases
-User
Stories (Agile)
-Experience
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: http://www.mavericktester.com
For more information on Testing Oracles, here are some great links: