>
xml地图|网站地图|网站标签 [设为首页] [加入收藏]

【云顶在线娱乐网站】则上面的测试用例仍可以

- 编辑:云顶娱乐游戏平台官网 -

【云顶在线娱乐网站】则上面的测试用例仍可以

测试文章内容,包含一些测试语句,因为不包含足够的词语,所以必须输入足够的语句,才能正常的入库处理。

主要方法

  1. 逻辑驱动测试
  • 语句覆盖
  • 判定覆盖
  • 条件覆盖
  • 判定/条件覆盖
  • 条件组合覆盖
  1. 路径测试
  • 路径测试就是设计足够多的测试用例,覆盖被测试对象中的所有可能路径。这是最强的覆盖准则。
  • 基本路径测试:设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径。但在路径数目很大时,真正做到完全覆盖是很困难的,必须把覆盖路径数目压缩到一定限度。例如程序中的循环体只执行一次。

分支(判定)/条件覆盖

针对上面的问题引出了另一种覆盖标准——“分支(判定)/条件覆盖”,它的含义是:执行足够的测试用例,使得分支中每个条件取到各种可能的值,并使每个分支取到各种可能的结果。

  • 对例1的程序,前面的两个例子
    ① A=2,B=0,X=4 (沿ace路径)
    ② A=1,B=1,X=1 (沿abd路径)
    是满足这一标准的。
  • 对例2,根据定义只需设计以下两个测试用例便可以覆盖8个条件值以及4个判断分支。
![](https://upload-images.jianshu.io/upload_images/938465-2838323b3da2208e.png)

分支(判定)/条件覆盖测试用例



分支/条件覆盖从表面来看,它测试了所有条件的取值,但是实际上某些条件掩盖了另一些条件。
  • 例如对于条件表达式(x>3)&&(z<10)来说,必须两个条件都满足才能确定表达式为真。
  • 如果(x>3)为假则一般的编译器不在判断是否z<10了。对于第二个表达式(x==4)||(y>5)来说,若x==4测试结果为真,就认为表达式的结果为真,这时不再检查(y>5)条件了。
  • 因此,采用分支/条件覆盖,逻辑表达式中的错误不一定能够查出来了。
一个方法:

图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。

独立路径

独立路径:至少沿一条新的边移动的路径

云顶在线娱乐网站 1

独立路径

  • ###### 第一步:画出控制流图

  • 流程图用来描述程序控制结构。

  • 可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。

  • 在流图中,每一个圆,称为流图的结点,代表一个或多个语句。

  • 一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。

  • 一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。

  • 由边和结点限定的范围称为区域

  • 计算区域时应包括图外部的范围。

![](https://upload-images.jianshu.io/upload_images/938465-0a2602acb5e8d1a0.png)

代码



![](https://upload-images.jianshu.io/upload_images/938465-b3e4f28c482c3755.png)

第一步
  • ###### 第二步:计算圈复杂度

圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目。独立路径必须包含一条在定义之前不曾用到的边。
有以下三种方法计算圈复杂度:

  1. 流图中区域的数量对应于环型的复杂性;
  2. 给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;
  3. 给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
![](https://upload-images.jianshu.io/upload_images/938465-da44feed01ae1cb1.png)

计算圈复杂度
  • ###### 第三步:导出测试用例

根据上面的计算方法,可得出四个独立的路径。(V(G)值正好等于该程序的独立路径的条数。)

路径1:4-14
路径2:4-6-7-14
路径3:4-6-8-10-13-4-14
路径4:4-6-8-11-13-4-14

根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。

  • ###### 第四步:准备测试用例

为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:

云顶在线娱乐网站 2

基本路径测试用例

必须注意,一些独立的路径,往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。

白盒测试基本要求

  • 保证一个模块中的所有独立路径至少被执行一次;
  • 对所有的逻辑值均需要测试真、假两个分支;
  • 在上下边界及可操作范围内运行所有循环;
  • 检查内部数据结构以确保其有效性。

路径测试

  • 对于例1,下面的测试用例则可对程序进行全部的路径覆盖。
![](https://upload-images.jianshu.io/upload_images/938465-ebde278645656a84.png)

路径测试测试用例
  • 对于例2,下面的测试用例则可对程序进行全部的路径覆盖。
![](https://upload-images.jianshu.io/upload_images/938465-b93d82ef84436427.png)

路径覆盖测试用例

测试覆盖标准

  1. 语句覆盖:是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次
  • 它是最弱的逻辑覆盖,效果有限,必须与其它方法交互使用。
  1. 判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次
  • 判定覆盖只比语句覆盖稍强一些,但实际效果表明,只是判定覆盖,还不能保证一定能查出在判断的条件中存在的错误。因此,还需要更强的逻辑覆盖准则去检验判断内部条件。
  1. 条件覆盖:执行足够的测试用例,使程序中每个判断的每个条件的每个可能取值至少执行一次
  • 条件覆盖深入到判定中的每个条件,但可能不能满足判定覆盖的要求。
  1. 判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果
  2. 条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次
  • 这是一种相当强的覆盖准则,可以有效地检
    查各种可能的条件取值的组合是否正确。
  • 它不但可覆盖所有条件的可能取值的组合,还可覆盖所有判断的可取分支,但可能有的路径会遗漏掉。
  • 测试还不完全。

判定覆盖

例1:
如果设计两个例子,使它们能通过路径ace和abd,或者通过路径acd和abe,就可达到“判定覆盖”标准,为此,可以选择输入数据为:
① A=3,B=0,X=1(沿路径acd执行)
② A=2,B=1,X=3(沿路径abe执行)
例2:
如果设计两个测试用例则可以满足条件覆盖的要求。测试用例的输入为:
x=4、y=5、z=5【a b d】
x=2、y=5、z=5【a c e】
上面的两个测试用例虽然能够满足条件覆盖的要求,但是也不能对判断条件进行检查,例如把第二个条件y>5错误的写成y<5,、上面的测试用例同样满足了分支覆盖。
注意:程序中含有判定的语句包括IF-THEN-ELSE、DO-WHILE、REPEAT-UNTIL等,除了双值的判定语句外,还有多值的判定语句,如PASCAL中的CASE语句、FORTRAN中带有三个分支的IF语句等。所以“分支覆盖”更一般的含义是:使得每一个分支获得每一种可能的结果

本文由云顶娱乐发布,转载请注明来源:【云顶在线娱乐网站】则上面的测试用例仍可以