Experience Report: Detecting Poor-Responsive UI in Android Applications

Good user interface (UI) design is key to successful mobile apps. UI latency, which can be considered as the time between the commencement of a UI operation and its intended UI update, is a critical consideration for app developers. Current literature still lacks a comprehensive study on how much UI latency a user can tolerate or how to identify UI design defects that cause intolerably long UI latency. As a result, bad UI apps are still common in app markets, leading to extensive user complaints. This paper examines user expectations of UI latency, anddevelops a tool to pinpoint intolerable UI latency in Android apps. To this end, we design an app to conduct a user survey of app UI latency. Through the survey, we find the tendency between user patience and UI latency. Therefore a timely screen update (e.g., loading animations) is critical to heavy-weighted UI operations (i.e. those that incur a long execution time before the final UI update is available). We then design a tool that, by monitoring the UI inputs and updates, can detect apps that do not follow this criterion. The survey and the tool are open-source released on-line. We also apply the tool to many real-world apps. The results demonstrate the effectiveness of the tool in combating app UI design defects.

[1]  Daniel D. Suthers,et al.  Beyond threaded discussion: Representational guidance in asynchronous collaborative learning environments , 2008, Comput. Educ..

[2]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[3]  Peter A. Dinda,et al.  Panappticon: Event-based tracing to measure mobile application and platform performance , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[4]  Christopher Krügel,et al.  CLAPP: characterizing loops in Android applications , 2015, ESEC/SIGSOFT FSE.

[5]  Shiwangi Singh,et al.  Automated Testing of Mobile Applications using Scripting Technique: A Study on Appium , 2014 .

[6]  Daniel J. Wigdor,et al.  Ripples: utilizing per-contact visualizations to improve user interaction with touch displays , 2009, UIST '09.

[7]  Yung Yi,et al.  Practicalizing Delay-Tolerant Mobile Apps with Cedos , 2015, MobiSys.

[8]  Yu Lin,et al.  Retrofitting concurrency for Android applications through refactoring , 2014, FSE 2014.

[9]  Kent L. Norman,et al.  Development of an instrument measuring user satisfaction of the human-computer interface , 1988, CHI '88.

[10]  Ivan Poupyrev,et al.  Tactile interfaces for small touch screens , 2003, UIST '03.

[11]  Guoliang Xing,et al.  Reducing Smartphone Application Delay through Read/Write Isolation , 2015, MobiSys.

[12]  Alec Wolman,et al.  Outatime: Using Speculation to Enable Low-Latency Continuous Interaction for Mobile Cloud Gaming , 2015, MobiSys.

[13]  Kent L. Norman,et al.  Questionnaire Administration Via the WWW: A Validation & Reliability Study for a User Satisfaction Questionnaire , 1997, WebNet.

[14]  Shing-Chi Cheung,et al.  RECONTEST: Effective Regression Testing of Concurrent Programs , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[15]  Daniel J. Wigdor,et al.  How fast is fast enough?: a study of the effects of latency in direct-touch pointing tasks , 2013, CHI.

[16]  Abhijeet Banerjee Static analysis driven performance and energy testing , 2014, FSE 2014.

[17]  Sam Malek,et al.  SIG-Droid: Automated system input generation for Android applications , 2015, 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE).

[18]  Suman Nath,et al.  Automatic and scalable fault detection for mobile applications , 2014, MobiSys.

[19]  Jieming Zhu,et al.  PAID: Prioritizing app issues for developers by tracking user reviews over versions , 2015, 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE).

[20]  Brendan Murphy,et al.  The Art of Testing Less without Sacrificing Quality , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[21]  Scott A. Mahlke,et al.  Accelerating Mobile Applications through Flip-Flop Replication , 2015, MobiSys.

[22]  Mayur Naik,et al.  Dynodroid: an input generation system for Android apps , 2013, ESEC/FSE 2013.

[23]  Sam Malek,et al.  EvoDroid: segmented evolutionary testing of Android apps , 2014, SIGSOFT FSE.

[24]  Yepang Liu,et al.  Characterizing and detecting performance bugs for smartphone applications , 2014, ICSE.

[25]  Atanas Rountev,et al.  Systematic testing for resource leaks in Android applications , 2013, 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE).

[26]  Srini Ramaswamy,et al.  Verifying Response Times in Networked Automation Systems Using Jitter Bounds , 2014, 2014 IEEE International Symposium on Software Reliability Engineering Workshops.

[27]  Atif M. Memon,et al.  Pushing the limits on automation in GUI regression testing , 2015, 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE).

[28]  Jeff A. Johnson,et al.  Improving user-interface responsiveness despite performance limitations , 1990, Digest of Papers Compcon Spring '90. Thirty-Fifth IEEE Computer Society International Conference on Intellectual Leverage.

[29]  Daniel J. Wigdor,et al.  How Much Faster is Fast Enough?: User Perception of Latency & Latency Improvements in Direct and Indirect Touch , 2015, CHI.

[30]  Yu Lin,et al.  Study and Refactoring of Android Asynchronous Programming , 2015 .

[31]  Katinka Wolter,et al.  Model-based performance analysis of local re-execution scheme in offloading system , 2013, 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[32]  Jeffrey Johnson,et al.  Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Rules , 2010 .

[33]  Shumin Zhai,et al.  The performance of touch screen soft buttons , 2009, CHI.

[34]  Shobha Venkataraman,et al.  Why is my smartphone slow? On the fly diagnosis of underperformance on the mobile Internet , 2013, 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[35]  Yu Lin,et al.  Study and Refactoring of Android Asynchronous Programming (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[36]  Ana C. R. Paiva,et al.  A pattern-based approach for GUI modeling and testing , 2013, 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE).

[37]  Virpi Roto,et al.  Interaction in 4-second bursts: the fragmented nature of attentional resources in mobile HCI , 2005, CHI.

[38]  Katinka Wolter,et al.  Analysis of local re-execution in mobile offloading system , 2013, 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE).

[39]  Virpi Roto,et al.  Need for non-visual feedback with long response times in mobile HCI , 2005, WWW '05.

[40]  Iulian Neamtiu,et al.  Targeted and depth-first exploration for systematic testing of android apps , 2013, OOPSLA.

[41]  Qun Li,et al.  MobiPlay: A Remote Execution Based Record-and-Replay Tool for Mobile Applications , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[42]  Glen J. Anderson,et al.  User Perception of Touch Screen Latency , 2011, HCI.

[43]  Mukul R. Prasad,et al.  Automated testing with targeted event sequence generation , 2013, ISSTA.

[44]  Todd D. Millstein,et al.  RERAN: Timing- and touch-sensitive record and replay for Android , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[45]  C. James Goodwin,et al.  Research in Psychology Methods and Design , 2017 .

[46]  Ratul Mahajan,et al.  Timecard: controlling user-perceived delays in server-based mobile applications , 2013, SOSP.

[47]  George C. Necula,et al.  Guided GUI testing of android apps with minimal restart and approximate learning , 2013, OOPSLA.

[48]  Abhik Roychoudhury,et al.  Static Analysis Driven Cache Performance Testing , 2013, 2013 IEEE 34th Real-Time Systems Symposium.

[49]  Ali Mesbah,et al.  Detecting inconsistencies in multi-platform mobile apps , 2015, 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE).

[50]  Ratul Mahajan,et al.  AppInsight: Mobile App Performance Monitoring in the Wild , 2022 .

[51]  John A. Hoxmeier,et al.  System Response Time and User Satisfaction: An Experimental Study of Browser-based Applications , 2000 .

[52]  Steinar Kristoffersen,et al.  “Making place” to make IT work: empirical explorations of HCI for mobile CSCW , 1999, GROUP.

[53]  Yuan-Cheng Lai,et al.  On the Accuracy, Efficiency, and Reusability of Automated Test Oracles for Android Devices , 2014, IEEE Transactions on Software Engineering.

[54]  Daniel J. Wigdor,et al.  Designing for low-latency direct-touch input , 2012, UIST.

[55]  Zhuoqing Morley Mao,et al.  QoE Doctor: Diagnosing Mobile App QoE with Automated UI Control and Cross-layer Analysis , 2014, Internet Measurement Conference.