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、准备测试用例

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

相关推荐
sunoo-2292 小时前
51单片机学习Day2:数码管动态扫描、定时器与中断系统深度总
单片机·嵌入式硬件·学习·51单片机
宣宣猪的小花园.2 小时前
【机器学习】从机理建模到数据学习:机器学习究竟替代了什么
人工智能·学习·机器学习
上海心泾国际物流有限公司2 小时前
我在几个医疗器械仓库记下的一组温湿度数据
经验分享·笔记·学习·健康医疗·交通物流
for_ever_love__2 小时前
python基础语法学习: requirements.txt
开发语言·python·学习
for_ever_love__3 小时前
python基础语法学习: 动态类型
开发语言·python·学习
边境悍匪4 小时前
蜗牛学苑 Java 智能体学习 Day40|Vue 工程化与 ElementPlus 思维导图复盘
java·vue.js·学习
传奇开心果编程5 小时前
【xilem0.4基础语法学与练】第22课:on_click / on_change 与手势系统的实战
学习·rust·前端框架
Cho1yon5 小时前
【AI Agent 第十五期: AI Agent 从 0 到 1 系统学习大纲】
javascript·人工智能·学习
Tinyfacture6 小时前
postman抓取登录鉴权码token及设置全局变量
测试工具·postman
my_daling7 小时前
紫光FPGA远程升级注意事项(关于GTP_CFGCLK原语使用问题)
笔记·学习·fpga开发