基于模型的测试工具研究综述
立即解锁
发布时间: 2025-08-24 00:06:56 阅读量: 15 订阅数: 26 AIGC 


计算机体系结构与节能设计技术综述
# 基于模型的测试工具研究综述
## 1. 测试基础概念
### 1.1 需求覆盖
需求覆盖要求测试套件能够覆盖所有需求,确保系统的各项需求都得到了测试。
### 1.2 临时测试用例规范
测试工程师除了构建模型外,还需用正式符号编写测试用例规范,以此确定要生成哪些测试。
### 1.3 随机和随机准则
这类准则特别适用于环境模型,因为环境决定了被测系统的使用模式。例如,随机模型可用于指定被测系统的预期使用情况。在生成测试时,根据模型输出转移的概率分布触发转移,优先生成概率较高的测试用例。
## 2. 测试生成方法
### 2.1 手动测试
由人工测试人员手动编写测试输入和预期测试结果描述,是一种临时的测试过程。
### 2.2 随机生成
这是最简单的测试用例自动化方法,通过对系统输入空间进行采样来生成测试用例。
### 2.3 图搜索算法
如节点或弧覆盖算法等专用图搜索算法,提供系统的有价值轨迹或路径作为测试用例。
### 2.4 模型检查
通过模型检查技术验证或反驳模型所有可能执行的属性,实现测试用例的自动生成。
### 2.5 符号执行
使用一组输入值运行系统,使符号轨迹能够代表许多完全实例化的轨迹。
### 2.6 定理证明
该方法可用于检查基于状态的模型中作为转移保护条件(布尔条件)的公式的可满足性。
以下是测试生成方法的总结表格:
| 生成方法 | 描述 |
| --- | --- |
| 手动测试 | 人工编写测试输入和预期结果 |
| 随机生成 | 对输入空间采样生成测试用例 |
| 图搜索算法 | 用图搜索算法提供测试用例轨迹 |
| 模型检查 | 验证或反驳模型属性生成测试用例 |
| 符号执行 | 用符号轨迹代表实例化轨迹 |
| 定理证明 | 检查转移保护条件公式可满足性 |
## 3. 测试技术
### 3.1 在线测试
测试生成和测试执行立即依次进行,即每个生成的测试用例立即执行,之后再生成新的测试用例。被测系统的输出可能会影响测试生成算法。
### 3.2 离线测试
测试用例生成和测试执行在不同且分离的步骤中完成。例如,可以在运行任何组成测试用例之前生成整个测试套件(对应特定准则的一组测试用例)。
下面是测试技术的 mermaid 流程图:
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([开始]):::startend --> B{测试技术}:::process
B --> C(在线测试):::process
B --> D(离线测试):::process
C --> E(生成测试用例 -> 立即执行 -> 生成新测试用例):::process
D --> F(生成整个测试套件 -> 执行测试用例):::process
E --> G([结束]):::startend
F --> G
```
## 4. 测试映射
### 4.1 抽象测试
抽象测试用例不能直接在被测系统上运行,因为模型元素与底层系统元素之间没有映射。
### 4.2 可执行测试
在这种情况下,基于模型的测试工具包含连接模型和被测系统实现的转换规则。
## 5. 模型基测试工具研究综述
### 5.1 工具筛选
最初确定了 49 个基于模型的测试工具,经过排除标准筛选后,保留了 26 个工具,再通过手动搜索补充 7 个工具,最终得到 33 个工具。排除标准如下:
- 包含从代码而非规范模型开始的基于模型的测试方法。
- 未报告基于模型的测试工具在案例研究中的应用。
- 未报告建模符号、测试生成方法、测试选择标准、测试映射(如抽象或可执行)和测试工件。
### 5.2 工具分类
这 33 个工具根据建模符号、测试生成方法、测试技术、测试选择标准、测试工件和测试映射进行分类,具体信息如下表所示:
| 工具 | 模型 | 建模符号 | 生成方法 | 技术 | 选择标准 | 工件 | 映射 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| TestMaster | EFSM | 基于转移 | 未指定 | 离线 | 测试用例规范 | 功能行为 | 可执行测试 |
| GOTCHA | C♯FSM | 基于转移 | 模型检查 | 离线 | 结构模型覆盖 | 功能行为 | 抽象测试 |
| GraphWalker | FSM | 基于转移 | 图搜索 | 离线和在线 | 需求覆盖、结构模型覆盖 | 功能行为 | 可执行测试 |
| TestCast | UML | 基于转移 | 图搜索 | 离线 | 需求覆盖、结构模型覆盖 | 功能行为 | 可执行测试 |
| NModel | C♯FSM | 基于转移 | 模型检查 | 在线和离线 | 需求覆盖、结构模型覆盖、数据覆盖 |
0
0
复制全文
相关推荐









