软件测试(基本路径测试、环形复杂度、路径覆盖)

您所在的位置:网站首页 独立节点数等于什么 软件测试(基本路径测试、环形复杂度、路径覆盖)

软件测试(基本路径测试、环形复杂度、路径覆盖)

2024-07-11 08:23| 来源: 网络整理| 查看: 265

程序集中独立路径的确定方法

标题 如图所示的控制流图,采用基本路径测试法,给出此程序的基本集: 环形复杂性是一种为程序逻辑复杂性提供定量测量的软件度量。当该度量用于基本路径测试方法,计算所得的值给出了程序基本集的独立路径的数量,这是为了所有语句至少执行一次而必须进行的测试数量的上界 。(注意,基本路径测试方法只是保证语句覆盖,即所有语句都能够至少执行一次,而不保证路径覆盖(此处路径覆盖指从起点到终点所有能够排列的路径,尤其当遇到循环,路径覆盖的数量还跟循环次数有关,当循环次数过大,采用路径覆盖的条数将非常多,难以实际执行)) 三种方法计算环形复杂性: 1.给定控制流图G的环形复杂性——CC(G),流图中区域的数量。 2.给定流图G的环形复杂性——CC(G),定义为CC(G)=E-N+2,E是流图中边的数量,N是流图节点数量。 3.给定流图G的环形复杂性——CC(G),也可以定义为CC(G)=P+1,P是流图G中原子判定节点的数量。

环形复杂度=3,因此程序基本集中包含的独立路径的数量为3,但此独立路径集合中独立路径的组合方式可能不唯一,以此题为例: 程序基本集1: path1:1 2 4 5 7 path2:1 2 4 6 7 path3:1 3 4 5 7 (或1 3 4 6 7,即覆盖3语句) 若对此仍有疑惑,尝试添加path4:1 3 4 6 7,根据程序集中独立路径的含义,即从入口到出口的多次执行中,每次至少有一个语句是新的,未被重复的,也即每次至少要经历一条从未走过的弧,因为path1-3中1 3 4 6 7都有并且path4中没有新的语句是path1-3中没有的,因此path3两种选择方法任选一个即可,但不能为4个。环形复杂度=程序集中独立路径的数量,但集合中独立路径的组合方式不固定,只要满足定义即可。

程序基本集2: path1:1 3 4 5 7 path2:1 3 4 6 7 path3:1 2 4 5 7(或1 2 4 6 7,即覆盖2语句)

注意:基本路径测试方法并不是要将所有从起点到终点所有方式的路径都覆盖,而是覆盖所有语句,(也即图中所有连线都能覆盖,而并不要求所有连线进行排列组合)保证程序基本集中使得所有语句至少执行一次。

环形复杂度的值是所有语句至少执行一次而必须进行的测试数量的上界 的理解:

在这里插入图片描述 如图所示,原子判定节点数+1=环形复杂度=2,因此程序集中有两条独立路径分别为: path1:1 3 path2:1 2 3 但是path2方式一次就能够使得所有语句执行至少一次,因此说环形复杂度的值是使得所有语句至少执行一次而必须进行的测试数量的上界。由于没有更好的方式确定测试数量的下界,在此牺牲测试用例的数量来保证所有语句至少执行一次。

路径覆盖法存在的问题: 在这里插入图片描述 在设计白盒测试时,若设计若干个测试用例,然后运行被测程序,要求覆盖程序中所有可能的路径,而当程序中有循环时候,如上图所示,一次循环就有5种路径覆盖,总共有5^20种路径覆盖,上图中包含的不同执行路径数达5的20次方条,假定对每一条路径进行测试需要1毫秒,一年工作365 × 24小时,要想把所有路径测试完,需3170年。

测试中做到完全的路径覆盖是无法实现的,为解决这一难题只得把覆盖的路径数压缩到一定限度内,这就是基本路径覆盖。基本路径覆盖不是路径覆盖,根据定义,计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次,是语句覆盖。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3