Enabling mutation testing for Android apps
Abstract
Mutation testing has been widely used to assess the fault-detection effectiveness of a test suite, as well as to guide test case generation or prioritization. Empirical studies have shown that, while mutants are generally representative of real faults, an effective application of mutation testing requires “traditional” operators designed for programming languages to be augmented with operators specific to an application domain and/or technology. This paper proposes MDroid+, a framework for effective mutation testing of Android apps. First, we systematically devise a taxonomy of 262 types of Android faults grouped in 14 categories by manually analyzing 2,023 so ware artifacts from different sources (e.g., bug reports, commits). Then, we identified a set of 38 mutation operators, and implemented an infrastructure to automatically seed mutations in Android apps with 35 of the identified operators. The taxonomy and the proposed operators have been evaluated in terms of stillborn/trivial mutants generated as compared to well know mutation tools, and their capacity to represent real faults in Android apps
BibTeX
@inproceedings{Vasquez-al:FSE17,
author = {Mario Linares V{\'{a}}squez and
Gabriele Bavota and
Michele Tufano and
Kevin Moran and
Massimiliano Di Penta and
Christopher Vendome and
Carlos Bernal{-}C{\'{a}}rdenas and
Denys Poshyvanyk},
title = {Enabling mutation testing for Android apps},
booktitle = {{ESEC/SIGSOFT} {FSE}},
pages = {233--244},
publisher = {{ACM}},
year = {2017},
}