Android is the most popular mobile operating system in the world, running on more than 70% of mobile devices. This implies a gigantic and very competitive market for Android apps. Being successful in such a market is far from trivial and requires, besides the tackling of a problem or need felt by a vast audience, the development of high-quality apps. As recently showed in the literature, connectivity issues (e.g., mishandling of zero/unreliable Internet connection) can result in bugs and/or crashes, negatively affecting the app's user experience. While these issues have been studied in the literature, there are no techniques able to automatically detect and report them to developers. We present CONAN, a tool able to detect statically 16 types of connectivity issues affecting Android apps. We assessed the ability of CONAN to precisely identify these issues in a set of 44 open source apps, observing an average precision of 80%. Then, we studied the relevance of these issues for developers by (i) conducting interviews with six practitioners working with commercial Android apps, and (ii) submitting 84 issue reports for 27 open source apps. Our results show that several of the identified connectivity issues are considered as relevant by practitioners in specific contexts, in which connectivity is considered a first-class feature.
翻译:Android是全世界最受欢迎的移动操作系统,运行在超过70%的移动设备上。这意味着对Android Apps来说,这是一个巨大的、非常有竞争力的市场。在这个市场中,成功的绝非微不足道,它要求开发高质量的应用程序,除了解决广大观众所感受到的问题或需求之外,还需要开发高质量的应用程序。正如最近文献所显示的那样,连接问题(例如,对零/不可信任的互联网连接的处理不当)可能导致错误和/或碰撞,对应用程序的用户经验产生不利影响。这些问题在文献中已经研究过,但是没有能够自动检测和向开发者报告的技术。我们介绍CONAN,这是一个能够静态地检测影响Android Apps的16种连接问题的工具。我们评估了CONAN在44个开放源应用程序中准确识别这些问题的能力,平均精确度为80%。然后,我们研究了这些问题对开发者的相关性,方法是(一)与从事商业和机器人应用的6名从业人员进行访谈,以及(二)为27个开放源应用程序提交84份问题报告。我们的结果显示,在特定的连接环境中,我们的一些从业人员认为是特定的典型的特征。