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

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

        实操

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/305701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小梅哥Xilinx FPGA学习笔记22——ip核之FIFO

目录 一&#xff1a;章节说明 1.1 FIFO IP简介 1.2 FIFO Generato IP 核信号框图 1.3 实验任务 二&#xff1a;FIFO 写模块设计 2.1 简介 2.2 模块框图 2.3 模块端口与功能描述 2.4 写模块代码 三 FIFO 读模块设计 3.1 简介 3.2 模块框图 3.3 模块端口与功…

STM32-04-STM32时钟树

STM32时钟树 什么是时钟&#xff1f; 时钟是具有周期性的脉冲信号&#xff0c;最常用的是占空比50%的方波。&#xff08;时钟是单片机的脉搏&#xff0c;搞懂时钟走向及关系&#xff0c;对单片机使用至关重要&#xff09;。 时钟树 时钟源 2个外部时钟源 高速外部振荡器(HSE…

Go采集1688网站数据对比商品价格

最近看了下多多和1688的一些商品价格&#xff0c;发现好多店铺都是无货源拿货一件发货&#xff0c;这就导致层层叠加价格翻了不知道几倍&#xff0c;真所谓多花钱办的事还是一样&#xff0c;因此&#xff0c;今天我就通过一个爬虫程序监控对应商品价格&#xff0c;了解行业龙头…

Python从入门到网络爬虫(OS模块详解)

前言 本章介绍python自带模块os&#xff0c;os为操作系统 operating system 的简写&#xff0c;意为python与电脑的交互。os 模块提供了非常丰富的方法用来处理文件和目录。通过使用 os 模块&#xff0c;一方面可以方便地与操作系统进行交互&#xff0c;另一方面页可以极大增强…

HCIA-Datacom题库(自己整理分类的)_15_VRP平台多选【9道题】

1.VRP操作平台存在哪些命令行视图? 用户视图 接口视图 协议视图 系统视图 2.以下哪些存储介质是华为路由器常用的存储介质 SDRAM NVRAM Flash Hard Disk SD Card 解析&#xff1a;Hard Disk是硬盘&#xff0c;一般网络设备没有。 3.VRP支持通过哪几种方式对路由器…

Influxdb2修改管理员密码

通过恢复管理员令牌来重置InfluxDB2管理员的密码 1.找到数据库的配置文件 一般为config.json 2.配置文件的的blod文件配置 3.在这个混合文本和二进制json文件中搜索已知的用户名或token之类的字符串。 例如&#xff1a; "id":"0bd73badf2941000","…

DES算法(Python实现)

一、具体描述 基于计算机高级语言&#xff08;如C语言&#xff09;实现DES算法 二、名词术语与相关知识 DES算法 DES&#xff08;Data Encryption Standard&#xff09;是一种对称加密算法&#xff0c;被广泛应用于数据加密领域。它使用64位密钥和64位明文&#xff0c;通过…

2707. 字符串中的额外字符

牛客网&#xff1a;https://leetcode.cn/problems/extra-characters-in-a-string/description/?envTypedaily-question&envId2024-01-09 官方解题思路为动态规划或字典数优化&#xff1b; 这里引入Up主的解题思路&#xff08;递归&#xff09; 哔哩哔哩&#xff1a;https…

【书影观后感 十五】被讨厌的勇气

年底的闲暇时间阅读了此书&#xff0c;书虽然是老婆买的&#xff0c;但她也是一页没看&#xff0c;便宜我了。都说哲学是用来回答人生问题的&#xff0c;我想慢慢的是有了一些这方面的体悟了。这里摘一些书中的经典观点吧&#xff0c;大多数中国90后的一代可能都遇到过类似的问…

c++实现支持动态扩容的栈(stack)

1.在栈容量满时自动扩容: 支持自动扩容栈实现: // // myStack.hpp // algo_demo // // Created by Hacker X on 2024/1/9. //#ifndef myStack_hpp #define myStack_hpp #include <stdio.h> #include <string.h> //栈实现 //1.入栈 //2.出栈 //3.空栈 //4.满栈 …

Python算法例34 寻找丢失的数

1. 问题描述 给一个由1~n的整数随机组成的一个字符串序列&#xff0c;其中丢失了一个整数&#xff0c;本例将找到它。 2. 问题示例 给出n20&#xff0c;str19201234567891011121314151618&#xff0c;丢失的数是17。 3. 代码实现 def find_missing_number(n, string):nums…

PLSQL启动错误,缺失oci.dll文件如何解决

Oracle数据库启动的时候报错&#xff0c;无法打开 报错显示缺失dll文件 第一步&#xff1a;在网上找到可靠的下载文件地址&#xff1a; 官方网站下载对应版本的oci.dll 链接如下&#xff1a;https://www.oracle.com/database/technologies/instant-client/winx64-64-downloa…

2023年,To B资本航船走向哪了?

国内To B领域在去掉泡沫、结束资本狂欢之后&#xff0c;投资决策愈加理性。但与此同时&#xff0c;下滑的步伐正在放慢&#xff0c;交易数量和金额的降低逐渐放缓&#xff0c;市场逐渐走向稳定。 作者|斗斗 编辑|皮爷 出品|产业家 2023年&#xff0c;在一众业内人士的眼中&…

Java后端开发——SSM整合实验

文章目录 Java后端开发——SSM整合实验一、常用方式整合SSM框架二、纯注解方式整合SSM框架 Java后端开发——SSM整合实验 一、常用方式整合SSM框架 1.搭建数据库环境&#xff1a;MySQL数据库中创建一个名称为ssm的数据库&#xff0c;在该数据库中创建一个名称为tb_book的表 …

CentOS找回root密码

很悲伤&#xff0c;你忘记了root密码。。。 那就来重置它吧~ 1、在启动时选择操作系统&#xff1a;在引导过程中&#xff0c;选择CentOS操作系统并按下键盘上的任意键来停止引导。 2、 进入编辑模式&#xff1a;在启动菜单中&#xff0c;找到并选择要编辑的CentOS条目&…

Android14之解决刷机报错:Can not load Android system. Your data may be corrupt(一百七十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

银联扫码第三方支付接口申请:开启便捷支付新时代

随着移动支付的普及&#xff0c;越来越多的商家开始接受微信、支付宝等第三方支付平台的付款方式。然而&#xff0c;作为国内最大的银行卡组织&#xff0c;银联也在不断拓展其业务范围&#xff0c;推出了自己的扫码支付接口。本文将为您详细介绍银联扫码第三方支付接口的申请流…

Unity Editor实用功能:Hierarchy面板的对象上绘制按按钮并响应

目录 需求描述上代码打个赏吧 需求描述 现在有这样一个需求&#xff1a; 在Hierarchy面板的对象上绘制按钮点击按钮&#xff0c;弹出菜单再点击菜单项目响应自定义操作在这里的响应主要是复制对象层级路路径 看具体效果请看动图&#xff1a; 注&#xff1a; 核心是对Edito…

书生·浦语大模型实战营第二次课堂笔记

文章目录 什么是大模型&#xff1f;pip&#xff0c;conda换源模型下载 什么是大模型&#xff1f; 人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型 特点及应用&#xff1a; 利用大量数据进行训练拥有数十亿甚至数千亿个参数模型在各种任务重展现出惊人的性能 …

CHS_02.1.4+操作系统体系结构 二

CHS_02.1.4操作系统体系结构 二 操作系统的结构 上篇文章我们只介绍过宏内核 也就是大内核以及微内核分层结构的操作系统模块化是一种很经典的程序设计思想宏内核和微内核外核 操作系统的结构 上篇文章我们只介绍过宏内核 也就是大内核以及微内核 今年大纲又增加了分层结构 模块…