一句话:提出 DemGen,利用设计文档和视觉模型自动生成 IFML GUI 模型,并评估其支持基于模型测试的实用性。
GUI 模型描述应用的外观与交互,但手工构建成本高且易错;已有自动化方法多通过逆向工程从代码抽象,所得模型与代码一致,难以用于基于模型的测试(MBT)发现功能缺陷,同时 UI/UX 设计文档常被忽视。本文提出 DemGen,以设计文档为输入,结合计算机视觉预训练模型与规则校正机制识别 GUI 元素及其预期行为,并转换为符合 IFML 的正式 GUI 模型。作者与产业伙伴在商业应用上评估了元素识别和模型生成的效果与效率,并比较手工、自动与混合建模,分析生成模型在 MBT 任务中的实用性。
GUI models encapsulate the desired visual appearance and interactive behaviors of applications, facilitating various downstream tasks like model-based testing (MBT). Manually constructing high-quality GUI models is not only labor-intensive and costly but also prone to errors, particularly as applications evolve and require frequent model updates. Existing automated approaches for GUI model generation heavily rely on reverse engineering, where the models are abstractions of the code. As a result, they are not suitable for MBT to test functional issues because they are consistent with the code. Meanwhile, valuable development artifacts such as UI/UX design documents, which reflect design intentions, are often overlooked. In this paper, a novel approach named DemGen is proposed to seek a unique pathway for GUI model generation. Leveraging design documents, DemGen employs computer vision pre-trained models in conjunction with a rule-based correction mechanism to identify GUI elements and their intended behaviors as defined in those documents. Subsequently, the identified content is transformed into a formal GUI model adhering to the IFML modeling language. Our evaluation, conducted in collaboration with an industry partner on commercial applications, demonstrates the effectiveness and efficiency of DemGen in GUI element recognition and GUI model generation. Moreover, we conducted a comparative analysis of manual, automated, and hybrid modeling techniques, assessing the usefulness of generated models on MBT tasks.
DOI 原文 ·
@inproceedings{paperbot8410,
title = {Beyond Manual Modeling: Automating GUI Model Generation Using Design Documents},
author = {Shaoheng Cao and Renyi Chen and Minxue Pan and Wenhua Yang and Xuandong Li},
booktitle = {ASE},
year = {2024},
doi = {10.1145/3691620.3695032}
}