Software testing using imprecise OCL constraints as oracles

Many software testing techniques are targeted on test data generation. Only a few of them provide an automatic way to verify if software behaves correctly using generated test data. We propose to use software model as imprecise test oracle. UML modelling language extension OCL can be used as test oracle. Imprecise OCL constraints can be viewed as expressions which define expected results within some ranges of possible values. Imprecise OCL constraints can be viewed as expressions which define expected results within some ranges of possible values. When software is executed using generated test data the output is verified against imprecise OCL constraints. If output does not satisfy imprecise OCL constrains, unit under test definitely contains bugs. And if output satisfies imprecise OCL constraints the tester can assume that unit under test has no bugs.