In domain testing, we divide possible tests into classes that we deem to be equivalent – i.e. groups of tests that we expect will cause the software to do the same thing, or give us a similar result.
However, equivalence is a matter of perspective:
Variable Perspective. Consider testing the login function an application. Logging in with user “Jane” and a valid password is equivalent to logging in with user “John” and a valid password – these tests both give us the same results (the user logs in successfully). This only holds from the perspective of the variables userID, password and loginAllowed. If other variables (such as time limits to access, user role etc) are also considered, these tests may give very different results. We need to be careful to understand what variables we are dealing with, and what results we are observing.
Failure Perspective. Not all equivalent tests are created equally, some have more power in relation to potential failures than others. Boundary values are a classic example. Imagine a numeric variable that can be set to a value from 0 to 9. Tests with values 0 to 9 all exist within an equivalence class, but values 0 and 9 have more power in relation to boundary failures than values 2 to 8. This non-equivalence in relation to failures is the essence of best representative testing, and we can leverage this to select the tests that give us the best chance of exposing the failures we are looking for.
When performing a domain analysis, it is useful to remember than tests that are equivalent from one perspective will be non-equivalent from another.