白盒测试——基本路径测试

2023-11-16

基本路径测试是将程序流程图转化为控制流图,通过分析控制结构的环路复杂性,进而找出路径的基本独立集,最终导出测试用例

基本独立集:

从基本独立集导出的测试用例保证对程序中的每一条语句至少执行一次。

控制流图:

定义:

百度百科:    

    是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式表示一个过程内所有基本块执行的可能流向, 也能反映一个过程的实时执行过程。

个人理解:

  控制流图是顶点和有向边的集合。

  顶点分为:

        1. 初始节点Vb和结束节点Ve。初始节点入度为零(即没有进入初始节点的边),结束节点出    度为零(即没有出去的边)。

        2. 判断节点D。(即出度为二,例如if语句,while语句等)、

        3. 顺序节点S。(表示一块连续的语句群)

几种结构:

程序流程图如何转化为控制流图:

图中R1 R2 R3 R4 是将整个平面分成四个互不重叠的封闭区域。

基本路径:

基本路径就是从Vb到v1,v2......Ve的一条路径。(不包含重复的任意一段路)

例如:

P1:vb,v1,v2,v1,v2,ve   不是一条基本路径,因为v1->v2走了两边,重复。

P2:vb,v1,v2,v3,v1,v3,ve   是一条基本路径,虽然多次出现v1,v3,但是并未重复。

环路复杂性:

    用于基本路径测试,计算所得的值是程序基本集的独立路径数量,这个数量是确保程序中所有语句至少执行一次而必须进行测试数量的上界

计算方法:

1. 控制流图中的区域数量,例如上面图二被分为四个区域,因此复杂性为4。

2. 环路复杂性=E-N+2。E为控制流图中边的数量,N为节点数量。

3. 判定节点的数量加一。

例如:

导出测试用例:

从初始节点开始,沿着控制流图向结束节点前进。按照从简单到复杂依次找出所有路径。

图矩阵法:

        导出流图或者决定基本路径的过程都需要机械化或者自动化。为了开发这种软件,需要用到称为图矩阵的数据结构。

图矩阵:

        是一个正方形矩阵,它的大小(即行或列数)等于流图节点数。

        每行和每列都对应于标识的节点,矩阵项对应节点间的连接。

                ​​​​​​​

 

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

白盒测试——基本路径测试 的相关文章

  • 软件测试开发/全日制/测试管理丨接口测试抓包与 Mock/接口自动化测试

    在软件开发中 接口测试是确保系统各个组件之间协同工作的重要环节 接口测试抓包与Mock以及接口自动化测试相结合 能够更全面 高效地验证接口的正确性 性能和稳定性 从而打造一个稳健的接口生态系统 接口测试抓包 接口测试抓包是一种通过监控和记录
  • 等价类划分法

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 软件测试面试题分享 1000道软件测试面试题及答案 软件测试实战项目分享 纯接口项目 完整接口文档 软件测试实战项目分享 WEB 测试自动化项目实战 软件测试学习教程推荐
  • 【软件测试】学习笔记-脚本与数据的解耦 + Page Object模型

    本篇文章介绍GUI测试中两个非常重要的概念 测试脚本和数据的解耦 以及页面对象 Page Object 模型 测试脚本和数据的解耦 GUI自动化测试适用的场景 尤其适用于需要回归测试页面功能的场景 如果在测试脚本中硬编码 hardcode
  • 软件测试|Windows系统配置pytest+allure环境教程

    前言 allure可以输出非常精美的测试报告 也可以和pytest进行完美结合 不仅可以渲染页面 还可以控制用例的执行 本文我们将介绍Windows系统中如何配置allure环境 第一步 配置Java环境 因为 allure 的运行依赖于J
  • JMeter 批量接口测试

    一 背景 最近在进行某中台的接口测试准备 发现接口数量非常多 有6 70个 而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值 想了几种方案后 决定尝试使用JMeter的csv读取来实现批量的接口测试 二 脚
  • 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库 它允许编写 测试用例 时参数化 然后生成使测试失败的简单易懂的测试数据 可以用更少的工作在代码中发现更多的bug 安装 pip install hypothesis 如何设计 测试数据 通
  • 接口测试之Fiddler弱网测试

    前言 目前市面上的APP功能越来越丰富 移动端测试也越显为重要 因为用户在网速慢的情况下 你的网站 软件 总能出现各种各样的问题 请不要忽略这一点 针对在不同的网络情况下 接下来 本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试
  • 外包干了2个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 19年通过校招进入广州某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 测试工程师能否作为一份「终身职业」?30岁+怎么办?

    讨论 测试工程师可否作为一份终生的职业 这是我在论坛看到的一个讨论 你的答案是什么呢 我希望大家能认真思考后给出一个属于自己的答案 无论你是新手入门 还是资深专家 回答这个问题请不要凭一腔热血 也不用过分消极 别总和钱挂钩 平心而论即可 就
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 如何写好一个错误报告

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 做测试不会 SQL?超详细的 SQL 查询语法教程来啦!

    前言 作为一名测试工程师 工作中在对测试结果进行数据比对的时候 或多或少要和数据库打交道的 要和数据库打交道 那么一些常用的sql查询语法必须要掌握 最近有部分做测试小伙伴表示sql查询不太会 问我有没有sql查询语法这一块的文档可以学习
  • 外包干了2个月,技术倒退2年。。。

    先说一下自己的情况 本科生 20年通过校招进入深圳某软件公司 干了接近4年的 功能测试 今年国庆 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了3年的女朋
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自

随机推荐

  • 代理IP与网络安全在跨境电商中的关键作用

    跨境电商已成为全球商业的重要组成部分 然而 随之而来的网络安全问题也日益凸显 为了在海外市场取得成功 不仅需要优质的商品和服务 还需要稳定 安全的网络连接 本文将介绍如何运用Socks5代理IP技术解决这些挑战 1 代理IP与网络安全 网络
  • [技术讨论]PT100采样电路设计

    本来不论PT100还是PT1000 他们的采样电路网上都很多 而且之前直接用的是现成的MAX31865方案 奈何领导说太贵 用集成运放搭吧 领导动动嘴 属下跑断腿 于是各方论坛 度娘 终于整了个有希望的方案 仅以此文记述这段硬件方案设计的经
  • MySQL 中的 SET 与 ENUM 类型使用详解

    一 SET类型 在创建表时 就指定SET类型的取值范围 sql view plain copy 属性名 SET 值1 值2 值3 值n 其中 属性名 参数指字段的名称 值n 参数表示列表中的第n个值 这些值末尾的空格将会被系统直接删除 其基
  • IRET指令详解

    copy from http lion3875 blog 51cto com 2911026 532347 当使用IRET指令返回到相同保护级别的任务时 IRET会从堆栈弹出代码段选择子及指令指针分别到CS与IP寄存器 并弹出标志寄存器内容
  • alert获取输入框内容_js弹出输入框并且获取输入值

    prompt 方法用于与用户交互 提示用户输入信息的对话框 首先 看看prompt方法的语法形式 var val prompt str1 str2 以上代码中 此方法包含两个属性 str1 提示用户输入的信息 str2 用户输入文本信息默认
  • OpenAI最新官方ChatGPT聊天插件接口《插件示例demo》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(四)(附源码)

    Example plugins 插件示例demo 前言 Introduction 导言 Learn how to build a simple todo list plugin with no auth 了解如何构建一个简单的待办事项列表插
  • 钉钉机器人接收阿里云物联网平台转发的数据

    开篇先献上效果图 现在钉钉已经成为跟微信一样流行的APP了 社交端微信占了 企业端现在的老大应该是非钉钉莫属了 现在用户数量应该已经超过4亿了吧 疫情期间钉钉可是真火了一把 好了 下面进入正题 1 数据获取 首先数据的来源是接入到阿里物联网
  • 背景差分法示例

    背景差分法 背景差分法是一种很常用而且广泛传感的技术 主要用于背景不动的情况下提取前景 它主要的原理是在当前帧和背景做减法 然后使用threshold进行二值化得到前景掩码 下面是背景减法的示意图 背景差分法主要包含以下两个步骤 1 背景的
  • 如何触发‘isTrusted = true‘点击事件

    前言 isTrusted是DOM属性 只能可读 如果事件是由用户调用的 则该事件是可信的 如果是由脚本调用的 则该事件是不可信的 总的来说就是 如果你是通过正常浏览器方式进行操作 基本无法改变该属性 解决方法 1 使用python的sele
  • Ubuntu16.04安装搜狗输入法 详细教程

    由于自己也是一个刚入门Ubuntu的新手 对很多终端命令 软件的安装都不大了解 这里记录一下Linux版本的搜狗输入法 一开始觉着有个中文版的系统自带的输入法挺好的 结果没有想到拼音确实不是很好用 就根据这篇教程安装好了Linux版本的搜狗
  • Faster RCNN详解

    paper Faster R CNN Towards Real Time Object Detection with Region Proposal Networks Tensorflow faster r cnn github Tenso
  • VUE经典面试题

    vue2 0的实现原理 vue数据双向绑定是通过数据劫持结合发布者订阅模式来实现的 也就是说数据层和视图层同步 数据层发生变化 视图跟着变化 视图变化数据也跟着随之发生变化 第一步 需要observe的数据对象进行递归遍历 第二步 comp
  • mysql 触发器

    触发器 当对某张表进行 INSERT DELETE UPDATE 操作时 会自动触发定义的触发器中的操作 顾名思义 当我们为某张表定义触发器后 向表中添加 删除 修改数据时 会触发触发器中定义的操作 触发器像是一个事件的监听 一旦监听的事件
  • springboot校园二手物品交易平台 毕业设计源码03373

    目 录 摘要 1 绪论 1 1 研究背景 1 2国内外研究现状 1 3论文结构与章节安排 2平台分析 2 1 可行性分析 2 2 系统流程分析 2 2 1 数据流程 3 3 2 业务流程 2 3 系统功能分析 2 3 1 功能性分析 2 3
  • 大数据标准化白皮书(2020版) 附下载地址

    大数据是新时代最重要的 数字金矿 是全球数字经济发展的核心动能 数据资源如同农业时代的土地 劳动力 工业时代的技术 资本 已经成为信息 时代重要的基础性战略资源和关键生产要素 是推动经济发展质量变革 效率变 革 动力变革的新引擎 不断驱动人
  • python爬取推特图片_twitter图片视频批量下载

    import requests import re from urllib request import urlretrieve import os import ssl ssl create default https context s
  • 试看5分钟视频python_Python面试应急5分钟!

    不论你是初入江湖 还是江湖老手 只要你想给自己一个定位那就少不了面试 面试的重要性相信大家都知道把 这就是我们常说的 第一印象 给大家说一下我的面试心得把 面试前的紧张是要的 因为这能让你充分准备 面试时的紧张是绝对要避开的 因为这可能导致
  • open source 3d map_3D视觉技术在机器人抓取作业中的应用实例

    原标题 3D视觉技术在机器人抓取作业中的应用实例 关键词 3D视觉 工业机器人 抓取 1 引言 3D视觉技术作为新兴的技术领域还存在很多亟待解决的问题 但2D视觉已不能满足空间抓取的应用要求 与2D视觉相比 3D视觉技术的优点有 1 3D视
  • C++ 创建桌面快捷方式

    include
  • 白盒测试——基本路径测试

    基本路径测试是将程序流程图转化为控制流图 通过分析控制结构的环路复杂性 进而找出路径的基本独立集 最终导出测试用例 基本独立集 从基本独立集导出的测试用例保证对程序中的每一条语句至少执行一次 控制流图 定义 百度百科 是一个过程或程序的抽象