This is my take on Oracles and Heuristics that was discussed on the 3rd SWTC session.
What is a heuristic? It can be a,
- Pattern ( That you identified from your experience)
- Different view
- Way of thinking
- Past lesson guidance
- Lab experiment
- Method of solving a problem – fallible
- Mental mode
How to test data using heuristics?
- CRUD (Create, Read, Update, Delete)
- Too big
- Too small
- Just right
- 0, 1 or many
- STRIDE (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege)
- ETL ( Extract, Transform, Load)
- Follow data
Mnemonics – read http://www.satisfice.com/articles/sfdpo.shtml
So what is Oracles?
Its all about “how do you know what you know”
People use the “Six honest men practice”, FEWHICCUPPS , Rule of thumb, Educational guess (mostly in estimates) and also fresh eyes to explain Oracles.
F for functionality -> from experience / people
E for Explainable
W for world -> Environment, context of the project / products.
H for History -> history of the product or about the legacy application
I for Image -. Image of the company, image of the product and it represent
C for claims -> product specifications / artifacts, sales or marketing materials, help text, client claims such as bugs
C for comparable -> products can be compared with other similar products in the market, with the legacy application
U for Users -> the people who matter and their feedback
P for Product -> functionality, styling.
P for Purpose -> Answer to the question Why?
S for Standards -> guidelines, heuristics
Then it was the game time. We were supposed to determine/invent the game using oracles and heuristics. We came close to the original but it was fun.