Testet test
Q: What does a test need to pass through to be called
as pass or fail?
A: A test needs an expected result or an oracle to
pass through to determine pass or fail.
Q: How does Pradeep think when he exploratory tests?
A: He constructs a test (idea - a heuristic) and runs
them across several oracles allowing himself to find
more problems per test (heuristic) run.
Q: How does this help Pradeep achieve better test
coverage?
A: If he were to run the test with just one oracle (or
expected result, you dummy) he would achieve limited
coverage and limit himself from finding the bugs he
can per test run.
Q: Can you give an example?
A: Sure.
Let us take a test that needs to be run to determine if
the GUI writes to the database when a Submit button
is pressed. The most obvious oracles is - the values
provided in the GUI by the user should be written to
database. This can be considered a Requirements or
Functional Oracle. The time it takes to write can be
another oracle. My test may pass through
Requirements and Functional but may not pass
through Time Oracle. If it fails the Time oracle then I
need to investigate if this is about my internet
connection speeds or about the code or about the
server. That investigation can help me to make
recommendations of what speeds of internet are
required to make the write faster. Now, if there is a
time out implementation to the write command then I
could try delaying it and seeing what happens to the
data on the GUI considering that the user has spent
20 minutes typing into several forms before hitting the
submit button (which we always do. Always. Let me
repeat - ALWAYS). If that fails, then we have tested
the test against Recovery / Error / Data Retention /
User oracles.
All this takes hardly any noticeable time. I pass
through a test through so many oracles to make my
Pass a Power Pass. Scripted tests are Power-less
tests because there are one (or maybe two) oracles
at max people have to pass it through to determine
Pass/Fail.
My tests passes or fails but not the way you think it
passes but the way I see it pass through my powerful
construct of oracles.