Toward Harnessing High-Level Language Virtual Machines for Further Speeding Up Weak Mutation Testing

High-level language virtual machines (HLL VMs) are now widely used to implement high-level programming languages. To a certain extent, their widespread adoption is due to the software engineering benefits provided by these managed execution environments, for example, garbage collection (GC) and cross-platform portability. Although HLL VMs are widely used, most research has concentrated on high-end optimizations such as dynamic compilation and advanced GC techniques. Few efforts have focused on introducing features that automate or facilitate certain software engineering activities, including software testing. This paper suggests that HLL VMs provide a reasonable basis for building an integrated software testing environment. As a proof-of-concept, we have augmented a Java virtual machine (JVM) to support weak mutation analysis. Our mutation-aware HLL VM capitalizes on the relationship between a program execution and the underlying managed execution environment, thereby speeding up the execution of the program under test and its associated mutants. To provide some evidence of the performance of our implementation, we conducted an experiment to compare the efficiency of our VM-based implementation with a strong mutation testing tool (muJava). Experimental results show that the VM-based implementation achieves speedups of as much as 89% in some cases.

[1]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

[2]  Michael Franz,et al.  Trace-based compilation in execution environments without interpreters , 2010, PPPJ.

[3]  James E. Smith,et al.  Virtual machines - versatile platforms for systems and processes , 2005 .

[4]  Vivek Sarkar,et al.  The Jikes Research Virtual Machine project: Building an open-source research community , 2005, IBM Syst. J..

[5]  A. Jefferson Offutt,et al.  An Analysis of OO Mutation Operators , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[6]  Richard A. Johnson,et al.  Statistics: Principles and Methods , 1985 .

[7]  Gilad Bracha,et al.  The Java Virtual Machine Specification, Java SE 8 Edition , 2013 .

[8]  Vinicius H. S. Durelli,et al.  Systematic mapping study on high-level language virtual machines , 2010, VMIL '10.

[9]  Joseph L. Zachary,et al.  Reflections on Metaprogramming , 1995, IEEE Trans. Software Eng..

[10]  Daniel Mossé,et al.  Testing in resource constrained execution environments , 2005, ASE '05.

[11]  Sebastian G. Elbaum,et al.  Reducing coverage collection overhead with disposable instrumentation , 2004, 15th International Symposium on Software Reliability Engineering.

[12]  Bo Nørregaard Jørgensen,et al.  Towards a dynamic-update-enabled JVM , 2009, RAM-SE@ECOOP.

[13]  MaYu-Seung,et al.  MuJava: an automated class mutation system , 2005 .

[14]  Luciano Baresi,et al.  An Introduction to Software Testing , 2006, FoVMT.

[15]  Paul Teetor,et al.  R Cookbook , 2011 .

[16]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[17]  A. Jefferson Offutt,et al.  Book review: Introduction to Software Testing written by Paul Amman & Jeff Offutt. and published by CUP, 2008, 978-0-521-88038 322 pp., 0-471-20282-7 , 2008, SOEN.

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

[19]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[20]  K. N. King,et al.  A fortran language system for mutation‐based software testing , 1991, Softw. Pract. Exp..

[21]  Michael L. Van de Vanter,et al.  Multi-level Virtual Machine Debugging Using the Java Platform Debugger Architecture , 2009, Ershov Memorial Conference.

[22]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[23]  Gregg Rothermel,et al.  An experimental determination of sufficient mutant operators , 1996, TSEM.

[24]  A. Jefferson Offutt,et al.  An Empirical Evaluation of Weak Mutation , 1994, IEEE Trans. Software Eng..

[25]  Iain D. Craig,et al.  Virtual machines , 2005 .