Class mutation operators for C++ object-oriented systems

  • Pedro Delgado-Pérez
  • Inmaculada Medina-Bulo
  • Juan José Domínguez-Jiménez
  • Antonio García-Domínguez
  • Francisco Palomo-Lozano
Article

Abstract

Mutation testing is a fault injection testing technique around which a great variety of studies and tools for different programming languages have been developed. Nevertheless, the mutation testing research with respect to C++ is pending. This paper proposes a set of class mutation operators related to this language and its particular object-oriented (OO) features. In addition, an implementation technique to apply mutation testing based on the traversal of the abstract syntax tree (AST) is presented. Finally, an experiment is conducted to study the operator behaviour with different C++ programs, suggesting their usefulness in the creation of complete test suites. The analysis includes a Web service (WS) library, one of the domains where this technique can prove useful, considering its challenging testing phase and that C++ is still a reference language for critical distributed systems WS.

Keywords

Mutation testing Mutation operators C++ Object-oriented programming Abstract syntax tree Web services 

References

  1. 1.
    Bartolini C, Bertolino A, Marchetti E, Polini A (2009) WS-TAXI: a WSDL-based testing tool for web services. In: ICST, pp 326–335Google Scholar
  2. 2.
    Bozkurt M, Harman M, Hassoun Y (2013) Testing and verification in service-oriented architecture: a survey. Software Testing, Verification and Reliability 23(4):261–313Google Scholar
  3. 3.
    Chevalley P (2001) Applying mutation analysis for object-oriented programs using a reflective approach. In: Software engineering conference, 2001. APSEC 2001. Eighth Asia-Pacific, pp 267–270Google Scholar
  4. 4.
    Derezińska A (2003) Object-oriented mutation to assess the quality of tests. In: Proceedings of the 29th Conference on EUROMICRO. IEEE Computer Society, Belek, Turkey, pp 417–420Google Scholar
  5. 5.
    Derezińska A (2006) Quality assessment of mutation operators dedicated for C# programs. In: Kellenberger P. (ed) Proceedings of VI international conference on quality software. IEEE Computer Society, Beijing, pp 227–234. ISSN 1550-6002Google Scholar
  6. 6.
    Domínguez-Jiménez J, Estero-Botaro A, García-Domínguez A, Medina-Bulo I (2009) GAmera: an automatic mutant generation system for WS-BPEL compositions. In: Eshuis R, Grefen P, Papadopoulos G A (eds) Proceedings of the 7th IEEE European conference on web services. IEEE Computer Society Press, Eindhoven, The Netherlands, pp 97–106Google Scholar
  7. 7.
    Domínguez-Jiménez J, Estero-Botaro A, García-Domínguez A, Medina-Bulo I (2011) Evolutionary mutation testing. Information and Software Technology 53(10):1108–1123Google Scholar
  8. 8.
    Horstmann C, Budd T (2009) Big C ++, 2nd edn. WileyGoogle Scholar
  9. 9.
    Jia Y, Harman M (2011) An analysis and survey of the development of mutation testing. Software engineering. IEEE Trans 37(5):649–678Google Scholar
  10. 10.
    Kim S, Clark J, McDermid J (2000) Class mutation: mutation testing for object-oriented programs. In: Proc. Net. ObjectDays, pp 9–12Google Scholar
  11. 11.
    Ma YS, Kwon YR, Kim SW (2009) Statistical investigation on class mutation operators. ETRI J 31(2):140–150CrossRefGoogle Scholar
  12. 12.
    Ma YS, Kwon YR, Offutt J (2002) Inter-class mutation operators for Java. In: Kawada S (ed) Proceedings of XIII international symposium on software reliability engineering. IEEE Computer Society, Annapolis (Maryland), pp 352–363Google Scholar
  13. 13.
    Offutt AJ, Untch RH (2001) Mutation testing for the new century. chap. Mutation 2000: uniting the orthogonal. Kluwer Academic Publishers, Norwell, pp 34–44Google Scholar
  14. 14.
    Offutt J, Ma YS, Kwon YR (2006) The class-level mutants of MuJava. In: Anderson K (ed) Proceedings of the 2006 international workshop on automation of software test. ACM, Shanghai, pp 78–84CrossRefGoogle Scholar
  15. 15.
    Qi Z, Liu L, Zhang F, Guan H, Wang H, Chen Y (2009) FLTL-MC: online high level program analysis for web services. In: SERVICES I, pp 171–178Google Scholar
  16. 16.
    Segura S, Hierons RM, Benavides D, Ruiz-Cort´es A (2011) Mutation testing on an object-oriented framework: an experience report. Information and Software Technology 53(10):1124–1136Google Scholar

Copyright information

© Institut Mines-Télécom and Springer-Verlag France 2014

Authors and Affiliations

  • Pedro Delgado-Pérez
    • 1
  • Inmaculada Medina-Bulo
    • 1
  • Juan José Domínguez-Jiménez
    • 1
  • Antonio García-Domínguez
    • 1
  • Francisco Palomo-Lozano
    • 1
  1. 1.Escuela Superior de IngeneríaUniversity of CádizCádizSpain

Personalised recommendations