  Mobile apps are indispensable for people's daily life. Complementing with
automated GUI testing, manual testing is the last line of defence for app
quality. However, the repeated actions and easily missing of functionalities
make manual testing time-consuming and inefficient. Inspired by the game candy
crush with flashy candies as hint moves for players, we propose an approach
named NaviDroid for navigating testers via highlighted next operations for more
effective and efficient testing. Within NaviDroid, we construct an enriched
state transition graph with the triggering actions as the edges for two
involved states. Based on it, we utilize the dynamic programming algorithm to
plan the exploration path, and augment the GUI with visualized hints for
testers to quickly explore untested activities and avoid duplicate
explorations. The automated experiments demonstrate the high coverage and
efficient path planning of NaviDroid and a user study further confirms its
usefulness. The NaviDroid can help us develop more robust software that works
in more mission-critical settings, not only by performing more thorough testing
with the same effort that has been put in before, but also by integrating these
techniques into different parts of development pipeline.
