 They are connected to formal specification, model-based design which may be used to generate test oracles, state transition specification for which oracles can be derived to aid model-based testing and protocol conformance testing, and design by contract for which the equivalent test oracle is an assertion.Specified Test Oracles have a number of challenges.Formal specification relies on abstraction, which in turn may naturally have an element of imprecision as all models cannot capture all behaviour.