Login | Register

An Exploratory Study on the Characteristics of Logging Practices in Mobile Apps: A Case Study on F-Droid

Title:

An Exploratory Study on the Characteristics of Logging Practices in Mobile Apps: A Case Study on F-Droid

Zeng, Yi (2019) An Exploratory Study on the Characteristics of Logging Practices in Mobile Apps: A Case Study on F-Droid. Masters thesis, Concordia University.

[thumbnail of Zeng_MASc_F2019.pdf]
Preview
Text (application/pdf)
Zeng_MASc_F2019.pdf - Accepted Version
Available under License Spectrum Terms of Access.
765kB

Abstract

Logging is a common practice in software engineering. Prior research has investigated the characteristics of logging practices in system software (e.g., web servers or databases) as well as desktop applications. However, despite the popularity of mobile apps, little is known about their logging practices. In this thesis, we sought to study logging practices in mobile apps. In particular, we conduct a case study on 1,444 open source Android apps in the F-Droid repository. Through a quantitative study, we find that although mobile app logging is less pervasive than server and desktop applications, logging is leveraged in almost all studied apps. However, we find that there exist considerable differences between the logging practices of mobile apps and the logging practices in server and desktop applications observed by prior studies. In order to further understand such differences, we conduct a firehouse email interview and a qualitative annotation on the rationale of using logs in mobile app development. By comparing the logging level of each logging statement with developers' rationale of using the logs, we find that all too often (35.4%), the chosen logging level and the rationale are inconsistent. Such inconsistency may prevent the useful runtime information to be recorded or may generate unnecessary logs that may cause performance overhead. Finally, to understand the magnitude of such performance overhead, we conduct a performance evaluation between generating all the logs and not generating any logs in eight mobile apps. In general, we observe a statistically significant performance overhead based on various performance metrics (response time, CPU and battery consumption). In addition, we find that if the performance overhead of logging is significantly observed in an app, disabling the unnecessary logs indeed provides a statistically significant performance improvement. Our results show the need for a systematic guidance and automated tool support to assist in mobile logging practices.

Divisions:Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering
Item Type:Thesis (Masters)
Authors:Zeng, Yi
Institution:Concordia University
Degree Name:M.A. Sc.
Program:Software Engineering
Date:August 2019
Thesis Supervisor(s):Shang, Weiyi
Keywords:Logging practices, Android, Performance
ID Code:985640
Deposited By: Yi Zeng
Deposited On:06 Feb 2020 02:41
Last Modified:06 Feb 2020 02:41
Related URLs:

References:

[1] B. Chen and Z. M. J. Jiang, “Characterizing logging practices in java-based open source software projects–a replication study in apache software foundation,” Empirical Software Engineering, vol. 22, no. 1, pp. 330–374, 2017.
[2] B. W. Kernighan and R. Pike, The Practice of Programming. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1999.
[3] D. Yuan, S. Park, and Y. Zhou, “Characterizing logging practices in open-source software,” in Proceedings of the 34th International Conference on Software Engineering. IEEE Press, 2012, pp. 102–112.
[4] W. Shang, M. Nagappan, and A. E. Hassan, “Studying the relationship between logging characteristics and the code quality of platform software,” Empirical Software Engineering, vol. 20, no. 1, pp. 1–27, Feb 2015. [Online]. Available: https://doi.org/10.1007/s10664-013-9274-8
[5] W. Xu, L. Huang, A. Fox, D. Patterson, and M. I. Jordan, “Detecting large-scale system problems by mining console logs,” in Proceedings of the ACM SIGOPS 22Nd Symposium on Operating Systems Principles, ser. SOSP ’09. New York, NY, USA: ACM, 2009, pp. 117–132. [Online]. Available: http://doi.acm.org/10.1145/1629575.1629587
[6] H. Malik, H. Hemmati, and A. E. Hassan, “Automatic detection of performance deviations in the load testing of large scale systems,” in Proceedings of the 2013 International Conference on Software Engineering, ser. ICSE ’13. Piscataway, NJ, USA: IEEE Press, 2013, pp. 1012–1021. [Online]. Available: http://dl.acm.org/citation.cf m?id=2486788.2486927
[7] J. Tan, X. Pan, S. Kavulya, R. Gandhi, and P. Narasimhan, “Salsa: Analyzing logs as state machines,” in Proceedings of the First USENIX Conference on Analysis of System Logs, ser. WASL’08. Berkeley, CA, USA: USENIX Association, 2008, pp. 6–6. [Online]. Available: http://dl.acm.org/citation.cfm?id=1855886.1855892
[8] D. Yuan, J. Zheng, S. Park, Y. Zhou, and S. Savage, “Improving software diagnosability via log enhancement,” ACM Transactions on Computer Systems (TOCS), vol. 30, no. 1, p. 4, 2012.
[9] J. Boulon, A. Konwinski, R. Qi, A. Rabkin, E. Yang, and M. Yang, “Chukwa, a large- scale monitoring system,” in Proceedings of CCA, vol. 8, 2008, pp. 1–5.
[10] Android, “Log,” Nov 2017. [Online]. Available: https://developer.android.com/referenc e/android/util/Log.html
[11] W. Shang, Z. M. Jiang, B. Adams, A. E. Hassan, M. W. Godfrey, M. Nasser, and P. Flora, “An exploratory study of the evolution of communicated information about the execution of large software systems,” Journal of Software: Evolution and Process, vol. 26, no. 1, pp. 3–26, 2014.
[12] ——, “An exploratory study of the evolution of communicated information about the execution of large software systems,” in 2011 18th Working Conference on Reverse Engineering, Oct 2011, pp. 335–344.
[13] S. Chowdhury, S. Di Nardo, A. Hindle, and Z. M. J. Jiang, “An exploratory study on assessing the energy impact of logging on android apps,” Empirical Software Engineering, pp. 1–35, 2017.
[14] F-Droid, “Free and open source android app repository,” Nov 2017. [Online]. Available:
https://f-droid.org/
[15] S. Weiyi, J. Z. Ming, A. Bram, H. A. E., G. M. W., N. Mohamed, and F. Parminder, “An exploratory study of the evolution of communicated information about the execution of large software systems,” Journal of Software: Evolution and Process, vol. 26, no. 1, pp. 3–26.
[16] M. D. Syer, Z. M. Jiang, M. Nagappan, A. E. Hassan, M. Nasser, and P. Flora, “Leveraging performance counters and execution logs to diagnose memory-related performance issues,” in 2013 IEEE International Conference on Software Maintenance, Sept 2013, pp. 110–119.
[17] S. Kabinna, C.-P. Bezemer, W. Shang, M. D. Syer, and A. E. Hassan, “Examining the stability of logging statements,” Empirical Software Engineering, vol. 23, no. 1, pp. 290–333, Feb 2018.
[18] S. Kabinna, W. Shang, C.-P. Bezemer, and A. E. Hassan, “Examining the stability of logging statements,” in 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1. IEEE, 2016, pp. 326–337.
[19] W. Shang, M. Nagappan, A. E. Hassan, and Z. M. Jiang, “Understanding log lines using development knowledge,” in 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 2014, pp. 21–30.
[20] H. Li, W. Shang, and A. E. Hassan, “Which log level should developers choose for a new logging statement?” Empirical Software Engineering, vol. 22, no. 4, pp. 1684–1716, 2017.
[21] M. Hassani, W. Shang, E. Shihab, and N. Tsantalis, “Studying and detecting log-related issues,” Empirical Software Engineering, pp. 1–33, 2018.
[22] D. Yuan, S. Park, P. Huang, Y. Liu, M. M.-J. Lee, X. Tang, Y. Zhou, and S. Savage, “Be conservative: Enhancing failure diagnosis with proactive logging.” in OSDI, vol. 12, 2012, pp. 293–306.
[23] Q. Fu, J. Zhu, W. Hu, J.-G. Lou, R. Ding, Q. Lin, D. Zhang, and T. Xie, “Where do developers log? an empirical study on logging practices in industry,” in Companion Proceedings of the 36th International Conference on Software Engineering. ACM, 2014, pp. 24–33.
[24] J. Zhu, P. He, Q. Fu, H. Zhang, M. R. Lyu, and D. Zhang, “Learning to log: Helping developers make informed logging decisions,” in Proceedings of the 37th International Conference on Software Engineering-Volume 1. IEEE Press, 2015, pp. 415–425.
[25] H. Li, T.-H. P. Chen, W. Shang, and A. E. Hassan, “Studying software logging using topic models,” Empirical Software Engineering, vol. 23, no. 5, pp. 2655–2694, Oct 2018.
[26] X. Zhao, K. Rodrigues, Y. Luo, M. Stumm, D. Yuan, and Y. Zhou, “Log20: Fully automated optimal placement of log printing statements under specified overhead threshold,” in Proceedings of the 26th Symposium on Operating Systems Principles. ACM, 2017, pp. 565–581.
[27] H. Pinjia, C. Zhuangbin, H. Shilin, and M. R. Lyu, “Characterizing the natural language descriptions in software logging statements,” in Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering. IEEE Press, 2018.
[28] H. Li, W. Shang, Y. Zou, and A. E. Hassan, “Towards just-in-time suggestions for log changes,” Empirical Software Engineering, vol. 22, no. 4, pp. 1831–1865, 2017.
[29] J. Chen and W. Shang, “An exploratory study of performance regression introducing code changes,” in Software Maintenance and Evolution (ICSME), 2017 IEEE International Conference on. IEEE, 2017, pp. 341–352.
[30] R. Ding, H. Zhou, J.-G. Lou, H. Zhang, Q. Lin, Q. Fu, D. Zhang, and T. Xie, “Log2: A cost-aware logging mechanism for performance diagnosis.” in USENIX Annual Technical Conference, 2015, pp. 139–150.
[31] S. Kabinna, C. P. Bezemer, W. Shang, and A. E. Hassan, “Logging library migrations: A case study for the apache software foundation projects,” in 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR), May 2016, pp. 154–164.
[32] StackOverflow, “Why doesn’t “system.out.println” work in android?” Dec 2017. [Online]. Available: https://stackoverflow.com/a/2220559
[33] T. Yamane, “Statistics: An introductory analysis,” 1973.
[34] A. Developer, “Write and view logs with logcat,” Nov 2017. [Online]. Available:
https://developer.android.com/studio/debug/am-logcat#WriteLogs
[35] N. Nagappan and T. Ball, “Use of relative code churn measures to predict system defect density,” in Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on. IEEE, 2005, pp. 284–292.
[36] E. Murphy-Hill, T. Zimmermann, C. Bird, and N. Nagappan, “The design space of bug fixes and how developers navigate it,” IEEE Transactions on Software Engineering, vol. 41, no. 1, pp. 65–81, 2015.
[37] Y. Zeng, J. Chen, W. Shang, and T.-H. P. Chen, “Studying the characteristics of logging practices in mobile apps: a case study on f-droid,” Empirical Software Engineering, pp. 1–41, 2019.
[38] F. Shull, J. Singer, and D. I. Sjøberg, Guide to advanced empirical software engineering. Springer, 2007.
[39] T.-H. Chen, W. Shang, Z. M. Jiang, A. E. Hassan, M. Nasser, and P. Flora, “Detecting performance anti-patterns for applications developed using object-relational mapping,” in Proceedings of the 36th International Conference on Software Engineering. ACM, 2014, pp. 1001–1012.
[40] ——, “Finding and evaluating the performance impact of redundant data access for applications that are developed using object-relational mapping frameworks,” IEEE Transactions on Software Engineering, vol. 42, no. 12, pp. 1148–1161, 2016.
[41] T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney, “Producing wrong data without doing anything obviously wrong!” ACM Sigplan Notices, vol. 44, no. 3, pp. 265–276, 2009.
[42] D. S. Moore, B. A. Craig, and G. P. McCabe, Introduction to the Practice of Statistics. WH Freeman, 2012.
[43] N. Cliff, “Dominance statistics: Ordinal analyses to answer ordinal questions.” Psychological bulletin, vol. 114, no. 3, p. 494, 1993.
[44] J. Romano, J. D. Kromrey, J. Coraggio, and J. Skowronek, “Appropriate statistics for ordinal level data: Should we really be using t-test and cohen’sd for evaluating group differences on the nsse and other surveys,” in annual meeting of the Florida Association of Institutional Research, 2006, pp. 1–33.
[45] Elye, “Debug messages, your responsibility to strip it before release!” Jan 2018. [Online]. Available: https://medium.com/@elye.project/debug-messages-your-respons ible-to-clear-it-before-release-1a0f872d66f
[46] D. Lin, C.-P. Bezemer, Y. Zou, and A. E. Hassan, “An empirical study of game reviews on the steam platform,” Empirical Software Engineering, pp. 1–38, 2018.
[47] E. Harpstead, T. Zimmermann, N. Nagapan, J. J. Guajardo, R. Cooper, T. Solberg, and D. Greenawalt, “What drives people: Creating engagement profiles of players from game log data,” in Proceedings of the 2015 Annual Symposium on Computer-Human Interaction in Play. ACM, 2015, pp. 369–379.
[48] J. L. Fleiss and J. Cohen, “The equivalence of weighted kappa and the intraclass correlation coefficient as measures of reliability,” Educational and psychological measurement, vol. 33, no. 3, pp. 613–619, 1973.
[49] T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney, “Producing wrong data without doing anything obviously wrong!” SIGPLAN Not., vol. 44, no. 3, pp. 265–276, Mar. 2009.
All items in Spectrum are protected by copyright, with all rights reserved. The use of items is governed by Spectrum's terms of access.

Repository Staff Only: item control page

Downloads per month over past year

Research related to the current document (at the CORE website)
- Research related to the current document (at the CORE website)
Back to top Back to top