Selenium 学习(0.18)——软件测试之基本路径测试

1、基本路径法测试的概念

是一种白盒测试方法,它在程序控制流图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

要保证在测试中程序的每一个可执行语句至少执行一次
【这和语句覆盖区别在哪里呢?】
语句覆盖:基本思想:设计用例,使程序中的每个可执行语句至少执行一次。
Who can tell me, why?

**2、**基本路径法测试的步骤

1)画出控制流图

首先要画出控制流图【是用于描述程序控制流的一种图示方法,程序控制流图中只有两种图形符号一一圆圈和箭头线】。

圆圈:称为流图的一个节点代表一条或多条无分支的语句或源程序语句。

箭头线:称为边或连接代表控制流。

由边和节点所锁定的范围称为区域。

几个结构的控制流图

程序的控制流图突出了控制流结构,是流程图的简化。

2)计算程序圈复杂度

圈复杂度是环行复杂度,是一种为程序逻辑复杂度提供定量尺度的软件度量。它可以提供程序基本集的独立路径数量和确保所有语句至少执行一次的测试用例数量上界。

计算圈复杂度的方法

V(G) = 总的区域数 = 封闭区域数 + 开放区域数

V(G)= E(Edge) - N(Node)+2 = (边数-节点数+2)

V(G)= P + 1 (判定节点数+1)

3)导出独立路径

独立路径指和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路,它必须至少包含一条在本次定义路径之前不曾用过的边。

程序的圈复杂度V(G)值正好等于该程序基本路径集合中的独立路径的条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上限。

4)准备测试用例

确保基本路径集中的每一条路径的执行即一条独立路径对应产生一个测试用例

实操

java 复制代码
importjava.util.Scanner;
public class Test {
    public static void main(Stringl] args) {
        int a,b,c,max,min;
        Scanner input=new Scanner(System.in);
        System.outprintln("请输入三个整数:");
        a=input.nextInt0;
        b=input.nextInt0;
        c=input.nextInt0;
        System.out.println(a+"\t"+b+"\t"+c);
        if(a>b){
            max=a;
            min=b;
        }
        else{
            max=b;
            min=a;
        }
        if(max<c){
            max=c;
        }
        else if(min>c){
            min=c;
        }
        System.out.println("max="+max+"nmin="+min);
    }
}

1、 画出控制流程图

再转化为控制流图

2、计算程序圈复杂度

V(G)=总的区域数= 4

V(G)= E-N+2 = (边数-节点数+2) = 10-8+2 = 4

V(G)= (定节点数+1) = P+1 = 3+1 = 4

3、导出独立路径

由于圈复杂度是 4 ,所以独立路径也是4

A、1 - 2 - 4 - 5 - 8

B、1 - 3 - 4 - 5 - 8

C、1 - 3 - 4 - 6 - 7 - 8

D、1 - 3 - 4 - 6 - 8

4、准备测试用例

终于又把自己强迫了一下!(我有点很困了)

相关推荐
西岸行者19 小时前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意20 小时前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码21 小时前
嵌入式学习路线
学习
毛小茛1 天前
计算机系统概论——校验码
学习
babe小鑫1 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms1 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下1 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。1 天前
2026.2.25监控学习
学习
im_AMBER1 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J1 天前
从“Hello World“ 开始 C++
c语言·c++·学习