A transformational language for mutant description

Mutation testing has been used to assess the quality of test case suites by analyzing the ability in distinguishing the artifact under testing from a set of alternative artifacts, the so-called mutants. The mutants are generated from the artifact under testing by applying a set of mutant operators, which produce artifacts with simple syntactical differences. The mutant operators are usually based on typical errors that occur during the software development and can be related to a fault model. In this paper, we propose a language-named MuDeL (MUtant DEfinition Language)-for the definition of mutant operators, aiming not only at automating the mutant generation, but also at providing precision and formality to the operator definition. The proposed language is based on concepts from transformational and logical programming paradigms, as well as from context-free grammar theory. Denotational semantics formal framework is employed to define the semantics of the MuDeL language. We also describe a system-named mudelgen-developed to support the use of this language. An executable representation of the denotational semantics of the language is used to check the correctness of the implementation of mudelgen. At the very end, a mutant generator module is produced, which can be incorporated into a specific mutant tool/environment.

[1]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[2]  James M. Neighbors,et al.  The Draco Approach to Constructing Software from Reusable Components , 1984, IEEE Transactions on Software Engineering.

[3]  Aditya P. Mathur,et al.  Interface Mutation: An Approach for Integration Testing , 2001, IEEE Trans. Software Eng..

[4]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[5]  W. Eric Wong,et al.  Mutation Testing Applied to Validate SDL Specifications , 2004, TestCom.

[6]  K. S. How Tai Wah,et al.  A theoretical study of fault coupling , 2000, Softw. Test. Verification Reliab..

[7]  Simone do Rocio Senger de Souza,et al.  Mutation Testing Applied to Estelle Specifications , 2004, Software Quality Journal.

[8]  A. Jefferson Offutt,et al.  Inter-class mutation operators for Java , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[9]  James R. Cordy,et al.  The TXL Programming Language-Version 10 , 2000 .

[10]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[11]  Auri Marcelo Rizzo Vincenzi,et al.  Muta-Pro: Towards the definition of a mutation testing process , 2006, Journal of the Brazilian Computer Society.

[12]  J.H. Andrews,et al.  Is mutation an appropriate tool for testing experiments? [software testing] , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[13]  Lloyd Allison,et al.  A Practical Introduction to Denotational Semantics , 1987 .

[14]  Kevin A. Schneider,et al.  Source transformation in software engineering using the TXL transformation system , 2002, Inf. Softw. Technol..

[15]  A. Jefferson Offutt,et al.  Mutation analysis using mutant schemata , 1993, ISSTA '93.

[16]  Gyula Csopaki,et al.  Applying Mutation Analysis to SDL Specifications , 2003, SDL Forum.

[17]  Roseli A. Francelin Romero,et al.  Bayesian-Learning Based Guidelines to Determine Equivalent Mutants , 2001, Int. J. Softw. Eng. Knowl. Eng..

[18]  Gregg Rothermel,et al.  An experimental evaluation of selective mutation , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[19]  James M. Bieman,et al.  Mutation of Java objects , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[20]  Hans Rischel,et al.  Introduction to Programming Using Sml , 1999 .

[21]  Ivan Bratko,et al.  Prolog Programming for Artificial Intelligence , 1986 .

[22]  Márcio Eduardo Delamaro,et al.  Proteum/FSM: a tool to support finite state machine validation based on mutation testing , 1999, Proceedings. SCCC'99 XIX International Conference of the Chilean Computer Science Society.

[23]  Arto Salomaa,et al.  Formal languages , 1973, Computer science classics.

[24]  John A. McDermid,et al.  A development of hazard analysis to aid software design , 1994, Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance.

[25]  John A. Clark,et al.  Investigating the effectiveness of object‐oriented testing strategies using the mutation method , 2001 .

[26]  Wynne Hsu,et al.  DESIGN OF MUTANT OPERATORS FOR THE C PROGRAMMING LANGUAGE , 2006 .

[27]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[28]  Paulo César Masiero,et al.  Mutation testing applied to validate specifications based on statecharts , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[29]  Tony Mason,et al.  Lex & Yacc , 1992 .