Reference

2017
ChimpCheck: Property-Based Randomized Test Generation for Interactive Apps
Edmund S.L. Lam, Peilun Zhang, and Bor-Yuh Evan Chang
ONWARD! 2017: ACM Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software

Abstract

We consider the problem of generating relevant execution traces to test rich interactive applications. Rich interactive applications, such as apps on mobile platforms, are complex stateful and often distributed systems where sufficiently exercising the app with user-interaction (UI) event sequences to expose defects is both hard and time-consuming. In particular, there is a fundamental tension between brute-force random UI exercising tools, which are fully-automated but offer low relevance, and UI test scripts, which are manual but offer high relevance. In this paper, we consider a middle way---enabling a seamless fusion of scripted and randomized UI testing. This fusion is prototyped in a testing tool called ChimpCheck for programming, generating, and executing property-based randomized test cases for Android apps. Our approach realizes this fusion by offering a high-level, embedded domain-specific language for defining custom generators of simulated user-interaction event sequences. What follows is a combinator library built on industrial strength frameworks for property-based testing (ScalaCheck) and Android testing (Android JUnit and Espresso) to implement property-based randomized testing for Android development. Driven by real, reported issues in open source Android apps, we show, through case studies, how ChimpCheck enables expressing effective testing patterns in a compact manner.

BibTeX

@string{ONWARD! = "ACM Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (ONWARD!)"}
@inproceedings{chimpcheck-onward17,
  author = {Edmund S.L. Lam and Peilun Zhang and Bor-Yuh Evan Chang},
  title = {ChimpCheck: Property-Based Randomized Test Generation for Interactive Apps},
  booktitle = ONWARD!,
  year = {2017},
  pages = {58-77},
  
}