2013 IEEE Sixth International Conference on Software Testing, Verification and Validation 2013
DOI: 10.1109/icst.2013.23
|View full text |Cite
|
Sign up to set email alerts
|

Efficient JavaScript Mutation Testing

Abstract: Mutation testing is an effective test adequacy assessment technique. However, it suffers from two main issues. First, there is a high computational cost in executing the test suite against a potentially large pool of generated mutants. Second, there is much effort involved in filtering out equivalent mutants, which are syntactically different but semantically identical to the original program. Prior work has mainly focused on detecting equivalent mutants after the mutation generation phase, which is computatio… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
43
0

Year Published

2014
2014
2022
2022

Publication Types

Select...
4
3
2

Relationship

6
3

Authors

Journals

citations
Cited by 61 publications
(43 citation statements)
references
References 27 publications
(43 reference statements)
0
43
0
Order By: Relevance
“…Equivalent mutants have no observable effect on the application's behavior and, as a result, cannot be killed by test cases. Mirshokraie et al [54] proposed the first mutation testing technique for JavaScript programs. Their technique and tool, called Mutandis, guides the mutation generation process toward effective mutations that (1) affect error-prone sections of the program and (2) impact the program's behavior and as such are potentially nonequivalent.…”
Section: Fault-finding Capabilitymentioning
confidence: 99%
“…Equivalent mutants have no observable effect on the application's behavior and, as a result, cannot be killed by test cases. Mirshokraie et al [54] proposed the first mutation testing technique for JavaScript programs. Their technique and tool, called Mutandis, guides the mutation generation process toward effective mutations that (1) affect error-prone sections of the program and (2) impact the program's behavior and as such are potentially nonequivalent.…”
Section: Fault-finding Capabilitymentioning
confidence: 99%
“…• A new metric, called F unctionRank, for ranking functions in terms of their relative importance based on the application's dynamic behaviour; • A method combining dynamic and static analysis to mutate branches that are within highly ranked functions and exhibit high structural complexity; • A process that favours behaviour-affecting variables for mutation, to reduce the likelihood of equivalent mutants; • A set of JavaScript-specific mutation operators, based on common mistakes made by programmers; We have implemented our JavaScript mutation testing approach in a tool called Mutandis [11]. To infer JavaScript dynamic invariants, we use our recently developed tool, JSart [10].…”
Section: Contributions and Evaluationmentioning
confidence: 99%
“…To address the second research question (RQ2), we proposed [11] a technique that leverages static and dynamic program analysis to guide the mutation generation process towards parts of the code that are error-prone or likely to influence the programs output. We also proposed a set of JavaScript specific mutation operators, capturing common JavaScript programmer mistakes.…”
Section: Test Adequacy Assessmentmentioning
confidence: 99%
“…The test suites are evaluated based on the number of detected mutants by test assertions. We apply the DOM, jQuery, and XHR mutation operators at the JavaScript code level as described in [21], which are based on a study of common mistakes made by web developers. Examples include changing the ID/tag name used in getElementById and getElementByTagName methods, changing the attribute name/value in setAttribute, getAttribute and removeAttribute methods, removing the $ sign that returns a jQuery object, changing the name of the property/class/element in the addClass, removeClass, removeAttr, remove, attr, and css methods in jQuery, swapping innerHTML and innerText properties, and modifying the XHR type (Get/Post).…”
Section: Dependent Variablesmentioning
confidence: 99%