该文物用于论文:“通过构建活动启动上下文对Android应用程序进行多项访问测试”。

传真是用于测试Android应用程序的多项访问测试工具,该工具构建了为应用程序启动上下文的活动,并提出了一个多入门的测试框架。
可以在https://hanada31.github.io/pdf/icse20_fax.pdf上找到该论文PDF
@InProceedings{jiwei:icse:2020,
author = {Jiwei Yan and Hao Liu and Linjie Pan and Jun Yan and Jian Zhang and Bin Liang},
title = {Multiple-Entry Testing of Android Applications by Constructing Activity Launching Contexts},
booktitle = {Proceedings of the 42nd International Conference on Software Engineering},
series = {ICSE '20},
year = {2020},
pages={457-468}}
安装Java 1.8
安装ANT 1.9.16
安装Python 2.7
传真需要Z3动态链接库以及Z3/Java API的动态链接库。
准备Android环境(Android SDK安装信息,https://developer.android.com/),Android SDK工具的版本应低于25.2.3。
运行“ java -version”,“ python”,“ ant -version”,“ android create project”,以检查这些工具是否已成功配置。
准备Android设备或模拟器,并将其连接到计算机。打开设置项目“开发人员模式”,并允许“ USB调试”。
克隆项目到您的计算机。
为了快速启动,您可以运行:runfax.sh或runfax.bat
*要修改FAX_EX的探索时间,请更新文件faxtool script run.py中的变量exploration_time。
在我们的论文中,探索时间为一个小时(3600)。如果需要快速验证,请在传真(60)中使用默认值。
预处理将APK放在[apk_input_dir]下进行测试,并在[apk_output_dir]中获取结果。
python脚本/prerocess.py [apk_input_dir] [apk_output_dir]
例如,python脚本/prerocess.py apk apk_processed
然后将暴露活动,将仪器进行仪器,然后安装在设备上。
对于登录所需的应用程序,您可以在安装后首先登录以改善勘探覆盖范围。
测试生成python脚本/generateTestCases.py lib/fax0108.jar [apk_input_dir] [testcase_dir] [execute_info_dir] [max_number_of_path]
例如,python脚本/generateTestcases.py lib/fax0108.jar apk result_testgen executeinfo 10000
在文件夹[testcase_dir]中获取结果。
传真启动测试python脚本/launchActs.py [testcase_dir] [auginn_dir]
例如,python脚本/launchActs.py result_testgen result_launch
获取结果文件夹[lashe_dir]。
检测传真启动python脚本/findcrashes.py [testcase_dir] [aunplion_dir]的崩溃
例如,python脚本/findcrashes.py result_testgen result_launch
传真探索测试Python脚本/fairandroidexploer.py [lunage_dir] [explore_dir] [testcase_dir] [apk_output_dir] [ea/all]
设置EA,如果您只想将EA设置为勘探条目。
如果要将所有活动设置为探索条目,请全部设置。
例如,python脚本/fairandroidexploer.py result_launch result_explore result_testgen apk_processed
在文件夹[Explore_dir]中获取结果。
检测传真勘探python脚本/findcrashes.py [testcase_dir] [Explore_dir]的崩溃
例如,python脚本/findcrashes.py result_testgen result_explore
计算覆盖范围结果python脚本/collectlogcat.py [testcase_dir] [Explore_dir] [apk_output_dir]
例如,python脚本/collectlogcat.py result_testgen result_explore apk_processed