Skip to main content
Log in

Class mutation operators for C++ object-oriented systems

  • Published:
annals of telecommunications - annales des télécommunications Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Notes

  1. http://clang.llvm.org

  2. http://llvm.org/releases/3.2/docs/TestingGuide.html

  3. https://github.com/leethomason/tinyxml2 (Last access: 03/2014)

  4. http://xmlrpcpp.sourceforge.net/ (Last access: 03/2014)

References

  1. Bartolini C, Bertolino A, Marchetti E, Polini A (2009) WS-TAXI: a WSDL-based testing tool for web services. In: ICST, pp 326–335

  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–313

  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–270

  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–420

    Google Scholar 

  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-6002

  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–106

    Google Scholar 

  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–1123

  8. Horstmann C, Budd T (2009) Big C ++, 2nd edn. Wiley

  9. Jia Y, Harman M (2011) An analysis and survey of the development of mutation testing. Software engineering. IEEE Trans 37(5):649–678

    Google Scholar 

  10. Kim S, Clark J, McDermid J (2000) Class mutation: mutation testing for object-oriented programs. In: Proc. Net. ObjectDays, pp 9–12

  11. Ma YS, Kwon YR, Kim SW (2009) Statistical investigation on class mutation operators. ETRI J 31(2):140–150

    Article  Google Scholar 

  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–363

    Google Scholar 

  13. Offutt AJ, Untch RH (2001) Mutation testing for the new century. chap. Mutation 2000: uniting the orthogonal. Kluwer Academic Publishers, Norwell, pp 34–44

    Google Scholar 

  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–84

    Chapter  Google Scholar 

  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–178

  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–1136

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pedro Delgado-Pérez.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Delgado-Pérez, P., Medina-Bulo, I., Domínguez-Jiménez, J.J. et al. Class mutation operators for C++ object-oriented systems. Ann. Telecommun. 70, 137–148 (2015). https://doi.org/10.1007/s12243-014-0445-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12243-014-0445-4

Keywords

Navigation