PATDroid: Permission-Aware Testing for Android

Recent introduction of a dynamic permission model in Android, allowing the users to grant and revoke permissions a at the installation of an app, has made it much harder to properly test apps. Since an app's behavior may change depending on the granted permissions, it needs to be tested under a wide range of granted permission combinations. At the state-of-the-art, in the absence of any automated tool support, a developer needs to either manually determine the interaction of tests and app permissions, or exhaustively re-execute tests for all possible permission combinations, thereby increasing the time and resources required to test apps and evaluate their results.

PATDroid is a tool for efficiently testing an Android app while taking the impact of permissions on its behavior into account.

Approach Overview

PATDroid performs a hybrid program analysis on both an app under test and its test suite to determine which tests should be executed on what permission combinations. Our experimental results show that PATDroid can signicantly reduce the testing time and resources, yet achieve comparable code coverage and fault detection capability as exhaustively testing an app under all permission combinations.

[PATDroid picture]

Using PATDroid in Action

Download PATDroid tool and user manual here.

Publications

More details about PATDroid can be found in our publication:

[seal's logo]
[uci's logo]