When App Stores Listen to the Crowd to Fight Bugs in the Wild (original) (raw)

Towards self-healing smartphone software via automated patching

Proceedings of the 29th ACM/IEEE international conference on Automated software engineering, 2014

Frequent app bugs and low tolerance for loss of functionality create an impetus for self-healing smartphone software. We take a step towards this via on-the-fly error detection and automated patching. Specifically, we add failure detection and recovery to Android by detecting crashes and "sealing off" the crashing part of the app to avoid future crashes. In the detection stage, our system dynamically analyzes app execution to detect certain exceptional situations. In the recovery stage, we use bytecode rewriting to alter app behavior as to avoid such situations in the future. When using our implementation, apps can resume operation (albeit with limited functionality) instead of repeatedly crashing. Our approach does not require access to app source code or any system (e.g., kernel-level) modification. Experiments on several real-world, popular Android apps and bugs show that our approach manages to recover the apps from crashes effectively, timely, and without introducing overhead.

App store mining is not enough for app improvement

Empirical Software Engineering, 2018

The rise in popularity of mobile devices has led to a parallel growth in the size of the app store market, intriguing several research studies and commercial platforms on mining app stores. App store reviews are used to analyze different aspects of app development and evolution. However, app users' feedback does not only exist on the app store. In fact, despite the large quantity of posts that are made daily on social media, the importance and value that these discussions provide remain mostly unused in the context of mobile app development. In this paper, we study how Twitter can provide complementary information to support mobile app development. By analyzing a total of 30,793 apps over a period of six weeks, we found strong correlations between the number of reviews and tweets for most apps. Moreover, through applying machine learning classifiers, topic modeling and subsequent crowd-sourcing, we successfully mined 22.4% additional feature requests and 12.89% additional bug reports from Twitter. We also found that 52.1% of all feature requests and bug reports were discussed on both tweets and reviews. In addition to finding common and unique information from Twitter and the app store, sentiment and content analysis were also performed for 70 randomly selected apps. From this, we found that tweets provided more critical and objective views on apps than reviews from the app store. These results show that app store review mining is indeed not enough; other information sources ultimately provide added value and information for app developers.

QDroid: Mobile Application Quality Analyzer for App Market Curators

Mobile Information Systems, 2016

Low quality mobile applications have damaged the user experience. However, in light of the number of applications, quality analysis is a daunting task. For that reason, QDroid is proposed, an automated quality analyzer that detects the presence of crashes, excessive resource usage, and compatibility problems, without source codes and human involvement. QDroid was applied to 67 applications for evaluation and discovered 78% more crashes and attained 23% higher Activity coverage than Monkey testing. For detecting excessive resource usage and compatibility problems, QDroid reduced the number of applications that required manual review by up to 96% and 69%, respectively.

Update Behavior in App Markets and Security Implications: A Case Study in Google Play

2012

Digital market places (e.g. Apple App Store, Google Play) have become the dominant platforms for the distribution of software for mobile phones. Thereby, developers can reach millions of users. However, neither of these market places today has mechanisms in place to enforce security critical updates of distributed apps. This paper investigates this problem by gaining insights on the correlation between published updates and actual installations of those. Our findings show that almost half of all users would use a vulnerable app version even 7 days after the fix has been published. We discuss our results and give initial recommendations to app developers.

API change and fault proneness: a threat to the success of Android apps

Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2013, 2013

During the recent years, the market of mobile software applications (apps) has maintained an impressive upward trajectory. Many small and large software development companies invest considerable resources to target available opportunities. As of today, the markets for such devices feature over 850K+ apps for Android and 900K+ for iOS. Availability, cost, functionality, and usability are just some factors that determine the success or lack of success for a given app. Among the other factors, reliability is an important criteria: users easily get frustrated by repeated failures, crashes, and other bugs; hence, abandoning some apps in favor of others.

Prioritizing Corrective Maintenance Activities for Android Applications: An Industrial Case Study on Android Crash Reports

[Context]: 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) analyzed crash reports of an Android application developed by a public transportation company, (2) classified uncaught exceptions that caused the crashes; (3) 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.

Quality Attributes Demanded By Mobile App Stores On Mobile Apps Hosted On Their Platforms

INTERNATIONAL JOURNAL OF COMPUTERS & TECHNOLOGY

Mobile applications are designed and developed to run on a mobile device. The overwhelming adoption of mobile device technology, the rapid advancement of mobile devices and the significance of the Internet in today's society have shifted how businesses and consumers interact. The shift has subsequently upset mobile software programming enormously. The education sector has not been left behind on the adoption of mobile devices. For a mobile app to publication in an app store, the developers must meet the quality requirements of the store. To obtain the requirements, we surveyed four major app stores by leveraging the ISO/IEC 25010 quality standard to ensure the fulfillment of the quality requirements from the mobile app stores. We used the cross-sectional methodology strategy thus conducted the study within a limited time frame. Once an app is published in an app store, it becomes accessible to the entire universe of users. Mobile app developers should be familiar with the qualit...

Mobile application stores: success factors, existing approaches, and future developments

IEEE Communications Magazine, 2000

The mobile user experience has been significantly altered with the arrival of mobile broadband widespread deployments, massive improvements in available smartphones, and a shift in user habits towards a more participative, communicative role. In this context, Mobile Application Stores have revolutionized software and content delivery. These stores focus on the applications, building around them an ecosystem of developers and consumers. The store greatly lessens the barrier between these agents, providing significant benefits to both developers and consumers. In this article we analyze this phenomenon, describing its originating factors and fundamental characteristics. We also perform a more detailed study on the two most successful application stores, identifying different approaches for implementing the model.

A Longitudinal Study of Google Play

The difficulty of large scale monitoring of app markets affects our understanding of their dynamics. This is particularly true for dimensions such as app update frequency, control and pricing, the impact of developer actions on app popularity, as well as coveted membership in top app lists. In this paper we perform a detailed temporal analysis on two datasets we have collected from the Google Play Store, one consisting of 160,000 apps and the other of 87,223 newly released apps. We have monitored and collected data about these apps over more than 6 months. Our results show that a high number of these apps have not been updated over the monitoring interval. Moreover, these apps are controlled by a few developers that dominate the total number of app downloads. We observe that infrequently updated apps significantly impact the median app price. However, a changing app price does not correlate with the download count. Furthermore, we show that apps that attain higher ranks have better stability in top app lists. We show that app market analytics can help detect emerging threat vectors, and identify search rank fraud and even malware. Further, we discuss the research implications of app market analytics on improving developer and user experiences.