白盒测试
1. 图的基本概念
- 本课程限制只有一个开始一个结束
- 如何将一个软件抽象成为一个图,然后用测试来进行覆盖,是一个思考。
- 源代码:控制流、需求文档:有限状态机
- 多个初始节点、终止节点:使用亚节点
1.1. 路径
- 路径长度:边的个数
- 单点:0
- 测试路径:从开始节点到结束节点的路径
- 无法证明一条路径不可以被任何路径覆盖到
2. 图覆盖准则
- 可达:
- 语法可达:在语法中的图可达
- 语义可达:测试中可达
- 覆盖:
- 测试路径经过的结点
- 测试路径经过的边
- 结构覆盖:只关心点和边
- 数据流覆盖:点和边上已经有一些程序信息
2.1. 测试准则
- TR:测试需求:描述测试路径
- C:测试准则
- 对于测试准则C的一个测试需求集合,一个测试T满足C当切仅当TR中任意的测试需求,都被大的测试TR中的一个T满足
2.2. 隐含(Subsume)
- C1隐含C2:满足C1一定满足C2
- 一个准则隐含了另一个准则,并不意味着纠错能力更强
2.3. 结构化覆盖
- 边覆盖:覆盖小于等于1的子路径->问题
2.3.1. 顶点覆盖(VC)
- 能够覆盖所有可达顶点
2.3.2. 边覆盖(EC)
- 每一个可达边都被测试路径覆盖
- EC一定VC,但是VC不一定EC
2.3.3. 边对覆盖(EPC)
- 覆盖相邻的边
2.3.4. N路径覆盖(通用)
- N = 0:VC
- N = 1:EC
- N = 2:EPC
- N = 无穷:CPC