基于依赖引导的TGG实现一致性测试用例生成
1 引言
模型转换是模型驱动工程(MDE)方法的重要组成部分,其正确性至关重要。在关系型模型转换方法中,可能会因错误的操作化实现而产生错误,即操作化未符合转换规范。
一致性是指源模型S经转换实现为目标模型T后,S与T还需根据关系规范相关联(若规范是双向的,则反之亦然)。Triple Graph Grammar(TGG)方法是关系型模型转换方法的重要代表。虽然在一定程度上,TGG及其相应操作化的一致性可通过形式推理证明,但通常不确定实现是否正确实现了描述一致操作化的每个形式概念,且TGG形式化通常未涵盖实现依赖的所有技术细节和额外优化。因此,需要对实现进行一致性测试。
已有一个用于TGG实现自动一致性测试的框架,它能自动生成和执行测试用例。测试用例由源模型(测试输入)和预期目标模型(测试预言)组成。该框架采用随机生成测试用例的方法,执行TGG实现以转换源模型,并将创建的目标模型与预期目标模型进行比较,若检测到差异,则发现了一致性错误。然而,随机生成方法在处理复杂TGG时难以实现完整的规范覆盖,且测试模型可能比实际需要的大很多,不利于调试。
本文提出了一种不同的测试用例生成方法,该方法由TGG规则之间的依赖关系引导,可实现复杂TGG的完整规范覆盖,且测试用例尽可能小,有助于找出一致性错误的原因。
2 三元图语法概述
三元图语法(TGG)是一种用于双向模型转换和模型同步的关系型方法。TGG结合了源模型、目标模型和对应模型的三种传统图语法,对应模型明确存储源模型和目标模型元素之间的对应关系。
2.1 示例元模型
以下是示例元模型:
| 元模型类
超级会员免费看
订阅专栏 解锁全文
25

被折叠的 条评论
为什么被折叠?



