هذا القطع الأثرية مخصصة للورقة: "اختبار إدخال متعدد لتطبيقات Android عن طريق بناء سياقات إطلاق النشاط".

Fax هي أداة اختبار متعددة الإدخال لاختبار تطبيقات Android ، والتي تقوم ببناء سياقات إطلاق النشاط للتطبيقات ويقترح إطار اختبار متعدد الإدخال.
يمكن العثور على الورقة pdf على 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}}
تثبيت Java 1.8
تثبيت ANT 1.9.16
تثبيت Python 2.7
يتطلب Fax مكتبة الارتباط الديناميكي Z3 بالإضافة إلى مكتبة الارتباط الديناميكي ل API Z3/Java.
قم بإعداد Android Environment (معلومات تثبيت Android SDK ، https://developer.android.com/) ، يجب أن يكون إصدار أدوات Android SDK أقل من 25.2.3.
قم بتشغيل "Java -version" ، "Python" ، "ant -version" ، Android إنشاء مشروع "للتحقق مما إذا كانت هذه الأدوات قد تم تكوينها بنجاح.
قم بإعداد جهاز Android أو محاكي وقم بتوصيله بك كمبيوتر. قم بتشغيل عنصر الإعداد "وضع المطور" واتركه "USB تصحيح الأخطاء".
استنساخ المشروع لجهاز الكمبيوتر الخاص بك.
للبدء السريع ، يمكنك التشغيل: runfax.sh أو runfax.bat
*لتعديل وقت الاستكشاف لـ FAX_EX ، يرجى تحديث المتغير exploration_time في ملف faxtool script run.py.
في ورقتنا ، يكون وقت الاستكشاف ساعة واحدة (3600). إذا كنت تريد التحقق السريع ، فاستخدم القيمة الافتراضية في الفاكس (60).
ضع المعالجة المسبقة وضع APK قيد الاختبار ضمن [APK_INPUT_DIR] ، واحصل على النتيجة في [APK_OUTPUT_DIR].
Python Script/prerocess.py [apk_input_dir] [apk_output_dir]
على سبيل المثال ، Python script/prerocess.py apk apk_procound
ثم سيتم كشف الأنشطة ، وسيتم تطبيق التطبيق ، ثم يتم تثبيته على الجهاز.
للتطبيقات المطلوبة تسجيل الدخول ، يمكنك تسجيل الدخول أولاً بعد التثبيت لتحسين تغطية الاستكشاف.
اختبار جيل Python البرنامج النصي/generatetestcases.py lib/fax0108.jar [apk_input_dir] [testcase_dir] [execute_info_dir] [max_number_of_path]
على سبيل المثال ، Python script/generatetestcases.py lib/fax0108.jar apk result_testgen executeinfo 10000
احصل على نتائج في مجلد [testcase_dir].
إطلاق الفاكس اختبار Python Script/Tnowsacts.py [testcase_dir] [launch_dir]
على سبيل المثال ، Python Script/Tnowsacts.py result_testgen result_launch
احصل على نتائج في مجلد [launch_dir].
اكتشف حوادث إطلاق الفاكس السيناريو/findCrashes.py [testcase_dir] [launch_dir]
على سبيل المثال ، Python Script/FindCrashes.py result_testgen result_launch
اختبار استكشاف الفاكس Python البرنامج النصي/FairAndRoidexploer.py [launch_dir] [explore_dir] [testcase_dir] [apk_output_dir] [ea/all]
اضبط EA إذا كنت ترغب في تعيين EA فقط كإدخال الاستكشاف.
اضبط كل شيء إذا كنت ترغب في تعيين جميع الأنشطة كإدخال استكشاف.
على سبيل المثال ، Python Script/FairAndRoidexploer.py result_launch result_explore result_testgen apk_procort all
احصل على نتائج في المجلد [استكشاف _dir].
اكتشف حوادث الاستكشاف الفاكس Python Script/FindCrashes.py [testcase_dir] [explore_dir]
على سبيل المثال ، Python Script/FindCrashes.py result_testgen result_explore
حساب نتيجة تغطية النصي Python/collectlogcat.py [testcase_dir] [explore_dir] [apk_output_dir]
على سبيل المثال ، python script/collectlogcat.py result_testgen result_explore apk_procorted