Mutation Testing Applied to Object-Oriented Languages

  1. Delgado-Pérez, Pedro 1
  2. Medina-Bulo, Inmaculada 1
  3. Domínguez-Jiménez, Juan José 1
  1. 1 Universidad de Cádiz

    Universidad de Cádiz

    Cádiz, España


Advances in Computer and Electrical Engineering

ISSN: 2327-039X 2327-0403

ISBN: 9781522575986

Year of publication: 2019

Pages: 1426-1438

Type: Book chapter

DOI: 10.4018/978-1-5225-7598-6.CH105 GOOGLE SCHOLAR lock_openOpen access editor


Mutation testing is a suitable technique to determine the quality of test suites designed for a certain program. The set of mutation operators and the overall technique should be developed around each programming language in particular. The structures related to the object-oriented paradigm require a tailored analysis addressing them. However, class mutation operators for these languages have not been analyzed at the same extent as traditional operators for procedural languages in the literature. The purpose of the chapter is to look in depth at the development and the current state of mutation testing, and more specifically, with regard to object-oriented programming languages.

Bibliographic References

  • 10.1007/978-3-540-24855-2_155
  • Agrawal, H., DeMillo, R., Hathaway, B., Hsu, W., Hsu, W., Krauser, E., & Spafford, E. (1989, March). Design of mutant operators for the C programming language. Technical Report SERC-TR-41-P. Software Engineering Research Center, Purdue University, West Lafayette, IN.
  • 10.1109/ICCAE.2010.5451692
  • Baldwin, D., & Sayward, F. (1979). Heuristics for Determining Equivalence of Program Mutations (Research Report No. 276). Department of Computer Science, Yale University.
  • 10.1002/stvr.1470
  • Budd, T. A. (1980). Mutation analysis of program test data (PhD thesis). Yale University, New Haven, CT.
  • 10.1109/ICSTW.2009.41
  • 10.1109/32.910859
  • 10.1007/s12243-014-0445-4
  • 10.1109/C-M.1978.218136
  • 10.1109/32.92910
  • 10.1109/QSIC.2006.51
  • 10.1007/978-3-319-07013-1_15
  • 10.1007/978-3-642-30561-0_5
  • 10.1007/978-3-642-28038-2_18
  • 10.1109/ECOWS.2009.18
  • 10.1016/j.infsof.2011.03.008
  • 10.1002/stvr.1528
  • 10.1109/ISSRE.1994.341378
  • 10.1109/TSE.2011.93
  • M. R.Girgis, (1985), Proceedings of the 8th International Conference on Software Engineering, pp. 313
  • 10.1109/ICSTW.2009.37
  • 10.1109/TSE.1977.231145
  • Hussain, S. (2008). Mutation clustering. King’s College London. Retrieved 2012-10-25, from
  • 10.1016/j.infsof.2009.04.016
  • 10.1109/TSE.2010.62
  • Kim, S., Clark, J., & McDermid, J. (2000). Class mutation: Mutation testing for object-oriented programs. In Proceedings of the Net.ObjectDays (pp. 9–12).
  • 10.1002/spe.4380210704
  • 10.4218/etrij.09.0108.0356
  • Ma, Y. S., Kwon, Y. R., & Offutt, J. (2002, November). Inter-Class Mutation Operators for Java. In S. Kawada (Ed.), Proceedings of XIII International Symposium on Software Reliability Engineering (pp. 352–363). Annapolis, MD: IEEE Computer Society.
  • 10.1002/stvr.308
  • 10.1016/j.scico.2012.02.005
  • 10.1109/ICCKE.2014.6993419
  • 10.1002/(SICI)1099-1689(199912)9:4<205::AID-STVR186>3.0.CO;2-X
  • Mutant: Mutation testing tool for Ruby. (n.d.). Retrieved from
  • 10.1109/CMPASS.1996.507890
  • 10.1002/(SICI)1097-024X(199902)29:2<167::AID-SPE225>3.0.CO;2-V
  • 10.1109/ICSE.2015.103
  • 10.1186/2193-1801-2-121
  • 10.1109/ICST.2010.30
  • 10.1016/j.infsof.2011.03.006
  • 10.1007/s10664-008-9083-7
  • 10.1016/j.infsof.2006.06.009
  • 10.1145/154183.154265
  • 10.1109/MS.2010.79
  • Van Laenen, F. (2012). Mutation Testing. Overload, 108, 16-22. Retrieved from
  • 10.1109/WST.1988.5370