Fastbot is developed based on Google Monkey, combining machine learning and reinforcement learning tools to serve as a stability-targeted testing tool. https://github.com/bytedance/Fastbot_Android
ICSE2020/AST paper: https://2020.icse-conferences.org/details/ast-2020-papers/25/Fastbot-A-Multi-Agent-Model-Based-Test-Generation-System
- Fastbot is compatible with multiple Android OS systems, including original Android, Android 5-11 and a variation of modified Andriod-based system by domestic manufacturers.
- Inherited from original Monkey, Fastbot allows for fast action insertion as high as 12 actions per second.
- Expert system is equipped with the ability to customize deeply based on needs from different business lines.
- Fastbot is a model-based-testing tool. Model is build via graph transition with the consideration of high reward choice selection.
- Fastbot supports non-standard widgets by computer vision techniques such as YOLOv3, ocr and cv segmentation.
Fastbot-ios: Under construction
- Make Android version on your device or emulator is Android 5, 6, 7, 8, 9, 10, 11
- Push framework.jar and monkeyq.jar into your device, most likely /sdcard
adb push framework.jar /sdcard
adb push monkeyq.jar /sdcard
adb -s device_vendor_id shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p package_name --agent robot --running-minutes duration(min) --throttle delay(ms) -v -v
-s device_vendor_id # if multiple devices allowed, this parameter is needed; otherwise just optional
-p package_name # app package name under test, the package name for the app under test can be acquired by "adb shell pm list package", once the device is ensured for connection by "adb devices"
--agent robot # strategy selected for testing, no need to modify
--running-minutes duration # total amount time for testing
--throttle delay # time lag between actions
--bugreport # log printed when crash occurs
--output-directory /sdcard/xxx # folder for output directory
- Observed Java crash, ANR and native crash will be written in to /sdcard/crash-dump.log
- Observed ANR will be written into /sdcard/oom-traces.log
- Total activity list will be printed in shell after Fastbot job done, together with explored activity list and rate of coverage in this job run.
- Equation for total activity coverage: coverage = exploredActivity / totalActivity * 100%
- Be aware for totalActivity: The list totalActivity is acquired through framework interface PackageManager.getPackageInfo. Contained activities in the list includes many abandoned, invisible or not-reachable activities.
For more Details, please refer to the handbook in Chinese version