博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖
阅读量:2028 次
发布时间:2019-04-28

本文共 1790 字,大约阅读时间需要 5 分钟。

最近在复习软件测试的考试,每次到白盒测试这里都要为这几种逻辑覆盖方法感到头疼,这次终于决定好好整理出来。

逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。

根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为:语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖

这里以一个题目引入:

if (a>1) and (b = 0)then x = x / aif (a = 2) or (x > 1)then x = x+ 1
  1. 根据以上程序段画出程序流程图
  2. 按照要求给出六种逻辑覆盖的测试用例

程序流程图如下:

在这里插入图片描述

注:[可执行语句:流程图中的矩形;判定:流程图中的菱形]

(一) 语句覆盖:选择足够多的测试用例,使程序中每一可执行语句至少执行一次

分析:需要覆盖的可执行语句为x = x / ax = x + 1

测试用例如下:

a = 2, b = 0, x = 3   覆盖路径:a-c-e

(二) 判定(分支)覆盖:选择足够多的测试用例,使程序中每个判定的"真"和"假"至少执行一次

分析:需要覆盖的路径为:a-c-e和a-b-da-b-e和a-c-d

测试用例如下:

答案1a = 2, b = 0, x = 3 覆盖路径:a-c-ea = 1, b = 0, x = 1 覆盖路径:a-b-d答案2a = 2, b = 1, x = 1 覆盖路径:a-b-ea = 3, b = 0, x = 3 覆盖路径:a-c-d

(三) 条件覆盖:选择足够多的测试用例,使程序中每个判定的每个条件取得各种可能的结果

分析:需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 2)

测试用例如下:

答案1a = 2, b = 0, x = 3 取到a>1(同时满足a=2), b = 0, x>1a = 1, b = 1, x = 1 取到a <= 1(同时满足a!=2), b != 0, x <= 2答案2a = 1, b = 0, x = 3 取到a <= 1(同时满足a!=2), b = 0, x >1a = 2, b = 1, x = 1 取到a>1(同时满足a=2), b != 0, x<=2

(四) 判定/条件覆盖:选择足够多的测试用例,使程序中每个判定的"真"和"假"至少执行一次,并且每个判定的每个条件取得各种可能的结果。

分析:

  1. 需要覆盖的路径为:a-c-e和a-b-da-b-e和a-c-d

  2. 需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 2)

测试用例如下:

a = 2, b = 0, x = 3 覆盖路径a-c-e 取到a>1(同时满足a=2), b = 0, x>1a = 1, b = 1, x = 1 覆盖路径a-b-d 取到a <= 1(同时满足a!=2), b != 0, x <= 2

(五) 条件组合覆盖:选择足够多的测试用例,使程序中所有判定的条件组合至少执行一次

分析:需要覆盖的条件组合为:

a > 1, b = 0a>1, b != 0a <= 1, b = 0a <= 1, b != 0a = 2, x > 1a = 2, x< = 1a != 2, x > 1a != 2, x <= 1

测试用例如下

a = 2, b = 0, x = 3 覆盖组合1,5a = 2, b = 1, x = 1 覆盖组合2,6a = 1, b = 0, x = 3 覆盖组合3,7a = 1, b = 1, x = 1 覆盖组合4,8

(六) 路径覆盖:选择足够多的测试用例,使程序中每条路径至少执行一次

分析:需要覆盖的路径为:a-c-e、 a-b-d、 a-b-e、 a-c-d

a = 2, b = 0, x = 3 覆盖路径:a-c-ea = 1, b = 0, x = 1 覆盖路径:a-b-da = 2, b = 1, x = 1 覆盖路径:a-b-ea = 3, b = 0, x = 3 覆盖路径:a-c-d

转载地址:http://yznaf.baihongyu.com/

你可能感兴趣的文章
ComBSTR的使用
查看>>
硬回车与软回车[转]
查看>>
OpenCV Windows7 VC6.0安装以及HelloWorld
查看>>
python升级导致yum命令无法使用的解决办法
查看>>
vi/vim 中如何在每行行首或行尾插入指定字符串
查看>>
linux 查看端口被哪个程序占用
查看>>
socket
查看>>
Spring下载地址
查看>>
Linux日志2
查看>>
VS的路径变量[转]
查看>>
MFC消息处理[转]
查看>>
cookie被禁止后怎样使用session的解决方案
查看>>
Eclipse 部分快捷键失效解决
查看>>
Bootstrap 自定义弹框
查看>>
MyBatis 分页插件 PageHelper 使用方法
查看>>
AbstractQueuedSynchronizer 源码分析
查看>>
分布式以客户为中心的一致性
查看>>
java 注解
查看>>
CAS:乐观锁实现
查看>>
压力测试工具Apache ab
查看>>