白盒测试技术:控制流与数据流覆盖
需积分: 31 64 浏览量
更新于2024-07-12
收藏 810KB PPT 举报
"新建项目向导-软件测试教程-宫云战_第3章"
本章节主要探讨了软件测试中的几种重要技术,包括白盒测试的控制流测试、数据流测试,程序插装以及程序变异测试。以下是这些知识点的详细说明:
**1. 控制流测试**
控制流测试是白盒测试的一种,它关注程序的控制结构,尤其是流程图中的路径。以下是控制流测试的一些关键概念:
- **有向图**:表示程序的控制流结构,其中节点代表程序的逻辑单元,边代表控制转移。
- **路径**:在有向图中,从一个节点到另一个节点的一系列边。
- **完整路径**:从程序开始到结束的路径。
- **简单路径**:不包含重复节点的路径。
- **基本路径**:控制流图中无法再分解为更短路径的简单路径。
- **子路径**:基本路径的一部分。
- **回路**:在有向图中形成循环的路径。
- **无回路路径**:不包含回路的路径。
- **连接**:确保程序中每个节点至少有一个进入和一个离开的路径。
- **覆盖**:通过一组测试用例实现对程序特定部分的执行,如语句覆盖、分支覆盖、路径覆盖等。
**2. 控制流覆盖准则**
- **语句覆盖准则**:每个语句至少被执行一次。
- **分支覆盖准则**:每个条件分支至少被取真和取假执行一次。
- **谓词测试**:针对复杂的条件组合,如原子谓词、分支-谓词覆盖和复合谓词覆盖。
- **原子谓词覆盖准则**:每个独立的逻辑操作至少有一次为真和一次为假。
- **分支-谓词覆盖准则**:每个条件和每个嵌套条件的组合都被测试。
- **复合谓词覆盖准则**:考虑多个条件的组合,确保所有可能的组合都被覆盖。
- **路径覆盖准则**:确保每个基本路径都至少被执行一次。
**3. 数据流测试**
数据流测试关注程序中数据的流动,包括变量的定义和引用:
- **定义性出现**:变量赋值的地方。
- **引用性出现**:变量被使用的(或其值被引用)地方。
- **定义覆盖测试准则**:确保每个变量的定义都被测试。
- **引用覆盖测试准则**:确保每个变量的引用都被测试。
- **定义-引用覆盖测试准则**:每个变量的定义和引用都被测试。
**4. 程序插装**
程序插装是在程序中插入额外代码以收集信息,例如覆盖率和测试用例的有效性度量,或进行断言检测。这涉及到确定插入点、所需探测点的数量等。
**5. 程序变异测试**
- **程序变异测试**:通过创建程序的变异版本(假设存在的错误),并比较原程序和变异版本的输出差异来评估测试用例的有效性。
- **程序强变异测试**:要求每个变异版本的输出都与原始程序不同,以此来确认测试用例的全面性。但这种方法可能消耗大量计算资源。
- **程序弱变异测试**:与强变异类似,但只关注那些能导致输出差异的特定部分的变异,减少了计算资源的需求。
通过理解和应用这些测试技术,软件测试工程师可以更有效地发现和定位代码中的错误,提高软件的质量和可靠性。
2021-10-02 上传
2013-03-22 上传
4282 浏览量
2019-10-11 上传
2011-12-10 上传
点击了解资源详情
琳琅破碎
- 粉丝: 17
- 资源: 2万+
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍