My colleague David Rosenblum and I have been pondering how to
best deal with uncertainty in software testing. Current approaches
concentrate on exercising more control on the SUT through the testing
infrastructure (something that is not always possible or cost-effective),
or by relaxing the checks on the behavior (aka weaker assertions and
more chances to miss faults).
Read a bit more about it at the CCC Great Innovative Ideas site.