白盒测试用例设计方法学习笔记(二)----基本路径测试法

2023-11-18

转载请注明出处。

白盒测试用例设计方法主要分为两种:1.逻辑覆盖法;2.基本路径测试法。
本文主要对基本路径测试法的相关进行整理。

基本路径测试法

基本路径测试法 是在程序控制流图的基础上通过分析控制构造的环境复杂性导出基本可执行路径的集合,从而设计测试用例的方法。用这种方法设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。

基本路径测试法的步骤

1.绘制程序流程图,导出程序的控制流图;
2.计算程序的圈复杂度;
3.确定线性独立路径集合;
4.生成测试用例。

控制流图的图形符号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简单实例介绍

第一步是绘制程序流程图,导出程序的控制流图

为了更加直观地了解和记忆基本路径测试法,下面我展示一个简单的例子。首先展现的是程序流程图。

程序流程图

下面展示的是根据程序流程图导出的程序控制流图。
在这里插入图片描述

以上就是基本路径测试法的第一步:绘制程序流程图,导出程序的控制流图。

第二步就是计算程序的圈复杂度

首先我们先来理解什么是圈复杂度。
圈复杂度是一种代码复杂度的衡量标准,在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。(概念来源:百度百科)

那么理解完了圈复杂度的概念,我们接下来就要知道圈复杂度的计算方法。
计算公式为:V(G)=m-n+2
其中m是程序控制流图中的边的数量,n是其结点数量。
那么为了容易理解和记忆,我们看图。
在这里插入图片描述

图中有11条边,9个结点。那么计算出的这份程序控制流图的圈复杂度就是
V=11-9+2=4

圈复杂度还有另外一种算法,就是看程序控制流图将直面分成了几部分,如图所示。
在这里插入图片描述
我们可以看到如图所示,该程序控制流图将直面分为了4个封闭的部分,因此可以得出结论,该程序控制流图的圈复杂度为4

第三步是确定线性独立集合

那么根据上图所示的我们绘制的程序控制流图,我们可以确定该流图的线性独立路径的基本集合为:
路径1:初始化→A→输出非三角形;
路径2:初始化→A→B→输出一般三角形;
路径3:初始化→A→B→C→输出等腰三角形;
路径3:初始化→A→B→C→输出等边三角形。

第四步就是生成测试用例

根据上图我们生成的最终测试用例为
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

白盒测试用例设计方法学习笔记(二)----基本路径测试法 的相关文章

  • [Binospace] Google-MegaStore的解读

    MegaStore是Google在BigTable之上实现了一个跨机房高可用的数据库 它提供了类似DB的数据分布 索引的功能 实现了在EntityGroup内部以及EntityGroup之间的事务性 并且通过Paxos协议实现在DC之间多备
  • 解决Uncaught SyntaxError: Unexpected reserved word

    解决思路 首先 我运行项目报错 我查看了一下node版本 是否太低 如果是14版本的话 那么node需要升级 目前 node已经升级到19 升级到16即可 无需太高 更新完node版本之后 发现它还是报错 然后接着从网上搜报错 经历无数次的
  • 【I2C】Linux使用GPIO模拟I2C

    文章目录 1 I2C GPIO系统架构简介 2 如何使能I2C GPIO驱动 2 1 config配置 2 2 dts配置 2 3 测试验证 3 简单分析i2c gpio c驱动 3 1 解析设备树 3 2 配置SDA和SCL 3 3 注册
  • vue进度条

  • 金九银十之面试闲谈

    文章目录 前言 面试流程 资料总结 刷题指南 个人经验总结 寄语 前言 今年的金九银十带着几分不确定性来了 加上各个大厂hc的收紧 今年的金九银十很难恢复往日的 荣光 不过肯定还是有很多毕业生或者其他原因的朋友们出来找工作 面试流程 面试流
  • Sharding-JDBC分布式事务总结(四)之BASE事务(Seat框架中——AT模式的介绍以及理解)

    Sharding分布式事务之BASE事务 Seat框架中 AT模式 1 什么是BASE事务 2 Seata框架的AT模式 2 1介绍 2 2原理 2 3特性 写隔离与读隔离 AT模式的 写隔离 读隔离 2 4优势 相较于XA事务 2 5启动
  • Windows设置本地DNS域名解析Hosts文件的方法

    我们需要先了解DNS解析查询的顺序 在用户输入域名之后 DNS解析查询的顺序是下面这样的 1 浏览器会首先查看自身的缓存 如果浏览器缓存中有对应的解析记录 直接返回结果 2 如果浏览器没有缓存 电脑会查看本地操作系统的缓存 如果有记录 直接
  • 2021我们相约一起用.NET改变Windows软件世界

    目录 成为C 版主 互联网启示录 改变 NET桌面应用 从替换Application Run开始 现在 让我们开始吧 令人惊讶的FirstApp exe 新起点从第一个Web页面开始 成为C 版主 不管最终是出于什么原因 我成为了C 论坛版
  • Basic Level 1034 有理数四则运算 (20分)

    题目 本题要求编写程序 计算 2 个有理数的和 差 积 商 输入格式 输入在一行中按照 a1 b1 a2 b2 的格式给出两个分数形式的有理数 其中分子和分母全是整型范围内的整数 负号只可能出现在分子前 分母不为 0 输出格式 分别在 4
  • MEM工程管理硕士的含金量与就业前景?

    MEM工程管理硕士的含金量与就业前景 修改 13年7月毕业 工作半年 想知道MEM现在的含金量怎么样 比起普通硕士而言呢 毕业前景如何 社会认可度高不高 我现在就比较想考这个 想在多学习学习 还有没有其他较好的选择 修改 举报 1 条评论
  • [4G&5G专题-123]:5G培训部署篇-1-5G网络架构与关键技术

    作者主页 https blog csdn net HiWangWenBing 文章出处 https blog csdn net HiWangWenBing article details 118437789 目录 第1部分 5G概述 第2部
  • HDMI之EDID使用说明

    Q1 为什么要写这篇文章 A1 在最近的工作中遇到了不少问题 其中很多都是和EDID相关的 可以说 作为一家以 显示 为生的企业 我们时时刻刻在与EDID打交道 EDID这东西很简单 但是如果不了解其基本原理和概念的话 会给我们的工作带来不
  • 服务器内存占用率76%,IT运维常见问题之一:服务器内存占有率高

    登录服务器一看 服务器也很卡 打开任务管理器 一看内存占有率99 了 在仔细一查看是 数据库占用了大量内存 打开数据库一看是部署的时候没有对数据库实例设置 最大服务器内存 下面就分享一下SQL Server数据库占用过高内存的处理方法 一
  • extern详解

    extern 关键字 extern是C语言中的一个关键字 一般用在变量名前或函数名前 作用是用来说明 此变量 函数是在别处定义的 要在此处引用 extern这个关键字大部分读者应该是在变量的存储类型这一类的内容中 遇到的 下面先分析C语言不
  • java获取接口的流_Java请求Http协议接口,流式请求,流式接收

    package com test gov supervision processor gd gz import com alibaba fastjson JSON import com alibaba fastjson JSONArray
  • 2022年 hust OJ 最新搭建方式

    文章目录 一 准备环境 二 hust oj 搭建 三 踩坑 一 准备环境 1核2G 服务器一台 腾讯云 阿里云均可 现在可能买不到了 2核2G 的也可以 xshell windterm 连接服务器的工具 二 hust oj 搭建 HustO
  • 【Python百日基础系列】Day77 - Pandas可视化Cufflinks图表库(一)

    文章目录 一 Cufflinks入门 1 1 Cufflinks简介 1 2 前置安装plotly 1 3 Cufflinks安装 1 4 Pycharm解决AttributeError 1 4 1 错误现象 1 4 2 解决方法 1 4

随机推荐