Sapienz: Multi-objective Automated Testing for Android Applications
This is a prototype of the Sapienz approach for multi-objective automated testing for Android applications. Please note that this repository is no longer maintained.
Publication:
@InProceedings{mao:sapienz:16,
author = "Ke Mao and Mark Harman and Yue Jia",
title = "Sapienz: Multi-objective Automated Testing for {Android} Applications",
booktitle = "Proc. of ISSTA'16",
year = "2016",
pages = {94--105}
}
Simply download the artefact here and apply the following environment configuration:
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
python main.py <apk_path | source_folder_path>
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
Output content:
/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.