Efficient JavaScript Mutation Testing
Shabnam Mirshokraie,Ali Mesbah,Karthik Pattabiraman +2 more
- 18 Mar 2013
- pp 74-83
86
TL;DR: This paper proposes a technique that leverages static and dynamic program analysis to guide the mutation generation process a-priori towards parts of the code that are error-prone or likely to influence the program's output.
read more
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 computationally expensive and has limited efficiency. In this paper, we propose a technique that leverages static and dynamic program analysis to guide the mutation generation process a-priori towards parts of the code that are error-prone or likely to influence the program's output. Further, we focus on the JavaScript language, and propose a set of mutation operators that are specific to web applications. We implement our approach in a tool called MUTANDIS. We empirically evaluate MUTANDIS on a number of web applications to assess the efficacy of the approach.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
A Regression Test Case Prioritization Framework for Software Sustainability
Bakr Ba-Quttayyan,Haslina Mohd,Yuhanis Yusof +2 more
TL;DR: A novel regression test case prioritization framework that incorporates five factors to prioritize test cases based on fault detection and severity, test case dependency, clustered test cases, and test input. The framework was verified by experts and shown to be effective in identifying and prioritizing essential test cases.
A Study of Causes and Consequences of Client-Side JavaScript Bugs
TL;DR: The results indicate that JavaScript programmers and testers need tools that can help them reason about the Document Object Model, and developers can use the error patterns found to design more powerful static analysis tools for JavaScript.
Designing Mutation Operators for Android Device Components: A View Through Bluetooth and Location API’s
Pedro Henrique Kuroishi,Ana C. R. Paiva,José Carlos Maldonado,Auri Marcelo Rizzo Vincenzi,Pedro Henrique Kuroishi,Ana C. R. Paiva,José Carlos Maldonado,Auri Marcelo Rizzo Vincenzi +7 more
- 22 Sep 2025
Abstract: Context: Mutation operators play a crucial role during the mutation testing process due to their capability to model common faults to be injected into an application under test. In the context of the Android OS, the academic literature shows that different studies propose mutation operators, especially focusing on the GUI and configuration. On the other hand, few devise mutation operators for specific Android device resource components such as connectivity, location, and sensors. Objective: Therefore, this paper aims to investigate the design and proposition of mutation operators for Bluetooth, Location, and the third-party library AltBeacon. The rationale is that this paper is carried out in an academia-industry partnership, in which the company develops applications that rely on these Android components. Method: The design process used a systematic approach named HAZOP to minimize any possible bias. Results: This systematic process helped in deriving a set of 16 mutation operators. Next, the paper provides an empirical cost evaluation that assesses the number of generated mutants for two applications and the number of generated mutants per operator, showing the feasibility of the mutation operators and their capabilities in modeling real faults. Conclusion: Finally, the paper discusses the future perspectives of extending the operators to other device resource components such as Wi-Fi, NFC, and sensors, as well as automation perspectives by envisioning the implementation and validation of the mutation operators.
Validating ajax applications using a delay-based mutation technique
Yuta Maezawa,Kazuki Nishiura,Hironori Washizaki,Shinichi Honiden +3 more
- 15 Sep 2014
TL;DR: JSPreventer provides executable evidences of the not-easily-executable faults for developers, if it reveals actual errors by testing the mutated applications, and can help developers validate reliable real-world Ajax applications.
Improving test adequacy assessment by novel JavaScript mutation operators
Muneeb Muzamal,Aamer Nadeem +1 more
- 01 Jan 2019
TL;DR: A set of new Java Script mutation operators are proposed to address features like variable scope, variable type etc., that are not covered by existing operators, and implemented in a tool called Mutant Tracer.
References
The anatomy of a large-scale hypertextual Web search engine
Sergey Brin,Lawrence Page +1 more
- 01 Apr 1998
TL;DR: This paper provides an in-depth description of Google, a prototype of a large-scale search engine which makes heavy use of the structure present in hypertext and looks at the problem of how to effectively deal with uncontrolled hypertext collections where anyone can publish anything they want.
•Journal Article
The Anatomy of a Large-Scale Hypertextual Web Search Engine.
Sergey Brin,Lawrence Page +1 more
TL;DR: Google as discussed by the authors is a prototype of a large-scale search engine which makes heavy use of the structure present in hypertext and is designed to crawl and index the Web efficiently and produce much more satisfying search results than existing systems.
13.3K
A Complexity Measure
TL;DR: Several properties of the graph-theoretic complexity are proved which show, for example, that complexity is independent of physical size and complexity depends only on the decision structure of a program.
6K
•Book
A complexity measure
Thomas J. McCabe
- 04 Oct 1993
TL;DR: In this paper, a graph-theoretic complexity measure for managing and controlling program complexity is presented. But the complexity is independent of physical size, and complexity depends only on the decision structure of a program.
5.1K
A validation of object-oriented design metrics as quality indicators
TL;DR: Several of Chidamber and Kemerer's OO metrics appear to be useful to predict class fault-proneness during the early phases of the life-cycle and are better predictors than "traditional" code metrics, which can only be collected at a later phase of the software development processes.