Mobile App Analysis and Testing
Recent papers related to mobile app analysis and testing. Feel free to make contribution to this repository (e.g., adding new papers) by creating pull requests.
You can also view the papers via this web page MobileAppTesting.
Contents
2024 2023 2022 2021 2020 2019 2018 2017 2016
All papers
2024
- ASE
- General and Practical Property-based Testing for Android Apps [pdf], [repo]
- Navigating Mobile Testing Evaluation: A Comprehensive Statistical Analysis of Android GUI Testing Metrics
- A Longitudinal Analysis Of Replicas in the Wild Wild Android
- DroidCoder: Enhanced Android Code Completion with Context-Enriched Retrieval-Augmented Generation
- Giving without Notifying: Assessing Compliance of Data Transmission in Android Apps
- How Does Code Optimization Impact Third-party Library Detection for Android Applications?
- MaskDroid: Robust Android Malware Detection with Masked Graph Representations
- Beyond Manual Modeling: Automating GUI Model Generation Using Design Documents
- ICSE
- Deeply Reinforcing Android GUI Testing with Deep Reinforcement Learning
- Prompting Is All Your Need: Automated Android Bug Replay with Large Language Models
- Attention! Your Copied Data is Under Monitoring: A Systematic Study of Clipboard Usage in Android Apps
- Comprehensive Semantic Repair of Obsolete GUI Test Scripts for Mobile Applications
- Learning-based Widget Matching for Migrating GUI Test Cases
- Make LLM a Testing Expert: Bringing Human-like Interaction to Mobile GUI Testing via Functionality-aware Decisions
- On Using GUI Interaction Data to Improve Text Retrieval-based Bug Localization
- Practical Non-Intrusive GUI Exploration Testing with Visual-based Robotic Arms
- Semantic GUI Scene Learning and Video Alignment for Detecting Duplicate Video-based Bug Reports
- Automatically Detecting Reflow Accessibility Issues in Responsive Web Pages
- CrashTranslator: Automatically Reproducing Mobile Application Crashes Directly from Stack Trace
- MotorEase: Automated Detection of Motor Impairment Accessibility Issues in Mobile App UIs
- FSE
- Mobile Bug Report Reproduction via Global Search on the App UI Model
- Component Security Ten Years Later: An Empirical Study of Cross-Layer Threats in Real-World Mobile Applications
- Investigating Documented Privacy Changes in Android OS
- ISSTA
- Guardian: A Runtime Framework for LLM-based UI Exploration
- Call Graph Soundness in Android Static Analysis
- Feedback-Driven Automated Whole Bug Report Reproduction for Android Apps
- NativeSummary: Summarizing Native Binary Code for Inter-language Static Analysis of Android Apps
- Synthesis-based Enhancement for GUI Test Case Migration
- Toward the Automated Localization of Buggy Mobile App UIs from Bug Descriptions
2023
- ASE
- Fine-Grained In-Context Permission Classification for Android Apps using Control-Flow Graph Embedding
- ReuNify: A Step Towards Whole Program Analysis for React Native Android App
- Scene-Driven Exploration and GUI Modeling for Android Apps
- Vision-based Widget Mapping for Test Migration across Mobile Platforms: Are We There Yet?
- Automated Fixing of Web UI Tests via Iterative Element Matching [pdf]
- ISSTA
- An Empirical Study of Functional Bugs in Android Apps [pdf], [repo]
- Automatically Reproducing Android Bug Reports using Natural Language Processing and Reinforcement Learning [pdf], [website], [tool]
- ConfFix: Repairing Configuration Compatibility Issues in Android Apps [pdf], [repo]
- DDLDroid: Efficiently Detecting Data Loss Issues in Android Apps [artifact]
- Guided Retraining to Enhance the Detection of Difficult Android Malware
- Precise and Efficient Patch Presence Test for Android Applications against Code Obfuscation
- ωTest: WebView-Oriented Testing for Android Applications [pdf], [repo]
- ICSE
- COLUMBUS: Android App Testing Through Systematic Callback Exploration [pdf]
- Compatibility Issue Detection for Android Apps Based on Path-Sensitive Semantic Analysis [pdf]
- PTPDroid: Detecting Violated User Privacy Disclosures to Third-Parties of Android Apps
- AidUI: Toward Automated Recognition of Dark Patterns in User Interfaces [pdf]
- BADGE: Prioritizing UI Events with Hierarchical Multi-Armed Bandits for Automated UI Testing [pdf]
- Context-aware Bug Reproduction for Mobile Apps
- Demystifying Privacy Policy of Third-Party Libraries in Mobile Apps
- Detecting Dialog-Related Keyboard Navigation Failures in Web Applications
- Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization
- Efficiency Matters: Speeding Up Automated Testing with GUI Rendering Inference [pdf]
- Ex pede Herculem: Augmenting Activity Transition Graph for Apps via Graph Convolution Network
- Fill in the Blank: Context-aware Automated Text Input Generation for Mobile GUI Testing [pdf]
- Read It, Don’t Watch It: Captioning Bug Recordings Automatically [pdf]
- FSE
- Automata-based Trace Analysis for Aiding Diagnosing GUI Testing Tools for Android
- Automated and Context-Aware Repair of Color-Related Accessibility Issues for Android Apps
- Property-based Fuzzing for Finding Data Manipulation Errors in Android Apps
- ViaLin: Path-Aware Dynamic Taint Analysis for Android
2022
- ASE
- Accelerating OCR-Based Widget Localization for Test Automation of GUI Applications
- A Comprehensive Evaluation of Android ICC Resolution Techniques
- Automatically Detecting Visual Bugs in HTML5 Games
- Groundhog: An Automated Accessibility Crawler for Mobile Apps
- The Metamorphosis: Automatic Detection of Scaling Issues for Mobile Apps
- VITAS : Guided Model-based VUI Testing of VPA Apps
- ISSTA
- PermDroid: automatically testing permission-related behaviour of Android applications.
- Detecting and fixing data loss issues in Android apps
- Automatically detecting API-induced compatibility issues in Android apps: a comparative analysis (replicability study)
- NCScope: hardware-assisted analyzer for native code in Android apps
- Detecting resource utilization bugs induced by variant lifecycles in Android
- ICSE
- APER: Evolution-Aware Runtime Permission Misuse Detection for Android Apps.
- Demystifying Android Non-SDK APls: Measurement and Understanding
-
Difuzer: Uncovering Suspicious Hidden Sensitive Operations in Android Apps
- GIFdroid: Automated Replay of Visual Bug Reports for Android Apps
- JuCify: A Step Towards Android Code Unification for Enhanced Static Analysis
- Large-scale Security Measurements on the Android Firmware Ecosystem
- PROMAL: Precise Window Transition Graphs for Android via Synergy of Program Analysis and Machine Learning
- Towards Automatically Repairing Compatibility Issues in Published Android Apps
- Use of Test Doubles in Android Testing: An In-Depth Investigation
- Analyzing User Perspectives on Mobile App Privacy at Scale
- DescribeCtx: Context-Aware Description Synthesis for Sensitive Behaviors in Mobile
- Domain-Specific Analysis of Mobile App Reviews Using Keyword-Assisted Topic Models
- Fast and Precise Application Code Analysis using a Partial Library
- Where is Your App Frustrating Users
- FSE
- AccessiText: Automated Detection of Text Accessibility Issues in Android Apps
- Detecting Non-crashing Functional Bugs in Android Apps via Deep-State Differential Analysis
- Cross-Device Record and Replay for Android Apps
- Cross-Language Android Permission Specification
- Toward Interactive Bug Reporting for (Android App) End-Users
- Avgust: Automating Usage-Based Test Generation from Videos of App Executions
2021
- ASE
- Characterizing and Detecting Configuration Compatibility Issues in Android Apps
- Finding the Missing Piece: Permission Specification Analysis for Android NDK
- Automated Repair for Size-Based Inaccessibility Issues in Mobile Apps
- Deep GUI: Black-box GUI Input Generation with Deep Learning
- UI Test Migration Across Mobile Platforms
- ISSTA
- An Infrastructure Approach to Improving Effectiveness of Android UI Testing Tools [pdf]
- GUIDER: GUI Structure and Vision Co-Guided Test Script Repair for Android Apps [pdf]
- Semantic Matching of GUI Events for Test Reuse: Are We There Yet?[pdf]
- Understanding and Finding System Setting-Related Defects in Android Apps [pdf]
- ICSE
- ATVHunter: Reliable Version Detection of Third-Party Libraries for Vulnerability Identification in Android Apps [pdf]
- An Empirical Analysis of UI-based Flaky Tests [pdf]
- An Empirical Assessment of Global COVID-19 Contact Tracing Applications [pdf]
- An Empirical Study on Deployment Faults of Deep Learning Based Mobile Applications [pdf]
- App's Auto-Login Function Security Testing via Android OS-Level Virtualization [pdf]
- Automatically Matching Bug Reports With Related App Reviews [pdf]
- Don't Do That! Hunting Down Visual Design Smells in Complex UIs against Design Guidelines [pdf]
- Layout and Image Recognition Driving Cross-Platform Automated Mobile Testing [pdf]
- It Takes Two to Tango: Combining Visual and Textual Information for Detecting Duplicate Video-Based Bug Reports [pdf]
- Prioritize Crowdsourced Test Reports via Deep Screenshot Understanding [pdf]
- RAICC: Revealing Atypical Inter-Component Communication in Android Apps [pdf]
- IMGDroid: Detecting Image Loading Defects in Android Applications [pdf]
- FSE
- Benchmarking Automated GUI Testing for Android against Real-World Bugs [pdf]
- Checking Conformance of Applications against GUI Policies [pdf]
- Data-Driven Accessibility Repair Revisited: On the Effectiveness of Generating Labels for Icons in Android Apps [pdf]
- An Empirical Study of GUI Widget Detection for Industrial Mobile Games [pdf]
- OOPSLA
- Fully Automated Functional Fuzzing of Android Apps for Detecting Non-Crashing Logic Bugs [pdf]
2020
- ASE
- Seven Reasons Why: An In-Depth Study of the Limitations of Random Test Input Generation for Android
- UI obfuscation and its effects on automated UI analysis for Android apps
- Automated third-party library detection for Android applications: are we there yet?
- Owl eyes: spotting UI display issues via visual understanding [pdf]
- Test automation in Open-Source Android Apps: A Large-Scale Empirical Study
- ER Catcher: A Static Analysis Framework for Accurate and Scalable Event-Race Detection in Android [pdf]
- Speeding up GUI Testing by On-Device Test Generation
- ISSTA
- Data loss detector: automatically revealing data loss bugs in Android apps
- Automated classification of actions in bug reports of mobile apps
- ICSE
- LABLEDROID: Unblind your apps: predicting natural-language labels for mobile GUI components by deep learning [pdf]
- Translating video recordings of mobile app usages into replayable scenarios
- Multiple-entry testing of Android applications by constructing activity launching contexts
- How Android developers handle evolution-induced API compatibility issues: a large-scale study
- ComboDroid: generating high-quality test inputs for Android apps via use case combinations
- RoScript: a visual script driven truly non-intrusive robotic testing system for touch screen applications
- Time-travel testing of Android apps [pdf]
- An empirical assessment of security risks of global Android banking apps
- Accessibility issues in Android apps: state of affairs, sentiments, and ways forward
- Collaborative bug finding for Android apps
- FSE
- All Your App Links Are Belong to Us: Understanding the Threats of Instant Apps Based Attacks [pdf]
- Automated Construction of Energy Test Oracles for Android [pdf]
- Object Detection for Graphical User Interface: Old Fashioned or Deep Learning or a Combination? [pdf]
- Static Asynchronous Component Misuse Detection for Android Applications [pdf]
- OOPSLA
2019
- ASE
- Humanoid: a deep learning-based approach to automated black-box Android app testing
- Test transfer across mobile apps through semantic mapping
- Goal-driven exploration for Android applications
- Randr: Record and replay for android applications via targeted runtime instrumentation
- LIRAT: layout and image recognition driving automated mobile testing of cross-platform
- DaPanda: detecting aggressive push notifications in Android apps
- Test migration between mobile apps with similar functionality
- MutAPK: source-codeless mutant generation for Android apps
- Automating app review response generation
- A qualitative analysis of Android taint-analysis results
- OAuthLint: an empirical study on OAuth bugs in Android applications
- Demystifying application performance management libraries for Android
- Characterizing Android app signing issues
- ISSTA
- SARA: self-replay augmented record and replay for Android in industrial cases
- Improving random GUI testing with image-based widget detection
- TestMig: migrating GUI test cases from iOS to Android
- Mining Android crash fixes in the absence of issue- and change-tracking systems
- LibID: reliable identification of obfuscated third-party Android libraries
- QADroid: regression event selection for Android applications
- Learning user interface element interactions
- ICSE
- IconIntent: automatic identification of sensitive UI widgets based on icon classification for Android apps [pdf]
- Mimic: UI compatibility testing system for Android apps [pdf]
- Search-based energy testing of Android
- Practical GUI testing of Android applications via model abstraction and refinement
- Towards understanding and reasoning about Android interoperations
- FSE
2018
- ASE
- An empirical study of android test generation tools in industrial cases
- Understanding and detecting evolution-induced compatibility issues in Android apps
- Understanding and detecting callback compatibility issues for Android applications
- Efficiently manifesting asynchronous programming errors in Android apps
- On adopting linters to deal with performance concerns in Android apps
- Self-protection of Android systems from inter-component communication attacks
- A tale of two cities: how WebView induces bugs to Android applications [pdf]
- Characterizing and identifying misexposed activities in Android applications
- Dual-force: understanding WebView malware via cross-language forced execution
- ISSTA
- Automatically translating bug reports into test cases for mobile apps
- LAND: a user-friendly and customizable test generation tool for Android apps
- CiD: automating the detection of API-related compatibility issues in Android apps
- Test migration for efficient large-scale assessment of mobile app coding assignments
- ICSE
- Automated reporting of GUI design violations for mobile apps
- Leveraging program analysis to reduce user-perceived latency in mobile applications
- Software protection on the go: a large-scale empirical study on mobile app obfuscation
- Repairing crashes in Android apps
- DetReduce: minimizing Android GUI test suites for regression testing
- Augusto: exploiting popular functionalities for the generation of semantic GUI tests with Oracles [pdf]
- FSE
- OOPSLA
- Robust Relational Layouts Synthesis from Examples for Android [pdf]
2017
- ASE
- SimplyDroid: efficient event sequence simplification for Android application
- EHBDroid: beyond GUI testing for Android applications
- Sketch-guided gui test generation for mobile applications
- Systematically testing background services of mobile apps
- UI driven Android application reduction
- ANDROFLEET: testing WiFi peer-to-peer mobile apps in the large
- Automated cross-platform inconsistency detection for mobile apps
- Systematic reduction of GUI test sequences
- EventFlowSlicer: a tool for generating realistic goal-driven GUI tests
- Crowd intelligence enhances automated mobile testing
- ISSTA
- Data flow oriented UI testing: exploiting data flows and UI elements to test Android applications
- Semi-automated discovery of server-based information oversharing vulnerabilities in Android applications
- ICSE
- Analysis and testing of notifications in Android wear applications
- Adaptive unpacking of Android apps
- Automatic text input generation for mobile testing
- LibD: scalable and precise third-party library detection in android markets
- FSE
2016
- ASE
- Automated model-based Android GUI testing using multi-level GUI comparison criteria
- Reflection-aware static analysis of Android apps
- Taming Android fragmentation: characterizing and detecting compatibility issues for Android apps
- Relda2: an effective static analysis tool for resource leak detection in Android apps.
- ISSTA
- Monkey see, monkey do: effective generation of GUI tests with inferred macro events
- Sapienz: multi-objective automated testing for Android applications
- DroidRA: taming reflection to support whole-program analysis of Android apps
- Energy-aware test-suite minimization for android apps
- ICSE
- Reducing combinatorics in GUI testing of android applications
- MobiPlay: a remote execution based record-and-replay tool for mobile applications
- VDTest: an automated framework to support testing for virtual devices
- PRADA: prioritizing android devices for apps by mining large-scale usage data
- FSE
- Understanding and detecting wake lock misuses for Android applications
- DiagDroid: Android performance diagnosis via anatomizing asynchronous executions
- Minimizing GUI event traces
- What would users change in my app? summarizing app reviews for recommending software changes
- OOPSLA
- Finding Resume and Restart Errors in Android Applications [pdf]
Reproduce Flaky Tests
- LIRAT: Layout and Image Recognition Driving Automated Mobile Testing of Cross-Platform (ASE ‘19)
- SARA: Self-Replay Augmented Record and Replay for Android in Industrial Cases (ISSTA ‘19)
- Record and replay for Android: are we there yet in industrial cases? (ESEC/FSE ‘17)
- RANDR: Record and Replay for Android Applications via Targeted Runtime Instrumentation (ASE ‘19)
- Translating video recordings of mobile app usages into replayable scenarios (ICSE ‘20)
- Versatile Yet Lightweight Record-and-replay for Android (OOPSLA ‘15)
- MobiPlay: A Remote Execution Based Record-and-replay Tool for Mobile Applications (ICSE ‘16)
- Mosaic: cross-platform user-interaction record and replay for the fragmented android ecosystem (ICSE ‘16)
- A Large-Scale Longitudinal Study of Flaky Tests(OOPSLA ‘20)
- An Empirical Analysis of UI-based Flaky Tests (ICSE ‘21)
- Concurrency-related Flaky Test Detection in Android Apps
- iDFlakies: A framework for detecting and partially classifying flaky tests (ICST ‘19)
- DeFlaker: Automatically detecting flaky tests (ICSE ‘18)
- Making system user interactive tests repeatable: when and what should we control? (ICSE ‘15)
- Who broke the build?: Automatically identifying changes that induce test failures in continuous integration at Google scale (ICSE ‘2017)
- Root causing flaky tests in a large-scale industrial setting (ISSTA ‘2019)
- A study on the lifecycle of flaky tests (ICSE ‘2020)
- What Causes My Test Alarm? Automatic Cause Analysis for Test Alarms in System and Integration Testing (ICSE ‘2017)
- Understanding flaky tests: The developers perspective (ESEC/FSE ‘2019)
- The impact of failing, flaky, and high failure tests on the number of crash reports associated with Firefox builds (ESEC/FSE ‘2018)
- Debugging the performance of Maven’s test isolation: Experience report(ISSTA ‘2020)
- Reliable testing: Detecting state-polluting tests to prevent test dependency (ISSTA ‘2015)
- Improving oracle quality by detecting brittle assertions and unused inputs in tests(FSE ‘2014)
- Detecting assumptions on deterministic implementations of non-deterministic specifications (ICST’2016)
- Empirically revisiting the test independence assumption (ISSTA’2014)
- Practical test dependency detection (ICST’2018)
- An empirical analysis of flaky tests (FSE’2014)
- iFixFlakies: A framework for automatically fixing order-dependent flaky tests (ESEC/FSE’2019)
- An Empirical Study of Flaky Tests in Android Apps (ICSME’2018)
GUI Test Reduction
- Efficient testing of GUI applications by event sequence reduction(Science of Computer Programming ‘2021)
- Understanding Ineffective Events and Reducing Test Sequences for Android Applications (TASE ‘2019)
- Event trace reduction for effective bug replay of Android apps via differential GUI state analysis (ESEC/FSE ‘2019)
- Context-based event trace reduction in client-side JavaScript applications (ICST ‘2018)
- DetReduce: minimizing Android GUI test suites for regression testing (ICSE ‘2018)
- SimplyDroid: Efficient event sequence simplification for android application (ASE ‘2017)
- Systematic reduction of GUI test sequences (ASE ‘2017)
- Constraint-based event trace reduction (FSE ‘2016)
- Minimizing GUI event traces (FSE ‘2016)
- On the use of delta debugging to reduce recordings and facilitate debugging of web applications (ESEC/FSE ‘2015)
Non-crashing Functional Bugs
- Data Loss Detector: Automatically Revealing Data Loss Bugs in Android Apps (ISSTA ‘2020)
- Understanding and finding system setting-related defects in Android apps (ISSTA ‘2021)
- QUANTUM: Automated Generation of Oracles for Testing User-Interaction Features of Mobile Apps (ICST ‘2014)
- Is this the lifecycle we really want?: an automated black-box testing approach for Android activities (INTUITESTBEDS 2018)
- UI Test Migration Across Mobile Platforms (ASE ‘21)
- Owl eyes: spotting UI display issues via visual understanding (ASE ‘20)
- Test migration between mobile apps with similar functionality (ASE ‘19)
- Sketch-guided gui test generation for mobile applications (ASE ‘17)
- EventFlowSlicer: a tool for generating realistic goal-driven GUI tests (ASE ‘17)
- QADroid: regression event selection for Android applications (ISSTA ‘2019)
- Monkey see, monkey do: effective generation of GUI tests with inferred macro events (ISSTA ‘2016)
- An Empirical Study of i18n Collateral Changes and Bugs in GUIs of Android apps (ICSME 2020)
Find non-crashing functional bugs
-
Automating GUI-based Test Oracles for Mobile Apps (MSR’24)
- A Study of Using Multimodal LLMs for Non-Crash Functional Bug Detection in Android Apps
- AUITestAgent: Automatic Requirements Oriented GUI Function Testing
- Vision-driven Automated Mobile GUI Testing via Multimodal Large Language Model
- Finding Deep-Hidden Bugs in Android Apps via Functional Semantics Guided Exploration (TASE’24)
- Extraction and empirical evaluation of GUI-level invariants as GUI Oracles in mobile app testing (IST’24)
- Fully Automated Functional Fuzzing of Android Apps for Detecting Non-Crashing Logic Bugs (OOPSLA ‘21)
- Understanding and finding system setting-related defects in Android apps (ISSTA ‘21)
- Data Loss Detector: Automatically Revealing Data Loss Bugs in Android Apps (ISSTA ‘20)
- Owl eyes: spotting UI display issues via visual understanding (ASE ‘20)
- Mimic: UI compatibility testing system for Android apps (ICSE ‘19)
- A tale of two cities: how WebView induces bugs to Android applications (ASE ‘18’)
- Finding Resume and Restart Errors in Android Applications (OOPSLA ‘16)
- THOR: Systematic Execution of Android Test Suites in Adverse Conditions (ISSTA ‘15)
- QUANTUM: Automated Generation of Oracles for Testing User-Interaction Features of Mobile Apps (ICST ‘14)
- IMGDroid: Detecting Image Loading Defects in Android Applications (ICSE ‘21)
- LiveDroid: Identifying and Preserving Mobile App State in Volatile Runtime Environments
others related bug study
- Runtime Permission Issues in Android Apps: Taxonomy, Practices, and Ways Forward
- Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API Usages, and Differences (OOPSLA ‘2020)
- A Large-Scale Longitudinal Study of Flaky Tests (OOPSLA ‘2020)
Human-provided oracles to find non-crashing bugs
- THOR: Systematic Execution of Android Test Suites in Adverse Conditions (ISSTA ‘2015)
- ChimpCheck: property-based randomized test generation for interactive apps
- AppFlow: using machine learning to synthesize robust, reusable UI tests (ESEC/FSE ‘2018)
- Automation of Android applications functional testing using machine learning activities classification (MOBILESofT ‘2018)
- Test Migration Between Mobile Apps with Similar Functionality (ASE ‘2019)
- Test Transfer Across Mobile Apps Through Semantic Mapping (ASE ‘2019)
- Reinforcement Learning-Driven Test Generation for Android GUI Applications using Formal Specifications (ARXIV ‘2019)
- Augusto: exploiting popular functionalities for the generation of semantic GUI tests with Oracles (ICSE ‘2018)
- Automated test oracles for GUIs (FSE ‘2000)
- What Test Oracle Should I Use for Effective GUI Testing? (ASE ‘2003)
- Designing and comparing automated test oracles for GUI-based software applications (ACM Trans. Softw. Eng. Methodol ‘2007)
- ReNaLART: Automating test oracles from restricted natural language agile requirements (Expert Syst. J. Knowl. Eng ‘2021)
Uses differential testing to overcome the oracle problem
- SPAG-C: On the Accuracy, Efficiency, and Reusability of Automated Test Oracles for Android Devices (IEEE Trans. Software Eng)
- DIFFDROID: Automated cross-platform inconsistency detection for mobile apps (ASE ‘2017)