Using Denotational Semantics in the Validation of the Compiler for a Mutation-Oriented Language

Systems which produce large amount of output are very difficult to teste due to the expense of checking whether the outputs are correct or not. In other words, there is no simple oracle that can establish the acceptance of the outputs. For such systems, one plausible alternative is to use a second implementation as an automated oracle. The automated oracle is then run with the test cases applied to the system under testing and the outputs are compared. MuDeL is a language for describing mutant operators and is supported by mudelgen, a system that generates the actual mutants from a given description. Usually, the number of mutants that are generated is very large. Therefore, testing mudelgen is very difficult. To tackle this problem, we have described the semantics of MuDeL using denotational semantics and developed an automated oracle by implementing this semantics in the SML language. In this paper, we describe the results of this approach. We indicate how using a formal framework (i.e., denotational semantics) and a functional language (i.e., SML) helps improving the confidence of the mudelgen system.