
5.10 Program Validation and Testing 273
Example 5.13
Condition testing with the branch testing strategy
Assume that the code below is what we meant to write.
if (a || (b >= c)) { printf("OK\n"); }
The code that we mistakenly wrote instead follows:
if (a && (b >= c)) { printf("OK\n"); }
If we apply branch testing to the code we wrote, one of the tests will use these values: a =0,
b =3,c = 2 (making a false and b >= c true). In this case, the code should print the OK term
[0 || (3 >= 2) is true] but instead doesn’t print [0 && (3 >= 2) evaluates to false]. That test
picks up the error.
Let’s consider another more subtle error that is nonetheless all too ...