Abstract:It is well known that the fragmentation of Android ecosystem has caused severe compatibility issues. Therefore, for Android apps, cross-platform testing (the apps must be tested on a multitude of devices and operating system versions) is particularly important to assure their quality. Although lots of cross-platform testing techniques have been proposed, there are still some limitations: 1) It is time-consuming and error-prone to encode platform-agnostic tests manually; 2) Test scripts generated by existing record/replay techniques are brittle and will crash when replayed on different platforms; 3) Developers, and even test vendors have not equipped with some special Android devices; 4) Due to the lack of specific domain knowledge, the existing test methods cannot generate effective user inputs, resulting in low testing coverage. As a result, apps that have not been fully tested, will lead to many compatibility issues after releasing. To address these limitations, this study proposes AppCheck, a crowdsourced testing service for Android apps. To generate tests that will explore different behavior of the app automatically, AppCheck crowdsources event trace collection over the Internet, and various touch events will be captured when real users interact with the app. The collected event traces are then transformed into device-independent test scripts, and directly replayed on the devices of real users. During the replay, various data (e.g., screenshots and layout information) will be extracted to identify compatibility issues. The empirical evaluation shows that the proposed AppCheck is effective and improves limitations of the state-of-the-art.