测试基础-动态白盒测试

2023-11-04

1.动态白盒测试

定义:也称结构化测试。利用查看代码功能(作什么)和实现方式(怎么做)得到的信息来确定哪些需要测试、哪些不需要测试、如何开展测试。
动态白盒测试包括以下4个部分:

  • 直接测试底层函数、过程、子程序和库。
  • 以完整程序的方式从顶层测试软件,但是根据对软件运行的了解调整测试用例。
  • 从软件获得读取变量和状态信息的访问权,以便确定测试与预期结果是否相符,同时,强制软件以正常测试难以实现的方式运行。
  • 估算执行测试时“命中”的代码量和具体代码,然后调整测试,去掉多余的测试用例,补充遗漏的用例。

2.动态白盒测试和调试的区别

动态白盒测试:寻找软件缺陷;
调试:修复缺陷。

3.分段测试

从测试的角度看,产生高额费用有如下两个原因:

  • 难以有时甚至不可能找出导致问题的原因;
  • 某些软件缺陷掩盖了其它软件缺陷。

3.1 单元测试和集成测试

在底层进行测试称为单元测试或模块测试;单元经过测试,底层软件缺陷被找出并修复之后,就集成在一起进行集成测试。
这种递增测试有两条途径:自底向上和自顶向下。
自底向上:编写测试驱动模块发送测试用例数据,接受返回结果,验证是否正确。如图所示:
在这里插入图片描述
自顶向下:测试一个温度显示模块,编写一小段称为的代码充当接口模块,把温度值直接提供给显示模块。如下图所示:测试完温度显示模块后,再去测试温度计接口模块。
在这里插入图片描述

3.2 单元测试示例

4.数据覆盖

4.1 数据流覆盖

数据流覆盖主要指在软件中完全跟踪一批数据。在单元测试级,数据仅仅通过了一个模块或者函数。同样的跟踪方式可以用于多个集成模块,甚至整个软件产品。
如果在底层测试函数,就会使用调试器观察变量在程序运行时的数据,可以检查变量的中间值。

4.2 次边界

次边界先前的内容讨论过,如果进行白盒测试,就需要仔细检查代码,找到次边界条件,并建立能测试它们的测试用例。

4.3 公式和等式

查看公式使用的变量,在程序正常输入和输出之外,为其建立测试用例和等价划分。

4.4 错误强制

如果执行在调试器中测试的程序,不仅能够观察到变量的值,还可以强制改变变量的值。于是软件不得不处理一些非常规数值或者报告处理不了。

5.代码覆盖

与黑盒测试一样,测试数据只是一半工作。为了全面地覆盖,还必须测试程序的状态以及程序流程。必须设法进入和退出每一个模块,执行每一行代码,进入软件的每一条逻辑和决策分支。这种类型的测试叫做代码覆盖
专业工具:代码覆盖率分析器,可以获得指示软件哪些部分被执行,哪些部分未被执行的统计结果。

5.1 程序语句覆盖(代码行覆盖)

目标是保证程序中每一条语句最少运行一次。

5.2 分支覆盖

试图覆盖软件中所有的执行路径的方法。

5.3 条件覆盖

将分支语句的条件考虑在内,设计满足不同条件的测试用例。

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

测试基础-动态白盒测试 的相关文章

  • 真的干不过,00后整顿职场已经给我卷麻了,想离职了...

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • “揭秘性能测试工具:优化软件性能的关键秘籍“

    性能测试工具的设计宗旨是为了模拟用户对软件应用程序或系统的各种操作 旨在评估关键的性能指标 包括响应时间 吞吐量 并发能力和资源利用率 通过这些工具模拟的多用户环境 我们能够产生与实际工作负载相似的条件 并监测系统在这种情况下的性能表现 一
  • 外包干了2个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 软件测试/测试开发/全日制/测试管理丨Python关键字

    Python 语言有一些关键字 它们具有特殊的含义 不能被用作标识符 变量名 函数名等 False 布尔类型的假值 None 表示一个空对象或无值 True 布尔类型的真值 and 逻辑与操作符 as 用于给导入的模块起别名 assert
  • 软件测试/测试开发/全日制/测试管理丨Redis内存数据库

    Redis是一种开源 内存中的数据结构存储系统 它提供了高性能 灵活性和丰富的数据结构 以下是Redis内存数据库的基本介绍 键值存储 Redis基于键值对的存储模型 其中每个键都与一个特定的值相关联 这种简单的数据模型使其易于使用和理解
  • Linux终端常见用法总结

    熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率 笔者结合自身学习实践 总结以下终端用法供同行交流学习 常 见 用 法 1 快捷键 1 1 Alt 在光标位置插入上一次执行命令的最后一个参数 1 2 Ctrl R
  • Locust负载测试工具实操

    本中介绍如何使用Locust为开发的服务 网站执行负载测试 Locust 是一个开源负载测试工具 可以通过 Python 代码构造来定义用户行为 避免混乱的 UI 和臃肿的 XML 配置 步骤 设置Locust 在简单的 HTTP 服务上模
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 19年通过校招进入广州某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 盲猜你不懂H5架构和原生架构的区别

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

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

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

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋

随机推荐

  • 2021年全球与中国高速分散机行业市场规模及发展前景分析

    2021年全球与中国高速分散机行业市场规模及发展前景分析 本报告研究全球与中国市场高速分散机的发展现状及未来发展趋势 分别从生产和消费的角度分析高速分散机的主要生产地区 主要消费地区以及主要的生产商 重点分析全球与中国市场的主要厂商产品特点
  • 论文阅读:DeepFake-Adapter: Dual-Level Adapter for DeepFake Detection(Deepfake模型快速调参)

    一 论文信息 论文名称 DeepFake Adapter Dual Level Adapter for DeepFake Detection 作者团队 项目主页 https github com rshaojimmy DeepFake Ad
  • python爬取 百姓网部分数据 + 存入MongoDB数据库详细案例

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 实施步骤 二 目标网站 先分析目标网站 三 获取数据 1 引入库 2 请求数据 2 1 获取第一层链接 3 抓取数据 3 1 分析页面 3 2 抓取数据 四
  • 图像可变游程之混乱代码

    图像可变游程之混乱代码 图像可变游程之混乱编码 可变游程编码 VLC 混乱编码 参考代码 图像可变游程之混乱编码 这里 对我的自画像代码作一个简要解释 自画像代码实际上是一个解码器 包括两个部分 图像的可变游程编码 varied lengt
  • ValueError: check_hostname requires server_hostnameWARNING: You are using pip version 21.1.3

    ValueError check hostname requires server hostname WARNING You are using pip version 21 1 3 however version 22 2 2 is av
  • LCD1602芯片的使用——简单易懂

    题目 想在LCD1602上显示两行如下字样 huaianxinxi wantin 想完成上面的显示必须掌握LCD1602芯片的基本知识 将在程序下面附上LCD1602芯片的基本知识 供大家参考 我实现的比较简单 没有什么花哨的显示 大家首先
  • js 聚合函数

    在JavaScript中 聚合函数是一种用于处理数据集合的函数 它们接收一个数据集合作为输入 并返回一个单一的值作为输出 聚合函数通常用于对数据进行统计 计算总和 平均值 最大值 最小值等操作 下面是一些常见的聚合函数的概念 sum 求和
  • Vscode搭建轻量级Matlab开发环境

    一 使用Vscode编写m文件的优势与不足 Matlab的启动速度很慢 为追求效率与编写体验 对于一些简单的m文件编写 我们可以选择在Vscode中进行编写和运行 Vscode插件丰富 配置好Matlab环境后 可以实现以下功能 代码高亮
  • MATLAB及Simulink----基本知识简介

    目前 MATLAB已成为国际上最为流行的科学计算与工程计算软件工具之一 如今的MATLAB已经不仅仅是矩阵运算或数值计算的软件 它已经发展成为一种具有广泛应用前景 全新的计算机高级编程语言 可以说它是 第四代 计算机语言 自20世纪90年代
  • Sqli-labs之Less-37

    Less 37 POST型 绕过 MYSQL real escape string 本关与 34 关是大致相似的 区别在于处理 post 内容用的是 mysql real escape string 函数 而不是 addslashes 函数
  • DLS 深度受限搜索 狼羊 过河 问题 python 实现

    深度受限搜索 DLS 简单地说就是深度有限搜索 DFS 深度限制 limit DLS伪代码 实例 狼羊 过河 问题 3只羊和3头狼在河岸A 想要过河抵达河岸B 它们只有一艘船并且船上必须有1 2只生物 当 任意一边的狼的数量大于羊时 羊会被
  • 07模块和包(函数)

    一 函数的定义和调用 1 定义 函数 我们可以将在不同的地方要调用的相同的功能的代码进行分装 打包 定义一个函数 进行封装 例如 假设我们想在登录和注册时验证本人的手机号码是否正确时 我们可以将验证手机号码的过 程封装进函数里 之后进行使用
  • 算法 单链表删除重复元素

    1 删除重复的元素 保留一个 leetcode题目 代码 Definition for singly linked list public class ListNode int val ListNode next ListNode int
  • Golang非递归构建菜单树(O(n)时间复杂度,任意深度的递归树都能构造,适用于深层、大量数据的树结构构造)

    刚刚学习到Go的接口部分 希望对之前的基础部分 struct slice map 做一个简单的总结 希望各位Go语言方面的大佬给一点意见 非常感谢 编写过程中存在的一些疑惑 TreeNode结构中定义的Child 和SetChild 方法都
  • java实现解析html网页爬虫

    java解析html需要用到jsoup库来爬虫 Jsoup是一个流行的开源库 用于解析 操作和遍历HTML文档 它提供了类似于jQuery的API 方便地选择和操作HTML元素 其操作非常像jQuery的写法 下面就来详细介绍一下怎么爬数据
  • Android(java)学习笔记24:自定义异常类

    1 自定义异常 考试成绩必须在0 100之间 很明显java没有对应的异常 需要我们自己来做一个异常 自定义异常 继承自Exception 继承自RuntimeException 下面是一个代码示例 package cn itcast 08
  • 组件化icon,来实现根据传入数据不同而显示不同图标代码。

    目标 把classMap显示不同的icon功能抽象成一个组件 分析 需要传入的参数有icon尺寸 icon种类 所以下面icon vue里面定义了2个参数size和type 由父组件传入 难点 css代码层叠关系这里要理清 另外vue中绑定
  • 基于MATLAB的数字图像处理仿真软件

    1 引言 1 1MATLAB介绍 MATLAB是矩阵实验室 Matrix Laboratory 的简称 是美国MathWorks公司出品的商业数学软件 用于算法开发 数据可视化 数据分析以及数值计算的高级技术计算语言和交互式环境 主要包括M
  • ubuntu安装SDK

    1 下载SDK tools package https developer android com studio index html 2 解压文件 进入tools bin文件夹 sdkmanager list sdk root home
  • 测试基础-动态白盒测试

    1 动态白盒测试 定义 也称结构化测试 利用查看代码功能 作什么 和实现方式 怎么做 得到的信息来确定哪些需要测试 哪些不需要测试 如何开展测试 动态白盒测试包括以下4个部分 直接测试底层函数 过程 子程序和库 以完整程序的方式从顶层测试软