基本路径覆盖法是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。该方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。
程序的控制流图常用结构如下,其中符号○为控制流图的一个结点,表示一个或多个无分支的源程序语句。箭头为边,表示控制流的方向。
在选择或多分支结构中,分支的汇聚处应有一个汇聚结点;边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域;如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。
程序的环路复杂性:程序基本路径集中的独立路径数量,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。
独立路径:至少包含有一条在其它独立路径中从未有过的边的路径。
程序环路复杂性和区域数一致。
例如,在图示的控制流图中,一组独立的路径是:
path1:1 – 11
path2:1 - 2 - 3 - 4 - 5 - 10 - 1 – 11
path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 – 11
path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 – 11
路径 path1,path2,path3,path4组成了控制流图的一个基本路径集。
基本路径覆盖法步骤:
1. 从详细设计导出流图
2. 确定流图的环路复杂度
3. 确定独立路径的基本集
4. 导出测试用例,确保基本路径集中的每一条路径的执行
5. 根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到-用逻辑覆盖方法。