ABSTRACT
There are a lot of applications that run on modern mobile operating systems. Inevitably, some of these applications fail in the hands of users. Diagnosing a failure to identify the culprit, or merely reproducing that failure in the lab is difficult. To get insight into this problem, we interviewed developers of five mobile applications and analyzed hundreds of trouble tickets. We find that support for diagnosing unexpected application behavior is lacking across major mobile platforms. Even when developers implement heavy-weight logging during controlled trials, they do not discover many dependencies that are then stressed in the wild. They are also not well-equipped to understand how to monitor the large number of dependencies without impacting the phone's limited resources such as CPU and battery. Based on these findings, we argue for three fundamental changes to failure reporting on mobile phones. The first is spatial spreading, which exploits the large number of phones in the field by spreading the monitoring work across them. The second is statistical inference, which builds a conditional distribution model between application behavior and its dependencies in the presence of partial information. The third is adaptive sampling, which dynamically varies what each phone monitors, to adapt to both the varying population of phones and what is being learned about each failure. We propose a system called MobiBug that combines these three techniques to simplify the task of diagnosing mobile applications.
- Android Developers Blog: Android Application Error Reports. http://android-developers.blogspot.com/2010/05/google-feedback-for-android.html.Google Scholar
- Application Crash Report for Android. http://code.google.com/p/acra/.Google Scholar
- Remotely log unhandled exceptions in your Android Applications. http://code.google.com/p/android-remote-stacktrace/.Google Scholar
- Windows Phone Developer Portal. http://developer.windowsphone.com.Google Scholar
- M. K. Aguilera, J. C. Mogul, J. L. Wiener, P. Reynolds, and A. Muthitacharoen. Performance debugging for distributed systems of black boxes. In ACM SOSP, 2003. Google ScholarDigital Library
- D. Andrzejewski, A. Mulhern, B. Liblit, and X. Zhu. Statistical debugging using latent topic models. In ECML, 2007. Google ScholarDigital Library
- P. Arumuga Nainar and B. Liblit. Adaptive bug isolation. In ICSE, 2010. Google ScholarDigital Library
- P. Barham, A. Donnelly, R. Isaacs, and R. Mortier. Using Magpie for request extraction and workload modelling. In OSDI, 2004. Google ScholarDigital Library
- M. Y. Chen, A. Accardi, E. Kiciman, J. Lloyd, D. Patterson, A. Fox, and E. Brewer. Path-based failure and evolution management. In NSDI, 2004. Google ScholarDigital Library
- M. Y. Chen, E. Kiciman, E. Fratkin, A. Fox, and E. Brewer. Pinpoint: Problem determination in large, dynamic internet services. In DSN, 2002. Google ScholarDigital Library
- T. Chilimbi, B. Liblit, K. Mehra, A. Nori, and K. Vaswani. Holmes: Effective statistical debugging via efficient path profiling. In ICSE, 2009. Google ScholarDigital Library
- I. Cohen, M. Goldszmidt, T. Kelly, J. Symons, and J. S. Chase. Correlating instrumentation data to system states: A building block for automated diagnosis and control. In OSDI, 2004. Google ScholarDigital Library
- M. Khan, H. K. Le, H. Ahmadi, T. Abdelzaher, and J. Han. DustMiner: Troubleshooting Interactive Complexity Bugs in Sensor Networks. In Sensys, 2008. Google ScholarDigital Library
- E. Kiciman and H. J. Wang. Live monitoring: Using adaptive instrumentation and analysis to debug and maintain web applications. In HotOS XI, 2007. Google ScholarDigital Library
- B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In PLDI, 2003. Google ScholarDigital Library
- B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable statistical bug isolation. In PLDI, 2005. Google ScholarDigital Library
- B. P. Miller, M. D. Callaghan, J. M. Cargille, J. K. Hollingsworth, R. B. Irvin, K. L. Karavanic, K. Kunchithapadam, and T. Newhall. The paradyn parallel performance measurement tools. IEEE COMPUTER, 1995. Google ScholarDigital Library
- K. Murphy. An introduction to graphical models. 2001.Google Scholar
- R. R. Sambasivan, A. X. Zheng, E. Thereska, and G. R. Ganger. Categorizing and differencing system behaviours. In HotAC II, 2007.Google Scholar
- C. Yuan, N. Lao, J.-R. Wen, J. Li, Z. Zhang, Y.-M. Wang, and W.-Y. Ma. Automated known problem diagnosis with event traces. In EuroSys, 2006. Google ScholarDigital Library
Index Terms
- Diagnosing mobile applications in the wild
Recommendations
Evaluating Mobile Applications: A Spreadsheet Case Study
The power of mobile devices has increased dramatically in the last few years. These devices are becoming more sophisticated and allow users to accomplish a wide variety of tasks while on the move. The ease with which mobile apps can be created and ...
User Perceptions of the Security of Mobile Applications
With the exponential increase in the use of mobile devices across the globe, there is a concomitant need to understand how mobile users perceive the security of mobile application, and the potential risks involved in accessing and downloading them. ...
Capturing mobile experience in the wild: a tale of two apps
CoNEXT '13: Proceedings of the ninth ACM conference on Emerging networking experiments and technologiesWe present a long term and large scale study of the experience of mobile users through two popular but contrasting applications in the wild. To conduct this study, we implemented a measurement framework and library, called Insight, which has been ...
Comments