我是靠谱客的博主 执着项链,最近开发中收集的这篇文章主要介绍测试用例设计方法-- 白盒测试白盒测试概述基本路径覆盖,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

白盒测试概述

简介

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。

特点

 

 

 

白盒测试方法分为静态测试和动态测试。

静态测试是在测试过程中没有执行程序,主要方法如下:

  1. 桌面检查:找资深的同事检查代码
  2. 代码审查:以会议的形式,召集相关人员=参与,由会议召集人讲解代码逻辑实现
  3. 代码走查:以会议的形式,与会人都需要事先了解代码实现,通过会议的形式,一起讨论代码逻辑实现
  4. 代码扫描工具:根据代码规范设计工具,检查代码中不符合规范的语句。

动态测试是在在代码执行过程中完成测试。

主要测试方法如下:

逻辑覆盖 

通过对程序的逻辑结构的遍历,实现代码覆盖的方法。

覆盖率:

1. 逻辑覆盖包含:

 

 

  • 语句覆盖
  • 判定覆盖
  • 条件覆盖
  • 判定条件覆盖
  • 条件组合覆盖
  • 路径覆盖

基本路径覆盖

  • 语句覆盖

设计测试用例,使得程序中每条语句被覆盖。

语句覆盖率:

语句覆盖率=至少执行一次的语句的数量/可执行的语句总数

ITEM 指的是语句,条件,判定,判定条件,条件组合,路径等。

语句覆盖测试用例设计:看下面代码块和对应流程图如下:

测试用例设计如下:

输入

覆盖语句块

a=1 and b = 1 and c=-1

1,3,4

a=1 and b = -1 and c= 1

2,4

上面两个用例就可以覆盖所有代码块。

语句覆盖的局限性

当判定条件误写成 a>0 || b >0, 上述用例无法测试到该错误。

  • 判定覆盖

使得程序中的每一个判断至少获得一次和一次,使得程序流程图中的每一个真假分支至少被执行一次。

判定覆盖率:

【优点】:分支(判定)覆盖具有比语句覆盖更强的测试能力。同样分支(判定)覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

【缺点】:往往大部分的分支(判定)语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。

  • 条件覆盖

条件覆盖的含义是:不仅程序中的每个语句至少被执行一次,而且使每个判定表达式中的每个条件都取到各种可能的结果。

条件覆盖率

例如,

  • 案例代码中,有判定2个,条件3个条件结果6
  • 设计测试用例执行了5个条件结果,条件覆盖率是5/6.

判定条件定义如下:

  1. If(a>0 && b>0) 判定,记为P1,
  2. If(c>0)判定,记为P2
  3. a>0 记为 C1
  4. b>0 记为 C2
  5. c>0记为 C3

测试数据

C1

C2

C3

路径

a=1, b=1, c=1

T

T

T

 

a=-1, b=-1, c=0

F

F

F

 

  • 判定条件覆盖

判定条件覆盖是设计测试用例,使得判断中每个条件的所有可能取值(真假)至少执行一次,同时每个判断本身所有可能结果(真假)也至少执行一次。即同时满足100%的判定覆盖率和100%的条件覆盖率。

缺点是忽略了条件的组合情况。

判定条件覆盖率

例如:

  • 案例代码中有判定2个,条件3个,判定结果4个,条件结果6个
  • 设计测试用例执行了3个判定结果,5个条件结果,判定条件覆盖率是(3+5)/(4+6)

 

  • 条件组合覆盖

条件组合覆盖:设计测试用例使得被测程序中每个判定中条件结果的所有可能组合至少被执行一次。

条件组合覆盖率:

例如:

  • 案例代码中有判定2个,条件3个(判定1有2个条件,判定2有1个条件),判定1的条件组合为4个,判定2的条件组合为2个
  • 设计测试用例执行了5个条件组合,条件组合覆盖率为5/(4+2)

 

  • 路径覆盖

路径覆盖:设计测试用例,覆盖程序中所有可能的路径

路径覆盖率:

例如:

  • 案例中共有4条路径
  • 测试用例执行了3条路径,路径覆盖率为3/4.

路径覆盖的特点:

  1. 路径覆盖可以对程序进行彻底的测试,比前面五种覆盖面广
  2. 满足路径覆盖,不一定能满足条件覆盖,也不能满足条件组合覆盖。
  3. 当程序复杂度增加,(判定条件多且可能存在循环)测试开销太大,很难完实施全路径覆盖。

 

  • 基本路径覆盖

  • 基本路径测试法

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

  • 步骤

  1. 根据代码画出程序控制流图

2. 计算程序环路的复杂度

方法有三种:

  1. 控制流图中区域的数量对应于环形的复杂度
  2. 定义控制流图中的复杂度为V(G), V(G), = E- N + 2, E是流图中边的数量,N是流图中节点的数量,
  3. 定义控制流图中的复杂度为V(G), V(G), = P + 1,P是控制流图中判定节点的数量。

住:程序环路的复杂度就是基本路径的数量,

3. 导出可执行路径

4. 设计测试用例

 

最后,实际应用中,对于白盒测试中,测试用例设计,主要是采用基本路径覆盖发,条件组合覆盖法和判定条件覆盖法来进行测试用例的设计。

最后

以上就是执着项链为你收集整理的测试用例设计方法-- 白盒测试白盒测试概述基本路径覆盖的全部内容,希望文章能够帮你解决测试用例设计方法-- 白盒测试白盒测试概述基本路径覆盖所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(25)

评论列表共有 0 条评论

立即
投稿
返回
顶部