Font Size: a A A

Large-Scale Analysis And Detection For Framework-Specific Exceptions In Android Apps

Posted on:2020-01-03Degree:DoctorType:Dissertation
Country:ChinaCandidate:L L FanFull Text:PDF
GTID:1368330596467778Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Massive Android apps have exposed many problems when satisfying users' daily use.To ensure a competitive edge,developers and companies strive to deliver high-quality and high user-experience apps.One of their primary concerns is to prevent fail-stop errors such as crashes from incurring in released versions.Despite the availability of off-the-shelf testing platforms and static checking tools,many released apps still suffer from crashes due to the limited bug detection ability of these platforms/tools and different developing experiences of Android developers.In fact,many automated testing techniques are proposed to detect bugs for Android apps,but the reasons of the such frequent crashes still remain unexplored.There's no such work that takes in-depth analysis of the common fault categories and characteristics of framework-specific exceptions,making it difficult for researchers to propose more effective automated techniques such as bug detection,fault localization,and fault repair.It's also difficult for developers to understand and avoid such errors.However,there are several problems and challenges in analyzing and detecting framework-specific exceptions in Android apps:(1)Lack of a large dataset containing enough exception information(e.g.,crash stack,reproduce steps)for analysis.Online hosting platforms such as Github and Google Code are not fully qualified for this task due to the low maintenance of issue repositories.(2)Lack of tool support for exception reproduction and fault localization.Manual analysis and verification for these exceptions are needed.(3)Require domain knowledge about the Android framework.Manually analyzing these exceptions requires an in-depth understanding of the Android framework,which in itself is a big challenge.To this end,this paper makes an in-depth analysis on Android frameworkspecific exceptions and proposes an effective approach to detect certain type of errors from the following aspects:· Collected the largest and most comprehensive dataset of Android app exceptions so far,and solved the problem of lack of data.The collected dataset contains about 30,000 unique exceptions from both open-source apps and closed-source apps,which is the basis of conducting follow-up research such as bug detection,fault localization,fault repair,etc.· The first large-scale study on the root causes and characteristics of framework-specific exceptions in Android apps.Based on the collected dataset,this paper takes an in-depth analysis on the characteristics of framework-specific exceptions,evaluates bug detecting abilities of stateof-the-art bug detection tools,and investigates the common fixing patterns and difficulty of fixing and reproducing such exceptions.The results of this work can be regarded as a guidance for the follow-up research.· The first work to construct a benchmark of Android exceptions,and implement a prototype tool to localize framework-specific exceptions.This paper constructs a benchmark,named DroidDefect,which covers common fault categories and provides detailed information for each exception(root cause,fault category,exception repair scheme,etc.).This benchmark also supports follow-up research such as bug detection and fault localization.In addition,based on the benchmark,a prototype tool is implemented to localize framework-specific exceptions.· Proposed an efficient approach to manifesting asynchronous programming errors in Android apps.This paper notices that one kind of exceptions that are hard to be detected but accounts for a large portion are related to asynchronous programming,and summarizes the fault patterns by analyzing the mechanism of asynchronous programming.This paper proposes an efficient approach combining static detection and dynamic verification to manifest asynchronous programming errors,and implements a tool named APEChecker,whose effectiveness are demonstrated through experiments.Based on the collected large-scale dataset,this paper makes a comprehensive and in-depth analysis of Android framework-specific exceptions,and proposes an effective approach to detecting such exceptions,which has a positive impact on improving the quality of Android applications.The results of this study play apositive role in guiding researchers,and provide theoretical and data basis for follow-up research.
Keywords/Search Tags:Android App, Exception Analysis, Bug Detection, Automated Testing, Static Analysis, Asynchronous Programming Error
PDF Full Text Request
Related items