SummaryThis paper investigates the failures exposed in mobile apps by the mobile-specific event of changing the screen orientation. We focus on GUI failures resulting in unexpected GUI states that should be avoided to improve the apps quality and to ensure better user experience. We propose a classification framework that distinguishes 3 main classes of GUI failures due to orientation changes and exploit it in 2 studies that investigate the impact of such failures in Android apps. The studies involved both open-source and apps from Google Play that were specifically tested exposing them to orientation change events. The results showed that more than 88% of these apps were affected by GUI failures, some classes of GUI failures were more common than others, and some GUI objects were more frequently involved. The app source code analysis allowed us to identify 6 classes of common faults causing specific GUI failures.
KEYWORDSAndroid bugs, Android testing, GUI failures, GUI testing, mobile testing, orientation change
INTRODUCTIONOver the last decade, the number of users of mobile technology and smartphones has increased considerably. The total number of smartphone users worldwide is forecast to surpass 2.5 billion in 2019 [1].This causes a constant demand for new software applications running on these devices (apps). As of the month of June 2016, both Android and iOS users had the opportunity to choose from among more than 2 million apps [2].Mobile technology has radically changed the lifestyle of billions of people around the world. We use mobile apps for several hours every day, entrust them our sensitive data, and perform a large variety of activities through them, including critical tasks.The demand for app quality has grown together with their spread. Apps users require them to be reliable, robust, efficient, secure, usable, etc.As a consequence, software developers should give proper consideration to the quality of their applications by adopting suitable quality assurance techniques, such as testing.In the last decade, the research community has devoted great interest to the mobile app testing field. Several testing approaches have been proposed to assess different quality aspects of mobile applications [3], such as functionality [4], performance [5], security [6,7], responsiveness [8], and energy consumption [9].Since mobile apps are event-driven systems, many proposed techniques solicit them by means of sequences of events [10]. However, because of the peculiarities of the mobile devices, these apps should be tested with appositely crafted approaches [11]. As an example, testing processes should devote particular attention to exercise the apps through mobile-specific events, such as sending an application to the background and resuming it, receiving a call, changing the state of the network connections, or changing the orientation of the device.Among these types of events, the orientation change deserves special attention. It is a peculiar event in mobile platforms that causes the switch of the running app b...