Replication Package and Evaluation Results of Booster

Read full text
Authors: Chenxu Liu, Junheng Wang, Zihe Song, Wei Ming Yang, ying zhang, Tao Xie
Cited by: 0

Abstract

# Booster## About Booster Booster is a GUI trace reduction approach that focuses on reducing lengthy GUI traces automatically generated by web GUI testing tools in an effective and efficient manner. Booster is motivated by existing program reduction approaches that leverage code constraints to reduce invalid trials, as well as our observation that actions in GUI traces often form circuits at different levels of abstraction. To capture these constraints, Booster performs multi-level state abstraction on the traces. It then treats the circuits in the abstracted state transition graph as reduction candidates to efficiently reduce the traces. Booster is equipped with a novel Time-Guided Hierarchical Delta Debugging (TGHDD) algorithm to guide the reduction process. This algorithm enhances the traditional HDD algorithm by estimating the execution time of each reduction candidate and prioritizing the most time-consuming ones to accelerate the overall reduction. ## Structure of This Repository - The folders named "Tools\_*\_version": Containing the source code of Booster, the modified version of SimplyDroid, and scripts for running stability tests on our trace subjects. - The folder named "Trace Subjects": Contains the scripts of the traces and the corresponding failures triggered by the traces. - The folder named "Results & Logs": Containing all results and logs generated by SimplyDroid, DD, Booster, and the ablation versions of Booster. All results reported in our paper are included in this folder. - The file named "all_failures_distinct": Containing the deduplicated failures triggered by our trace subjects. Each failure is assigned with a serial number. The corresponding relation between traces and failures can be found in Table 2 in our paper and in the file named "Trace Name to Serial Number". - The file named "Trace Name to Serial Number": Providing the corresponding relation among trace name, trace serial number and failure serial number, as mentioned in Table 2 in our paper. ## Using Booster We have uploaded the source code of Booster and SimplyDroid in the folders named "Tools\_*\_Version", which can be run simply by downloading and configuring the Python environment. The two versions of source code are mainly difference by the "replay_agent" module, where WebExplor uses Selenium to replay traces and WebRLED uses PlayWright ### Installation Create Conda virtual environment & install python (3.10) dependencies ```bashconda create -n Booster python=3.10conda activate Booster``` ### Deploying the web application subjects The five web application subjects (Dimeshift, Pagekit, Petclinic, Phoenix, Retroboard) used in our work are widely used by existing work, and can be collected from Docker Hub (https://hub.docker.com/u/dockercontainervm). Please download the docker images of these application subjects. - Dimeshift: `docker pull dockercontainervm/dimeshift:latest`- Pagekit: `docker pull dockercontainervm/pagekit:latest`- Petclinic: `docker pull dockercontainervm/petclinic:latest`- Phoenix: `docker pull dockercontainervm/phoenix-trello:latest`- Retroboard: `docker pull dockercontainervm/retroboard:latest` ### Run Stability Test on Traces In order to confirm the stability of trace subjects to ensure a stable and trustable result, please first run stability test on the traces. - Download the traces and put them under a folder named "dataset" in the ReplayStabilityTest folder. - Run the script replay.py to replay each trace for ten times. - Run the scan_result.py to get traces with success rate higher than 0.8. ### Using Booster for Reduction - Put stable traces with target failures under a folder named "stable" in the Booster project.- Run main.py to run reduction for all traces. If you want to run single-level reduction, please uncomment the code between # Single level reduction and # Multi level reduction If you want to run circuit-level reduction only, pleace comment the code between "logger.log("starting action level reduction")" and "f.close()" If you want to run ablation versions that use DD or HDD for reduction, please uncomment the corresponding import line in graph.py (lines 8-10). ### Using SimplyDroid for Reduction - Put stable traces with target failures under a folder named "dataset" in the SimplyDroid project.- Run run_all.py to run reduction for all traces. If you want to run reduction using DD or LHDD, please change the method name in the "methods" list (line 8)

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
6 January 2026