(四)动态白盒测试:基本路径测试方法

做~自己de王妃 提交于 2019-12-08 11:00:54

基本路径方法设计测试用例步骤
1、画出控制流程图
2、计算圈复杂度(环路复杂度)
3、整理基本路径集合
4、导出测试用例
一、常见结构的控制流图
控制流图是退化了的流程图,将流程图中执行语句、判定语句、开始、结束等退化成节点,将流程线退化成一个节点到另一个节点的带箭头的弧线
这里写图片描述
红色标出的是判定节点、蓝色标出的是区域

流图只有两种图形符号:
- 每一个圆称为流图的节点,代码一条或多条语句
- 箭头称为边或连接,代表控制流
- 包含条件的节点称为判定节点(也叫谓词节点),由判定节点发出的边必须终止于摸一个节点(判断是否为判定节点:该节点会有多个流出的边)
- 由边和节点限定的范围称为区域(图形外也算一个区域)
这里写图片描述

多个逻辑运算符的情况

  • 如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列只有但条件的嵌套的判断
  • 在程序流图中一系列的顺序执行语句可以合成为一个节点,但是对于多分支的判断则需要分界为独立的分枝,每个分支一个节点
    这里写图片描述
    二、计算圈复杂度(环路复杂度)
    圈复杂度是一种为程序逻辑复杂性提供定量测试的软件度量,该度量用于计算程序的基本的独立路径数,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边
    有以下三种方法计算圈复杂度:
  • 流图中区域的数量对应于环形的复杂度
  • 给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中节点的数量
  • 给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定节点的数量(仅限于不存在多分支语句情况)
    这里写图片描述
    三、整理基本路径集合
    首先要确定整体的开始(4)和结束(14),无论哪条路径,开始和结束必须是这两个节点
路径1:4--->14
路径2:4--->6--->7--->13--->4--->14  
(相对路径1多了:6,7,13)
路径3:4--->6--->8--->10--->13--->4--->14
(相对路径2多了8,10)
路径4:4--->6--->8--->11--->13--->4--->14
(相对路径3多了11)

这里写的路径是基本路径,并不是路径,路径还有比如4--->6--->8--->11--->13--->4--->7--->13--->4--->14(但是没有多节点或边,所以不是基本路径)

四、导出测试用例的原则
为了确保基本路径集中的每一条路径的执行,根据判断节点给出的条件,选择适当的数据以确保每一条路径可以被测试到。

注意:循环条件是iRecordNum-->0 先自减,然后判断是否大于0
测试用例编号1:
输入数据:iRecordNum=0 iType=1
预期结果:x=0 y=0

测试用例编号2:
输入数据:iRecordNum=1 iType=0
预期结果:x=2 y=0

测试用例编号3:
输入数据:iRecordNum=1 iType=1
预期结果:x=10 y=0

测试用例编号4:
输入数据:iRecordNum=1 iType=5
预期结果:x=20 y=0
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!