2020-软件测试-白盒测试

白盒测试

1. 图的基本概念

  1. 本课程限制只有一个开始一个结束
  2. 如何将一个软件抽象成为一个图,然后用测试来进行覆盖,是一个思考。
  3. 源代码:控制流、需求文档:有限状态机
  4. 多个初始节点、终止节点:使用亚节点

1.1. 路径

  1. 路径长度:边的个数
    1. 单点:0
  2. 测试路径:从开始节点到结束节点的路径
  3. 无法证明一条路径不可以被任何路径覆盖到

2. 图覆盖准则

  1. 可达:
    1. 语法可达:在语法中的图可达
    2. 语义可达:测试中可达
  2. 覆盖:
    1. 测试路径经过的结点
    2. 测试路径经过的边
  3. 结构覆盖:只关心点和边
  4. 数据流覆盖:点和边上已经有一些程序信息

2.1. 测试准则

  1. TR:测试需求:描述测试路径
  2. C:测试准则
  3. 对于测试准则C的一个测试需求集合,一个测试T满足C当切仅当TR中任意的测试需求,都被大的测试TR中的一个T满足

2.2. 隐含(Subsume)

  1. C1隐含C2:满足C1一定满足C2
  2. 一个准则隐含了另一个准则,并不意味着纠错能力更强

2.3. 结构化覆盖

  1. 边覆盖:覆盖小于等于1的子路径->问题

2.3.1. 顶点覆盖(VC)

  1. 能够覆盖所有可达顶点

2.3.2. 边覆盖(EC)

  1. 每一个可达边都被测试路径覆盖
  2. EC一定VC,但是VC不一定EC

2.3.3. 边对覆盖(EPC)

  1. 覆盖相邻的边

2.3.4. N路径覆盖(通用)

  1. N = 0:VC
  2. N = 1:EC
  3. N = 2:EPC
  4. N = 无穷:CPC

2020-软件测试-白盒测试
https://spricoder.github.io/2020/07/07/2020-Software-Test/2020-Software-Test-%E7%99%BD%E7%9B%92%E6%B5%8B%E8%AF%95/
作者
SpriCoder
发布于
2020年7月7日
许可协议