Skip to content

XYIheng/AndroidTesting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 

Repository files navigation

Android Testing and Analysis

Recent paper related to Android app testing and Analysis. Feel free to add new papers by pull request.

Please check the web AndroidTesting.

Contents

2023 2022 2021 2020 2019 2018 2017 2016

Reproduce Flaky

Test Event Reduction

Non-crash bug

All papers

2024

  • 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

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

    • A Large-Scale Longitudinal Study of Flaky Tests [pdf]
    • LiveDroid: Identifying and Preserving Mobile App State in Volatile Runtime Environments [pdf]

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

    • Preference-Wise Testing for Android Applications [pdf]
    • ServDroid: detecting service usage inefficiencies in Android applications [pdf]
    • Together strong: cooperative Android app analysis [pdf]

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

    • AppFlow: Using Machine Learning to Synthesize Robust, Reusable UI Tests [pdf]
    • Do Android Taint Analysis Tools Keep Their Promises? [pdf]
    • FraudDroid: Automated Ad Fraud Detection for Android Apps [pdf]
    • Neural-Augmented Static Analysis of Android Communication [pdf]
  • 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

    • µDroid: An Energy-Aware Mutation Testing Framework for Android [pdf]
    • PATDroid: permission-aware GUI testing of Android [pdf]
    • Enabling Mutation Testing for Android Apps [pdf]
    • Guided, Stochastic Model-Based GUI Testing of Android Apps [pdf]

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

Test Event Reduction

Non-crashing bug

Find non-crashing bug

others related bug study

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)

Generates automated oracles for a specific class of user interactions