Dieses Artefakt gilt für das Papier: "Mehrfacheingabetests von Android-Anwendungen durch Konstruktion von Aktivitätsstartkontexten".

Fax ist ein Tool mit mehreren Eingängen zum Testen von Android-Anwendungen, das Aktivitätsstartkontexte für Apps erstellt und ein Testen mit mehreren Eingaben vorschlägt.
Das Papier -PDF finden Sie unter https://hanada31.github.io/pdf/icse20_fax.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}}
Installieren Sie Java 1.8
ANT 1.9.16 einbauen
Installieren Sie Python 2.7
Fax erfordert die Z3 Dynamic Link Library sowie die dynamische Linkbibliothek für die Z3/Java -API.
Bereiten Sie die Android -Umgebung (Android SDK -Installationsinformationen, https://developer.android.com/) vor, die Version von Android SDK -Tools sollte weniger als 25.2.3 sind.
Führen Sie "Java -Version", "Python", "Ant -Version", "Android Create Project" aus, um zu überprüfen, ob diese Tools erfolgreich konfiguriert sind.
Bereiten Sie ein Android -Gerät oder einen Emulator vor und schließen Sie es an Ihren Computer an. Schalten Sie den Einstellungselement "Entwicklermodus" ein und lassen Sie "USB -Debugging" ein.
Klonen Sie das Projekt auf Ihren Computer.
Für den schnellen Start können Sie ausführen: runfax.sh oder runfax.bat
*Um die Explorationszeit von fax_ex zu ändern, aktualisieren Sie bitte die variable exploration_time in Datei faxtool script run.py.
In unserer Zeitung beträgt die Explorationszeit eine Stunde (3600). Wenn Sie eine schnelle Validierung wünschen, verwenden Sie den Standardwert im Fax (60).
Preprocess setzen die APK unter die [apk_input_dir] und erhalten Sie das Ergebnis in die [apk_output_dir].
python script/prerocess.py [apk_input_dir] [apk_output_dir]
z.
Dann werden die Aktivitäten ausgesetzt, die App wird instrumentiert und dann auf dem Gerät installiert.
Bei den erforderlichen Anmeldungen können Sie sich erst nach der Installation anmelden, um die Explorationsabdeckung zu verbessern.
Testgenerierung Python -Skript/Generatetestcases.py lib/fax0108.jar [apk_input_dir] [testcase_dir] [execute_info_dir] [max_number_of_path]
z.
Ergebnisse im Ordner [testcase_dir] erhalten.
Fax -Start -Test Python script/launchacts.py [testcase_dir] [LOUND_DIR]
z.
Erhalten Sie Ergebnisse im Ordner [LOUND_DIR].
Abstürze für das Fax erfassen Python -Skript/findCrashes.py [testcase_dir] [LOUND_DIR]
z.
Fax -Explorationstest Python -Skript/Fairandroidexploer.py [LOUND_DIR] [Explore_dir] [testcase_dir] [apk_output_dir] [EA/All]
Setzen Sie EA, wenn Sie nur EA als Explorationseintrag festlegen möchten.
Stellen Sie alle fest, wenn Sie alle Aktivitäten als Explorationseintrag festlegen möchten.
z. B. Python Skript/fairandroidexploer.py result_launch result_explore result_testgen apk_processed alle
Ergebnisse im Ordner erhalten [explore_dir].
Erkennen von Abstürzen für Fax -Exploration Python Skript/findCrashes.py [testcase_dir] [explore_dir]
z.
Berechnen Sie die Abdeckungsergebnis Python Skript/CollectLogcat.py [testcase_dir] [explore_dir] [apk_output_dir]
EG, Python Skript/CollectLogcat.py result_testgen result_explore apk_processed