Abstract
Program mutation is a fault-based technique for measuring the effectiveness of test cases that, although powerful, is computationally expensive. The principal expense of mutation is that many faulty versions of the program under test, called mutants, must be created and repeatedly executed. This paper describes a tool, called JavaMut, that implements 26 traditional and object-oriented mutation operators for supporting mutation analysis of Java programs. The current version of that tool is based on syntactic analysis and reflection for implementing mutation operators. JavaMut is interactive; it provides a graphical user interface to make mutation analysis faster and less painful. Thanks to such automated tools, mutation analysis should be achieved within reasonable costs.
Similar content being viewed by others
References
Barbosa, E.F., Maldonado, J.C., Rizzo Vincenzi, A.M.: Toward the determination of sufficient mutant operators for C. Software Test Verification Reliab 11: 113–136, 2001
Booch, G., Rumbaugh, J., Jacobson, I.: The unified modeling language user guide. Object Technology Series. Addison-Wesley, Reading, Mass., USA, 1999
Chevalley, P., Thévenod-Fosse, P.: An empirical evaluation of statistical testing designed from UML state diagrams: the flight guidance system case study. In: Proc. 12th International Symposium on Software Reliability Engineering (ISSRE 2001), Hong Kong, China, November 2001, pp. 254–263
Daran, M., Thévenod-Fosse, P.: Software error analysis: a real case study involving real faults and mutations. In: Proc. 1996 International Symposium on Software Testing and Analysis (ISSTA’96), San Diego, Calif., USA, January 1996, pp. 158–171
DeMillo, R.A., Lipton, R.J., Sayward, F.G.: Hints on test data selection: help for the practicing programmer. Computer 11:34–41, April 1978
DeMillo, R.A., Martin, R.J., McCracken, W.M., Passafiume, J.S.: Software testing and evaluation. Benjamin-Cummings, Menlo Park, Calif., USA, 1987
Golm, M., Kleinöder, J.: Jumping to the meta level: behavioral reflection can be fast and flexible. In: Proc. 2nd International Conference on Metalevel Architectures and Reflection (Reflection’99), Lecture Notes in Computer Science, vol. 1616. Springer, Berlin Heidelberg New York, 1996, pp. 22–39
Hierons, R.M., Harman, M., Danicic, S.: Using program slicing to assist in the detection of equivalent mutants. Software Test Verification Reliab 9: 233–262, 1999
How Tai Wah, K.S.: A theoretical study of fault coupling. Software Test Verification Reliab 10: 3–45, 2000
Kim, S., Clark, J.A., McDermid, J.A.: Class mutation: mutation testing for object-oriented programs. In: Proc. Net.ObjectDays Conference on Object-Oriented Software Systems, Erfurt, Germany, 2000
Kim, S., Clark, J.A., McDermid, J.A.: Investigating the effectiveness of object-oriented testing strategies with the mutation method. In: Proc. Mutation 2000: Mutation Testing in the Twentieth and the Twenty-First Centuries, San Jose, Calif., USA, 2000
King, K.N., Offutt, A.J.: A Fortran language system for mutation-based software testing. Software Pract Exper 21: 685–718, 1991
Laprie , J.-C. (ed): Dependability: basic concepts and terminology, vol. 5. Springer, Berlin Heidelberg New York, 1992
Miller , S.P.: Specifying the mode logic of a flight guidance system in CoRE and SCR. In: Proc. 2nd Workshop on Formal Methods in Software Practice (FMSP’98), Clearwater Beach, Fla., USA, 1998
Offutt, A.J.: Investigations of the software testing coupling effect. ACM Trans Software Eng Methodol 1: 3–18, 1992
Offutt, A.J., Lee, A., Rothermel, G., Untch, R.H., Zapf , C.: An experimental determination of sufficient mutant operators. ACM Trans Software Eng Methodol 5: 99–118, 1996
Offutt, A.J., Pan, J.: Automatically detecting equivalent mutants and infeasible paths. Software Test Verification Reliab 7: 165–192, 1997
The Open University, Milton Keynes, UK. M301 Case Study. http://m301.open.ac.uk/html/case_study/, 2002
Tatsubori, M., Chiba, S., Killijian, M.-O., Itano, K.: OpenJava: a class-based macro system for Java. In: Reflection and Software Engineering, Lecture Notes in Computer Science, vol. 1826. Springer, Berlin Heidelberg New York, June 2000, pp. 117–133
Thévenod-Fosse, P., Waeselynck, H.: Software statistical testing based on structural and functional criteria. In: Proc. 11th International Software Quality Week (QW’98), San Francisco, Calif., USA, May 1998
Thévenod-Fosse, P., Waeselynck, H., Crouzet, Y.: Software statistical testing. In: Randell, B., Laprie, J.-C., Kopetz, H., Littlewood , B.(eds) Predictably dependable computing systems. Springer, Berlin Heidelberg New York, 1995, pp. 253–272
Welch, I., Stroud, R.: From Dalang to Kava – the evolution of a reflective Java extension. In: Proc. 2nd International Conference on Metalevel Architectures and Reflection (Reflection’99), Lecture Notes in Computer Science, vol. 1616. Springer, Berlin Heidelberg New York, 1999, pp. 2–21
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Chevalley, P., Thévenod-Fosse, P. A mutation analysis tool for Java programs. Int J Softw Tools Technol Transfer 5, 90–103 (2003). https://doi.org/10.1007/s10009-002-0099-9
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-002-0099-9