Font Size: a A A

Method For Diagnosing Android App Responsiveness Bugs

Posted on:2021-07-23Degree:MasterType:Thesis
Country:ChinaCandidate:W H ZhaoFull Text:PDF
GTID:2518306503964679Subject:Software engineering
Abstract/Summary:PDF Full Text Request
In recent years,with the explosive growth of the number of mobile applications,users have increasingly demanded on user experience.App responsiveness is the most intuitive interpretation of app performance from user's perspective.Traditional performance profilers only focus on one kind of program activities(e.g.,CPU profiling),while the cause for slow responsiveness is diverse or even due to the joint effect of multiple kinds.Apps are naturally interactive programs that perform actions mainly upon user inputs and system events(e.g.,location update),similar to other GUI applications.Usually,such an action is split into subtasks.Subtasks have inherent causality relation and usually run in parallel.With many possible ordering and overlapping,app developers need tools to help identify user-perceptible performance slowness and the underlying program activities responsible for the problem.Also,various test configurations,such as device hardware and wireless connectivity can have dramatic impact on particular program activities and indirectly affect app responsiveness.Conventional mobile testing lacks mechanisms to reveal configuration-sensitive bugs.In this paper,we propose AppSPIN,a tool to automatically diagnose app responsiveness bugs and systematically explore configuration-sensitive bugs.AppSPIN automatically instruments the app to identify responsiveness bugs and analyzes causes across different abstraction levels while the app is running existing functional tests.The diagnosis process also synthesizes the major performance bottleneck for the app.Then AppSPIN automatically repeats the tests with a configuration stressing the bottleneck resource to further reveal new bugs.Our contribution is three-fold:1)We introduce a systematic performance-testing methodology.The initial tryout is designed as an effortless overlay with existing functional tests and automatically identify user-perceptible responsiveness bugs.Each detected problem is detailed with causes and context to facilitate fixes.2)A reliable app performance maturity detection scheme was designed and implemented.The real-time monitoring of the changes in the memory during the running of the app performed a second-order linear fitting of the changes in the memory size.Under the condition of ensuring test coverage,the tester can find possible responsiveness bugs during the test in the shortest time.3)Meanwhile,iterative follow-up tryouts quickly discover configuration-sensitive problems to further extend the comprehensiveness of the scheme.We apply AppSPIN and automated monkey testing to 30 highly tuned real-world apps and identify 123 responsiveness bugs in an average test time of 15 minutes.Identified bugs have targeted causes and we also discover common cause pattern across different apps.In addition,with automatically altered configuration and four more repeated tests,AppSPIN effectively identifies 60% to 80% more bugs than a single test run.
Keywords/Search Tags:Responsiveness bugs, Performance maturity, Reconfiguration
PDF Full Text Request
Related items