Saved searches
Cancel Create saved search
Sign up Reseting focus
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
License
Notifications You must be signed in to change notification settings
willie331/Sapienz
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Go to file
Folders and files
Last commit message
Last commit date
Latest commit
History
View all files
Repository files navigation
Sapienz

Sapienz: Multi-objective Automated Testing for Android Applications This is a research prototype of the Sapienz approach for multi-objective automated testing for Android applications. Publication:
@InProceedings Applications", booktitle = "Proc. of ISSTA'16", year = "2016", pages = >
Installation
Simply clone the source code from this repository and apply the following environment configuration:
Environment Configration
- Python: 2.7
- Android SDK: API 19
- Linux: sudo apt-get install libfreetype6-dev libxml2-dev libxslt1-dev python-dev
- Mac OS: brew install coreutils for gtimeout
Install Python dependencies:
sudo pip install -r requirements.txt
Usage
python main.py
where apk_path is path to the subject apk under test
or you can specify source_folder_path for the subject app with source code
Subject Requirement:
- instrumented apk should be compiled and named with suffix "-debug.apk"
- closed-source/non-instrumented apk name should end with ".apk"
Settings
- ANDROID_HOME and WORKING_DIR in settings.py should be set before starting Sapeinz.
Output
- for open-sourced apps, outputs are stored under the given source folder
- for closed-sourced apps, output are stored under _output
/coverages - Coverage reports are stored here /crashes - Crash reports and corresponding test cases that lead to the crashes (and also recorded videos files when using real devices) /intermediate - Generated test event sequences for each generation; logbook of the genetic evolution; and line charts showing the variation trend for each objectives.
Notes
- This implementation has been tested with Android 4.4, running on Ubuntu 14.04 and Mac OS 10.10
- If measure statement coverage for open-sourced apps, the subjects need to be processed to support EMMA instrumentation: (Please refer to Dynodroid https://code.google.com/archive/p/dyno-droid/)
- This version is ready for emulators. It also supports real devices, you may need to adapt related code for your specific devices.