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

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

相关推荐
测试老哥几秒前
外包干了两年,技术退步明显。。。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
守护者17021 分钟前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
学会沉淀。30 分钟前
Docker学习
java·开发语言·学习
Rinai_R44 分钟前
计算机组成原理的学习笔记(7)-- 存储器·其二 容量扩展/多模块存储系统/外存/Cache/虚拟存储器
笔记·物联网·学习
吃着火锅x唱着歌44 分钟前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习
ragnwang1 小时前
C++ Eigen常见的高级用法 [学习笔记]
c++·笔记·学习
一条测试老狗1 小时前
【UI自动化】从WebDriver看Selenium与Appium的底层关联
selenium·appium·自动化
Web阿成2 小时前
3.学习webpack配置 尝试打包ts文件
前端·学习·webpack·typescript
雷神乐乐3 小时前
Spring学习(一)——Sping-XML
java·学习·spring