Enabling mutation testing for Android apps

  • Mario Linares-Vásquez ,
  • Gabriele Bavota ,
  • Michele Tufano ,
  • Kevin Moran ,
  • Massimiliano Di Penta ,
  • Christopher Vendome ,
  • Carlos Bernal-Cárdenas ,
  • Denys Poshyvanyk

2017 Foundations of Software Engineering |

Published by ACM

Publication | Publication | Publication | Publication | Publication | Publication

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