Using Evolutionary Computation to Improve Mutation Testing

  • Pedro Delgado-Pérez
  • Inmaculada Medina-Bulo
  • Mercedes G. Merayo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10306)

Abstract

The work on mutation testing has attracted a lot of attention during the last decades. Mutation testing is a powerful mechanism to improve the quality of test suites based on the injection of syntactic changes into the code of the original program. Several studies have focused on reducing the high computational cost of applying this technique and increasing its efficiency. Only some of them have tried to do it through the application of genetic algorithms. Genetic algorithms can guide through the generation of a reduced subset of mutants without significant loss of information. In this paper, we analyse recent advances in mutation testing that contribute to reduce the cost associated to this technique and propose to apply them for addressing current drawbacks in Evolutionary Mutation Testing (EMT), a genetic algorithm based technique with promising experimental results so far.

Keywords

Software testing Mutation testing Genetic algorithms 

References

  1. 1.
    Adamopoulos, K., Harman, M., Hierons, R.M.: How to overcome the equivalent mutant problem and achieve tailored selective mutation using co-evolution. In: Deb, K. (ed.) GECCO 2004. LNCS, vol. 3103, pp. 1338–1349. Springer, Heidelberg (2004). doi:10.1007/978-3-540-24855-2_155 CrossRefGoogle Scholar
  2. 2.
    Banzi, A.S., Nobre, T., Pinheiro, G.B., Árias, J.C.G., Pozo, A., Vergilio, S.R.: Selecting mutation operators with a multiobjective approach. Expert Syst. Appl. 39(15), 12131–12142 (2012). http://dx.doi.org/10.1016/j.eswa.2012.04.041 CrossRefGoogle Scholar
  3. 3.
    Delgado-Pérez, P., Medina-Bulo, I., Segura, S., Domínguez-Jiménez, J.J., García-Domínguez, A.: GiGAn: evolutionary mutation testing for C++ object-oriented systems. In: The 32nd ACM Symposium on Applied Computing (SAC 2017) (2017)Google Scholar
  4. 4.
    Delgado-Pérez, P., Segura, S., Medina-Bulo, I.: Assessment of C++ object-oriented mutation operators: a selective mutation approach. Softw. Test. Verif. Reliab. (2017). http://dx.doi.org/10.1002/stvr.1630
  5. 5.
    Domínguez-Jiménez, J.J., Estero-Botaro, A., García-Domínguez, A., Medina-Bulo, I.: GAmera: an automatic mutant generation system for WS-BPEL compositions. In: Proceedings of the 7th IEEE European Conference on Web Services, pp. 97–106. IEEE Computer Society Press, Eindhoven, November 2009. http://dx.doi.org/10.1109/ECOWS.2009.18
  6. 6.
    Domínguez-Jiménez, J.J., Estero-Botaro, A., García-Domínguez, A., Medina-Bulo, I.: Evolutionary mutation testing. Inf. Softw. Technol. 53(10), 1108–1123 (2011). http://dx.doi.org/10.1016/j.infsof.2011.03.008 CrossRefGoogle Scholar
  7. 7.
    Estero-Botaro, A., Palomo-Lozano, F., Medina-Bulo, I., Domínguez-Jiménez, J.J., García-Domínguez, A.: Quality metrics for mutation testing with applications to WS-BPEL compositions. Softw. Test. Verif. Reliab. 25(5–7), 536–571 (2015). http://dx.doi.org/10.1002/stvr.1528 CrossRefGoogle Scholar
  8. 8.
    Goldberg, D.E.: Genetic Algorithms in Search, Optimization and Machine Learning., 1st edn. Addison-Wesley Longman Publishing Co. Inc., Boston (1989)MATHGoogle Scholar
  9. 9.
    Hierons, R., Harman, M., Danicic, S.: Using program slicing to assist in the detection of equivalent mutants. Softw. Test. Verif. Reliab. 9(4), 233–262 (1999). http://dx.doi.org/10.1002/(SICI)1099-1689(199912)9:4<233::AID-STVR191>3.0.CO;2-3
  10. 10.
    Jia, Y., Harman, M.: Constructing subtle faults using higher order mutation testing. In: Proceedings of the Eighth IEEE International Working Conference on Source Code Analysis and Manipulation, 2008, pp. 249–258, September 2008. http://dx.doi.org/10.1109/SCAM.2008.36
  11. 11.
    Offutt, A.J., Pan, J.: Detecting equivalent mutants and the feasible path problem. In: Proceedings of the Eleventh Annual Conference on Computer Assurance, Systems Integrity. Software Safety. Process Security (COMPASS 1996), pp. 224–236, June 1996. http://dx.doi.org/10.1109/CMPASS.1996.507890
  12. 12.
    de Oliveira, A.A.L., Camilo-Junior, C.G., Vincenzi, A.M.R.: A coevolutionary algorithm to automatic test case selection and mutant in mutation testing. In: Proceedings of the IEEE Congress on Evolutionary Computation (CEC 2013), pp. 829–836, June 2013. http://dx.doi.org/10.1109/CEC.2013.6557654
  13. 13.
    Omar, E., Ghosh, S., Whitley, D.: HOMAJ: a tool for higher order mutation testing in AspectJ and Java. In: Proceedings of the IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops (ICSTW 2014), pp. 165–170, March 2014. http://dx.doi.org/10.1109/ICSTW.2014.19
  14. 14.
    Papadakis, M., Delamaro, M., Traon, Y.L.: Mitigating the effects of equivalent mutants with mutant classification strategies. Sci. Comput. Program. 95(Part 3), 298–319 (2014). http://dx.doi.org/10.1016/j.scico.2014.05.012, special Section: ACM SAC-SVT 2013 + Bytecode 2013CrossRefGoogle Scholar
  15. 15.
    Papadakis, M., Jia, Y., Harman, M., Le Traon, Y.: Trivial compiler equivalence: a large scale empirical study of a simple, fast and effective equivalent mutant detection technique. In: Proceedings of the 37th International Conference on Software Engineering - Volume 1 (ICSE 2015), pp. 936–946. IEEE Press, Piscataway (2015). http://dx.doi.org/10.1109/ICSE.2015.103
  16. 16.
    Pargas, R.P., Harrold, M.J., Peck, R.R.: Test-data generation using genetic algorithms. Softw. Test. Verif. Reliab. 9(4), 263–282 (1999). http://dx.doi.org/10.1002/(SICI)1099-1689(199912)9:4<263::AIDSTVR190>3.0.CO;2-Y
  17. 17.
    Schuler, D., Zeller, A.: Covering and uncovering equivalent mutants. Softw. Test. Verif. Reliab. 23(5), 353–374 (2013). http://dx.doi.org/10.1002/stvr.1473 CrossRefGoogle Scholar
  18. 18.
    Schwarz, B., Schuler, D., Zeller, A.: Breeding high-impact mutations. In: Proceedings of the 4th IEEE International Conference on Software Testing, Verification, and Validation Workshops (ICSTW 2011), pp. 382–387 (2011). http://dx.doi.org/10.1109/ICSTW.2011.56
  19. 19.
    Usaola, M., Mateo, P.: Mutation testing cost reduction techniques: a survey. IEEE Softw. 27(3), 80–86 (2010). http://dx.doi.org/10.1109/MS.2010.79 CrossRefGoogle Scholar
  20. 20.
    Woodward, M.R.: Mutation testing - its origin and evolution. Inf. Softw. Technol. 35(3), 163–169 (1993). http://dx.doi.org/10.1016/0950-5849(93)90053-6 CrossRefGoogle Scholar
  21. 21.
    Xanthakis, S., Ellis, C., Skourlas, C., Le Gall, A., Katsikas, S., Karapoulios, K.: Application of genetic algorithms to software testing. In: Proceedings of the 5th International Conference on Software Engineering and Applications, pp. 625–636 (1992)Google Scholar
  22. 22.
    Zhang, L., Gligoric, M., Marinov, D., Khurshid, S.: Operator-based and random mutant selection: better together. In: Proceedings of the IEEE/ACM 28th International Conference on Automated Software Engineering (ASE 2013), pp. 92–102, November 2013. http://dx.doi.org/10.1109/ASE.2013.6693070
  23. 23.
    Zhang, L., Hou, S.S., Hu, J.J., Xie, T., Mei, H.: Is operator-based mutant selection superior to random mutant selection? In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1 (ICSE 2010), pp. 435–444, ACM, New York (2010). http://dx.doi.org/10.1145/1806799.1806863

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Pedro Delgado-Pérez
    • 1
  • Inmaculada Medina-Bulo
    • 1
  • Mercedes G. Merayo
    • 2
  1. 1.Departamento de Ingeniería Informática, Escuela Superior de IngenieríaUniversidad de CádizCádizSpain
  2. 2.Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de MadridMadridSpain

Personalised recommendations