计算机软考软件测评师考试小结(21)
基本路径覆盖
(1) 概述
l 在程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径的集合,然后据此设计测试用例
l 设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次
(2) 程序控制流图
l 控制流图是描述程序控制流的一种方式
l 图形符号:圆圈代表一个结点 表示一个或多个无分支的语句或源程序语句
l 边和点圈定的部分叫做区域。当对区域计数时,图形外的一个部分也应记为一个区域
l 判断语句中的条件为复合条件时,即条件表达式由一个或多个逻辑运算符连接的逻辑表达式(a and b),则需要改变复合条件的判断为一系列只有单个条件的嵌套的判断
图形符号图所示
(3) 程序环路复杂性
l 程序的环路复杂性即McCabe复杂性度量,简单的定义为控制流图的区域数
l 从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界
l 独立路径:包括一组以前没有处理的语句或条件的一条路径
l 通常环路复杂性可用以下三种方法求得:
v 将环路复杂性定义为控制流图中的区域数。
v 设E为控制流图的边数,N为图的结点数,则定义环路复杂性为 V(G)=E-N+2。
v 若设P为控制流图中的判定结点数,则有 V(G)=P+1。
(4) 基本路径测试步骤
l 以详细设计或源代码为基础,导出程序的控制流图
l 计算得到控制流图G的环路复杂性v(g)
l 确定线性无关的路径的基本集
l 生成测试用例,确保基本路径集中每条路径的执行