10、基于测试用例多样性降低模型驱动测试成本

基于测试用例多样性降低模型驱动测试成本

1. 案例研究描述

研究聚焦于一个安全关键控制系统中的典型安全监控组件,该组件用 C++ 实现,并以 UML 状态机建模,辅以约束条件来明确状态不变量和保护条件。此组件是与传感器和执行器交互的反应式系统的典型代表。系统的初始版本及后续维护版本由公司专家和研究团队共同开发与验证。

最新且正确的 UML 状态机代表了该组件的最新行为,包含 1 个正交状态、17 个简单状态、6 个简单 - 复合状态,最大层次级别为 2。未扁平化的状态机有 61 个转换,扁平化后有 70 个简单状态和 349 个转换。

将这个 UML 状态机作为输入提供给测试用例生成工具(TRUST),基于全转换覆盖原则,自动生成了 281 条测试路径及对应的可执行测试用例。在本次案例研究中,若一条测试路径能检测到故障,那么该路径的任何有效测试数据都能检测到该故障。因此,每条测试路径对应一个测试用例,且测试路径的故障检测率(FDR)等同于对应测试用例的 FDR。这些测试用例的平均执行时间达数分钟,执行全部 281 个测试用例极为耗时。

研究使用了 15 个有故障的代码版本,每个版本仅引入一个真实故障。这些故障是开发者在维护过程中引入的,并在实验中重新引入到最新版本中。故障类型包括转换上的错误保护条件、错误的状态不变量、缺失的转换以及状态中的错误 OnEntry 动作。在 281 个测试用例中,207 个无法检测到任何故障,74 个至少能检测到一个故障。对于 15 个有故障的版本,每个测试用例平均检测到 0.72 个故障,最多为 5 个。每个故障平均由 13 个测试用例检测到,其中 9 个故障仅能由 3 个测试用例检测到,2 个故障可由 65 个测试用例检测到。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值