🤖 AI Summary
Existing GUI automation testing tools suffer from high maintenance overhead, fragility under UI changes, and tight coupling with specific UI frameworks. To address these challenges, this paper proposes a decoupled testing methodology integrating the ViewModel architectural pattern with Behavior-Driven Development (BDD). It pioneers the synergistic combination of a projectional Domain-Specific Language (DSL)—implemented using JetBrains MPS—with ViewModel and BDD for GUI test modeling. The DSL enables declarative specification and validation of presentation logic independently of the underlying UI framework (e.g., JavaFX), thereby fully separating test specifications from implementation details. Evaluated on a task manager case study, the approach automatically generates executable test code, substantially reducing specification authoring effort and eliminating test breakage caused by UI refactoring. Empirical evaluation demonstrates significant improvements in test maintainability, robustness against interface evolution, and practical applicability.
📝 Abstract
Automated GUI testing is crucial in ensuring that presentation logic behaves as expected. However, existing tools often apply end-to-end approaches and face challenges such as high specification efforts, maintenance difficulties, and flaky tests while coupling to GUI framework specifics. To address these challenges, we introduce the ViMoTest tool, which leverages Behavior-driven Development, the ViewModel architectural pattern, and projectional Domain-specific Languages (DSLs) to isolate and test presentation logic independently of GUI frameworks. We demonstrate the tool with a small JavaFX-based task manager example and generate executable code.