DALT: Deep Activity Launching Test via Intent-Constraint Extraction

The frequent usage of the activity and intent in Android app development makes activity launching communication the focus of app analysis, which inspires the proposal of Activity Launching Test (ALT). Existing static analysis approaches are limited in test case generation and crash triggering of ALT...

Full description

Saved in:
Bibliographic Details
Published in2022 IEEE 33rd International Symposium on Software Reliability Engineering (ISSRE) pp. 482 - 493
Main Authors Liu, Ao, Guo, Chenkai, Dong, Naipeng, Wang, Yinjie, Xu, Jing
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.10.2022
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:The frequent usage of the activity and intent in Android app development makes activity launching communication the focus of app analysis, which inspires the proposal of Activity Launching Test (ALT). Existing static analysis approaches are limited in test case generation and crash triggering of ALT, due to their path-insensitive nature and insufficient intent attribute exploration. This work proposes DALT, an activity test frame-work for launching-related bug detection, which empowers an inter-procedural, context-, flow- and path-sensitive static analysis to generate proper intents as test cases. By tailoring symbolic execution for intent propagation, DALT is able to explore statements in deep code position and extract conditional constraints in diverse launching-related execution paths. Consequently, invalid test paths are substantially reduced via the guidance of the extracted constraints. DALT also supports significantly more intent attribute types and value types of attributes, by reformatting them to be compatible with the commonly used constraint solvers. Extensive comparison experiments have been conducted from diverse validation dimensions. The results demonstrate that compared to the state-of-the-art approach, DALT is more effective in successfully launching activities and detecting bugs hiding in deep positions of the program paths.
ISSN:2332-6549
DOI:10.1109/ISSRE55969.2022.00053