A Novel Approach to Mutation Operator Design for MDE Languages

Abstract

Due to the increasing reliance on the software of systems, such as enterprise systems, a wide array of approaches has been found to facilitate the development of software for such systems. The growth of system complexity, however, has provoked concerns about the quality of the software. One approach that copes with complexity is model driven engineering that uses models containing only essential domain concepts, in order to represent complex systems. With some level of automation, models are then maintained by programs that are prone to error, as they are man-made. In order to find errors in programs, software engineers use mutation testing to build strong test inputs by introducing faults into the tested software using mutation operators. They then study if the introduced faults are detected by the test inputs. There have been few attempts to design mutation operators for model driven languages, which have common metamodeling language models, compared with traditional programming languages. This thesis presents an effective language-agnostic approach for mutation operator design for the rapidly emerging model driven engineering languages by considering metamodeling languages. The approach produces generic operators that can be instantiated to generate concrete ones for a given language model, which can be used to mutate program models that conform to the language model. The approach and generic operators are evaluated using empirical mutation analysis experiments over programs written in the ATL and EOL languages. The results show that the generic operators generated from the approach are instantiatable over ATL and EOL metamodels and have produced low proportions of invalid and equivalent mutants that can impact negatively on any mutation testing process. Also, the generic operators have produced useful mutants such as live and not trivially detected kinds of mutants

    Similar works