{'fraction_non_alphanumeric': 0.014634146341463415, 'fraction_numerical': 0.0, 'mean_word_length': 5.126865671641791, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
NFS: An Algorithm for Avoiding Restarts to Improve the Efficiency of Crawling Android Applications

Crawlers have been used in different aspects for testing Android apps automatically, such as crash testing and test inputs generation. However, the efficiency of crawlers can be a concern as it often takes hours or even days to fully explore a non-trivial app. This paper presents a crawling algorithm called NFS (Nearest unvisited event First Search) that can reduce the number of app restarts in order to improve crawling efficiency. Moreover, NFS can also achieve satisfactory code coverage and generate a GUI state graph for the app under exploration automatically. The experimental results show that in average NFS can be more efficient and can also obtain better code coverage than traditional crawling algorithms.