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.
Similar content being viewed by others
Notes
http://clang.llvm.org
http://llvm.org/releases/3.2/docs/TestingGuide.html
https://github.com/leethomason/tinyxml2 (Last access: 03/2014)
http://xmlrpcpp.sourceforge.net/ (Last access: 03/2014)
References
Bartolini C, Bertolino A, Marchetti E, Polini A (2009) WS-TAXI: a WSDL-based testing tool for web services. In: ICST, pp 326–335
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
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
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
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
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
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
Horstmann C, Budd T (2009) Big C ++, 2nd edn. Wiley
Jia Y, Harman M (2011) An analysis and survey of the development of mutation testing. Software engineering. IEEE Trans 37(5):649–678
Kim S, Clark J, McDermid J (2000) Class mutation: mutation testing for object-oriented programs. In: Proc. Net. ObjectDays, pp 9–12
Ma YS, Kwon YR, Kim SW (2009) Statistical investigation on class mutation operators. ETRI J 31(2):140–150
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
Offutt AJ, Untch RH (2001) Mutation testing for the new century. chap. Mutation 2000: uniting the orthogonal. Kluwer Academic Publishers, Norwell, pp 34–44
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
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
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
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12243-014-0445-4