软件测试学习二——白盒测试

时间:2024-03-26 10:33:40

白盒测试

白盒测试:基于源程序或代码结构的逻辑,生成测试用例,以尽可能的多发现

静态测试

自动方法:编译器——语法错误
人工方法:代码检查和静态结构分析

动态测试

  • 程序桩 通过往被测试程序中插入一些操作来进行测试的目的。 常用方法:添加打印语句
  • 逻辑覆盖 要求测试人员对程序结构有较为清楚的认识, 常用方法:分支,条件等覆盖
  • 基本路径测试:导出基本的可执行路径集合,进而设计测试用例。

程序桩

程序桩测试需要考虑的问题:

  1. 探测哪些信息
  2. 在程序的什么部位设置探测点
  3. 需要设置多少个探测点

逻辑覆盖

语句覆盖:选择足够多的测试用例,每个语句都至少被执行一次(比较弱的测试标准)
判定覆盖:选择足够多的测试用例,使得程序中的每个分支都至少被执行一次(不一定满足每个条件都覆盖)
条件覆盖:选择足够多的测试用例,使得程序中的每一个条件都至少被执行一次(不一定每个判定都覆盖)
判定/条件覆盖:结合条件覆盖和判定覆盖,使得判定中每个条件取到各种的值,并使每个判定取到各种可能的结果。
条件组合覆盖:每个判定中条件的各种可能组合都至少出现一次(相当强的覆盖则。)

基本路径

程序控制流程图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

4个步骤:

  1. 程序的控制流图。
  2. 圈(环)复杂度,程序的环路复杂性可导出程序基本路径集合中的独立路径数目,这是确定测试用例的上界。
  3. 导出独立路径:根据圈复杂度和程序结构得到独立路径。
  4. 准备测试用例,设计用力数据输入和预期结果,确保基本路径中的每一条路径的执行。

控制流图符号:
边和节点圈定的区域叫做区域,对区域计数时,图形外的区域也记为一个区域

第一步:根据控制流程图画出控制流图
软件测试学习二——白盒测试
9个结点,11条边,4个区域。
第二步:计算圈复杂度:V(G)=结点数-边数+2=区域个数
第三步:计算独立路径:至少沿一条新的边移动的路径。
第四步:设计测试用例,每一个独立路径应该有一个测试用例。