MBTModelGenerator: Automated Reverse Engineering of Test Models from Clickstream Data for Model-Based Testing of Web Applications
Vahid Garousi, Alper Bu\u{g}ra Kele\c{s}, Yunus Balaman, Sasidhar Matta, Zafar Jafarov, Aytan M\"ovs\"umova, Atif Namazov

TL;DR
This paper presents MBTModelGenerator, an open-source tool that automates reverse engineering of test models from web clickstream data, significantly reducing manual effort and facilitating easier adoption of model-based testing for web applications.
Contribution
It introduces an automated, open-source approach and tool for generating MBT models from user clickstream data, streamlining the testing process for web applications.
Findings
Reduced MBT model creation effort by over 90%.
Generated models accurately reflect user navigation flows.
Tool is actively used in industrial testing projects.
Abstract
Context: Model-Based Testing (MBT) was first introduced in 1970's, and has the potential to improve efficiency and effectiveness of testing. However, its adoption-especially for web applications-has been hindered by the effort required to manually design MBT models, and keep them updated. Objective: Based on the above challenge in a real industrial context, this study introduces an automated approach to reduce that effort by reverse engineering MBT models from clickstream data captured during users' interaction with web applications. Method: We have developed and present in this paper an open-source tool, named MBTModelGenerator, which logs user interactions via a lightweight JavaScript module in the front-end, and transmits them to a REST API backend. These interactions are then transformed into directly executable MBT models in the input format of an open-source MBT tool named…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
