Cet artefact est destiné à l'article: "tests à entrée multiple des applications Android en construisant des contextes de lancement d'activité".

La fax est un outil de test à entrants multiples pour tester les applications Android, qui construit des contextes de lancement d'activité pour les applications et propose un cadre de test de main-d'œuvre multiple.
Le papier PDF peut être trouvé sur 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}}
Installer Java 1.8
Installer Ant 1.9.16
Installer Python 2.7
Fax nécessite la bibliothèque de liens dynamiques Z3 ainsi que la bibliothèque de liens dynamiques pour l'API Z3 / Java.
Préparer Android Environment (Android SDK Installation Informations, https://developer.android.com/), la version des outils Android SDK devrait inférieure au 25.2.3.
Exécutez "Java -Version", "Python", "Ant -Version", "Android Create Project" pour vérifier si ces outils sont configurés avec succès.
Préparez un appareil ou un émulateur Android et connectez-le à votre ordinateur. Allumez l'élément de réglage "Mode développeur" et autorisez "Débogage USB".
Clone le projet sur votre ordinateur.
Pour un démarrage rapide, vous pouvez exécuter: runfax.sh ou runfax.bat
* Pour modifier le temps d'exploration de Fax_Ex, veuillez mettre à jour la variable exploration_time dans le fichier faxtool script run.py.
Dans notre article, le temps d'exploration est d'une heure (3600). Si vous voulez une validation rapide, utilisez la valeur par défaut dans Fax (60).
PRÉPROSSEZ met l'APK à tester sous le [APK_INPUT_DIR] et obtenez le résultat dans le [APK_Output_Dir].
python script / prérocess.py [apk_input_dir] [apk_output_dir]
par exemple, python script / prérocess.py apk apk_processed
Ensuite, les activités seront exposées, l'application sera instrumentée, puis installée sur l'appareil.
Pour les applications requises de connexion, vous pouvez vous connecter d'abord après l'installation pour améliorer la couverture d'exploration.
Test Generation Python Script / GenerateTestCases.py Lib / Fax0108.jar [apk_input_dir] [TestCase_Dir] [EXECUTE_INFO_DIR] [MAX_NUMBER_OF_PATH]
par exemple, python script / generatestCases.py lib / fax0108.jar apk result_testgen executeinfo 10000
Obtenez des résultats dans le dossier [Testcase_DIR].
Test de lancement de télécopie Python Script / LaunchActs.py [TestCase_DIR] [Launch_DIR]
par exemple, Python Script / LaunchActs.py result_testgen Result_launch
Obtenez des résultats dans le dossier [Launch_DIR].
Détecter les plantages pour le lancement de Fax Python Script / Findcrashes.py [TestCase_DIR] [Launch_DIR]
par exemple, python script / findcrashes.py result_testgen result_launch
Test d'exploration de fax python script / fairandroidexploer.py [lancement_dir] [explore_dir] [testcase_dir] [apk_output_dir] [ea / all]
Définissez EA si vous souhaitez définir uniquement EA comme entrée d'exploration.
Définissez tout si vous souhaitez définir toutes les activités comme entrée d'exploration.
par exemple, python script / fairandroidexploer.py result_launch result_explore result_testgen apk_processed
Obtenez des résultats dans le dossier [explore_dir].
Détecter les plantages pour l'exploration de fax python script / findcrashes.py [testcase_dir] [explore_dir]
par exemple, python script / findcrashes.py result_testgen result_explore
Calculer le résultat de la couverture python script / collectionlogcat.py [testcase_dir] [explore_dir] [apk_output_dir]
par exemple, python script / collectionlogcat.py result_testgen result_explore apk_processed