Prioritizing Corrective Maintenance Activities for Android Applications: An Industrial Case Study on Android Crash Reports
Unhandled code exceptions are often the cause of a drop in the number of users. In the highly competitive market of Android apps, users commonly stop using applications when they find some problem generated by unhandled exceptions. This is often reflected in a negative comment in the Google Play Store and developers are usually not able to reproduce the issue reported by the end users because of a lack of information. [Objective]: In this work, we present an industrial case study aimed at prioritizing the removal of bugs related to uncaught exceptions. Therefore, we (1) analysed crash reports of an Android application developed by a public transportation company, (2) classified uncaught exceptions that caused the crashes; (2) prioritized the exceptions according to their impact on users. [Results]: The analysis of the exceptions showed that seven exceptions generated 70% of the overall errors and that it was possible to solve more than 50% of the exceptions-related issues by fixing just six Java classes. Moreover, as a side result, we discovered that the exceptions were highly correlated with two code smells, namely “Spaghetti Code” and “Swiss Army Knife”. The results of this study helped the company understand how to better focus their limited maintenance effort. Additionally, the adopted process can be beneficial for any Android developer in understanding how to prioritize the maintenance effort.
Authors: Valentina Lenarduzzi, Alexandru Cristian Stan, Davide Taibi, Gustav Venders, Markus Windegger
Unternehmen: Free University of Bozen-Bolzano