2017
DOI: 10.1016/j.infsof.2016.07.002
|View full text |Cite|
|
Sign up to set email alerts
|

Assessment of class mutation operators for C++ with the MuCPP mutation system

Abstract: Context: Mutation testing has been mainly analyzed regarding traditional mutation operators involving structured programming constructs common in mainstream languages, but mutations at the class level have not been assessed to the same extent. This fact is noteworthy in the case of C++, despite being one of the most relevant languages including object-oriented features. Objective: This paper provides a complete evaluation of class operators for the C++ programming language. MuCPP, a new system devoted to the a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
22
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
6
1

Relationship

2
5

Authors

Journals

citations
Cited by 40 publications
(22 citation statements)
references
References 43 publications
0
22
0
Order By: Relevance
“…Delgado-Pérez [7,82] conducted an evaluation of class-level mutant operators for C++. Based on the results, they propose a C++ mutation tool, MuCPP, which generates mutants by traversing the abstract syntax tree of each translation unit with the Clang API.…”
Section: Mutant Operatorsmentioning
confidence: 99%
See 1 more Smart Citation
“…Delgado-Pérez [7,82] conducted an evaluation of class-level mutant operators for C++. Based on the results, they propose a C++ mutation tool, MuCPP, which generates mutants by traversing the abstract syntax tree of each translation unit with the Clang API.…”
Section: Mutant Operatorsmentioning
confidence: 99%
“…Its primary application level is unit testing but several advances have been made in order to support other levels, i.e., specification [2], design [3], integration [4] and system levels [5]. The method has been applied on the most popular programming languages such as C [6], C++ [7], C# [8], Java [9], JavaScript [10], Ruby [11] including specification [2] and modelling languages [12]. It has also been adapted for the most popular programming paradigms such as Object-Oriented [13], Functional [14], aspect-oriented and declarative-oriented [15,16] programming.…”
Section: Introductionmentioning
confidence: 99%
“…Each block includes those operators addressing similar syntactic elements [4,6]. These mutation operators have been implemented in the mutation system MuCPP [25]. We should note that MuCPP has been optimised towards increasing the percentage of valid mutants (complying with the grammar rules of the language) over the total number of mutants.…”
Section: Mutation Operators For C++ Object-oriented Programsmentioning
confidence: 99%
“…In previous work using class operators for C++ [6], the mutation score was calculated around 2 case studies and the test suites distributed with them, showing which operators spawned more mutants that remained undetected. Several improvement rules for these operators where proposed later, analysing their impact in the resources required to generate and execute the mutants for 5 applications [25].…”
Section: Object Orientationmentioning
confidence: 99%
“…The set of class operators for C++ encompassed both adapted operators for Java (Ma et al, 2002)/C# (Derezińska, 2006) and tailored operators to C++ features. A revised list of these operators has been implemented in the mutation tool called MuCPP 2 , where they underwent a thorough study to increase the ratio of useful mutants generated (Delgado-Pérez et al, 2017a). This set of C++ class operators, which was previously assessed following a selective mutation approach (Delgado-Pérez et al, 2017b), will be analysed in the conducted experiments in the next section.…”
Section: Class Mutation Operators For C++mentioning
confidence: 99%