一句话:将 concolic 测试引入模型层,为 UML 状态机模型自动生成高覆盖率测试用例。
模型驱动工程虽提升了抽象层次,但信息物理系统的 UML 模型往往规模庞大、组件通信复杂,其行为可能无限,因此需要在模型层直接生成高覆盖率测试用例,而无需理解或依赖底层代码生成器。已有 concolic 测试(具体执行与符号执行相结合的混合技术)在程序测试中广泛使用并能取得高覆盖率,但尚未用于软件模型。本文提出一种面向 UML 状态机的模型级 concolic 测试技术,并实现开源工具 mCUTE,集成于基于 UML-RT 的 MDE 工具 Papyrus-RT 中。论文描述了工具实现方式,并通过一组基准模型验证其有效性,报告了测试结果,表明该技术可在模型层生成高覆盖率的单元测试。
Model Driven Engineering (MDE) techniques raise the level of abstraction at which developers construct software. However, modern cyber-physical systems are becoming more prevalent and complex and hence software models that represent the structure and behavior of such systems still tend to be large and complex. These models may have numerous if not infinite possible behaviors, with complex communications between their components. Appropriate software testing techniques to generate test cases with high coverage rate to put these systems to test at the model-level (without the need to understand the underlying code generator or refer to the generated code) are therefore important. Concolic testing, a hybrid testing technique that benefits from both concrete and symbolic execution, gains a high execution coverage and is used extensively in the industry for program testing but not for software models. In this paper, we present a novel technique and its tool mCUTE1, an open source 2 model-level concolic testing engine. We describe the implementation of our tool in the context of Papyrus-RT, an open source Model Driven Engineering (MDE) tool based on UML-RT, and report the results of validating our tool using a set of benchmark models.
DOI 原文 ·
@inproceedings{paperbot5197,
title = {mCUTE: A Model-Level Concolic Unit Testing Engine for UML State Machines},
author = {Reza Ahmadi and Karim Jahed and Juergen Dingel},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00132}
}