【软件测试学习笔记】白盒测试

2023-11-02


一、白盒测试概述

白盒测试的对象主要是源代码,用代码内部的分支、路径、条件。使程序设计的控制结构导出测试用例。

二、分类

1.静态测试

不在计算机上实际执行所测程序,使用人工模拟技术对软件进行分析和测试

2.动态测试

需要执行代码,通过运行程序找到问题

三、白盒测试原则

1.保证一个模块中所有的路径至少被测试一次
2.所有逻辑值都要测试真和假两种情况
3.检查程序的内部数据结构是否有效
4.检查上、下边界及可操作范围内运行的所有循环

四、白盒测试类别

软件公用问题的测试
语言测试
SQL语句测试
数据类型测试
界面测试
数值对象测试
业务对象测试
数据管理对象测试

五、不同阶段不同侧重点

1.单元测试

程序语法检查
程序逻辑检查
代码检查
逻辑覆盖

2.集成测试

静态结构分析
静态质量度量
接口测试为主

3.系统测试

检验完整的软件配置项能否和系统正确连接
发现软件与系统设计文档和软件开发合同规定不符合与之矛盾的地方
验证系统是否满足了需求规格定义

4.验收测试

按照需求开发,体验该产品能否满足使用要求,有没有达到原设计水平,完成的功能水平,是否符合用户需求,达到预期目的为主。

六、测试覆盖率

1.功能点覆盖

已经实现的功能与软件需要实现的功能之间的比例关系。

2.结构覆盖率

  • 语句覆盖率
  • 分支覆盖率
  • 循环覆盖率
  • 路径覆盖率

七、逻辑覆盖

  • 语句覆盖:保证程序中的每个可执行语句至少执行一次。
  • 判定覆盖:每个判定语句获得一次真值一次假值/程序中每一个取真分支或取假分支都经历一次。
  • 条件覆盖:每个判定包含的每个条件的可能取值都至少满足一次。
  • 路径覆盖:所有可能被执行到的路径至少执行一次。
  • 条件判定组合覆盖:同时满足条件覆盖和判定覆盖。
  • 条件组合覆盖:每个判定中条件的各种组合都至少出现出一次。

八、白盒测试优缺点

优点 缺点
帮助软件测试人员增大代码覆盖率,提高代码质量,发现代码中隐藏问题 不可能测试所有的运行路径;可能会遗漏一些功能需求。

白盒测试案例

在这里插入图片描述
1.语句覆盖:所有语句至少执行一次。语句sabcde都执行一编。

测试用例 预测结果 执行路径
x=4 ,y=2,z=0 x=3 Sabcde

2.判定覆盖:所有判定语句的取真取假都满足一次。

判定 测试用例 预测结果 执行路径
a真c假 x=1,y=3,z=0 X=0 sabce
a假c真 X=1,y=2,z=1 X=2 sacde

3.条件覆盖:每个判定里每个条件可能出现的结果至少出现一次。

a可能出现的结果 b可能出现的结果
y>1,y<=1;z=0,z≠0 y=2,y≠2;x>1,x<=1
条件 测试用例 预测结果 执行路径
y>1,y=2,z=0,x>1 x=2,y=2,z=0 x=1 sabcde
y<=1,y≠2,z≠0,x<=1 x=1,y=1,z=1 X=2 sace

4.路径覆盖:所有可能被执行到的路径至少执行一次。

执行路径 测试用例 预测结果
sabcde x = 4, y= 2, z = 0 x=3
sace x=1,y=1,z=1 x=1
sabce x=1,y=3,z=0 x=0
sacde x=1,y=2,z=1 x=2

5.条件判定组合覆盖:判定结果至少出现一次,判定中的条件可能出现的结果也至少出现一次。

判定 条件 测试用例 预测结果 执行路径
a真c假 y>1,y=2,z=0,x>1 x=2,y=2,z=0 x=1 sabcde
a假c真 y<=1,y≠2,z≠0,x<=1 x=1,y=1,z=1 x=2 sace

6.条件组合覆盖:每个判定的每个条件的可能出现的结果的所有可能的组合至少出现一次。

a可能出现的组合 b可能出现的组合
y>1,z=0 y=2,x >1
y<=1,z=0 y≠2,x >1
y>1,z≠0 y=2,x<=1
y<=1,z≠0 y≠ 2,x<=1
条件组合 测试用例 预测结果 执行路径
y>1,z=0,y=2,x>1 x=4,y=2,z=0 x=3 sabcde
y<=1,z=0,y≠2,x<=1 x=1,y=1,z=1 x=1 sace
y>1,z≠0,y=2,x<=1 x=1,y=2,z=1 x=1 sace
y<=1,z≠0,y≠2,x>1 x=2,y=1,z=1 x=3 sacde
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【软件测试学习笔记】白盒测试 的相关文章

  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|使用Python读写yaml文件,你会了吗?

    简介 YAML YAML Ain t Markup Language 是一种可读的数据序列化格式 它常用于配置文件和数据交换 Python 提供了许多库来处理 YAML 文件 在本文中 我们将探讨如何使用 PyYAML 库来读取和写入 YA
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

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

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

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

    在日常的软件开发中 测试是确保代码质量的关键步骤之一 然而 对于测试报告的生成和测试结果的可读性 一直以来都是开发者关注的焦点 Pytest插件 pytest sugar 以其清晰而美观的输出 为我们提供了一种愉悦的测试体验 本文将深入介绍
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 外包干了2个月,技术倒退2年。。。

    先说一下自己的情况 本科生 20年通过校招进入深圳某软件公司 干了接近4年的 功能测试 今年国庆 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了3年的女朋
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

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

随机推荐

  • 2.4g无线跳频(三)

    2 4g无线跳频 三 一 跳频过程分析 1 主从建立连接 开启定时器 2 对于主机 每个定时周期内 前部分处于发送模式 后部分处于接收模式 对于从机 每个定时周期内 前部分处于接收模式 后部分处于发送模式 发送时间应安排小于接收时间 3 主
  • building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

    Xcode 12以及以上版本 使用模拟器编译 使用真机不会报错 或者使用真机编译会报错 使用模拟器不会报错 ld in Users xxx Documents work svn EM iOS xxx xxx WarehouseMap Ext
  • AsposeWord转pdf的正确姿势

    通过国内国外 官网不断查找 终于找到适合java的开发的方式 不管国内国外 全是C 和vb net的资料 为了让自己以后不会忘记 迭代更新一下Aspose的多样性操作 普通的 File file new File C Users a Dow
  • Thinkphp5之多语言

    给需要的人看 自己总结的 大神请勿喷 谢谢 目录结构 配置 控制器 view zh cn return array test gt 中文 name gt 萧风 cn us return array test gt English name
  • Java多线程:高并发下数据插入重复问题

    转自 微点阅读 https www weidianyuedu com 1 背景描述 应用框架 Spring SpringMVC Hibernate 数据库 Oracle11g 一家文学网站向我系统推多线程低并发推送数据 我这边观察日志和数据
  • Ubuntu 16.04 pycharm设置桌面快捷启动方式

    Ubuntu下所有的快捷方式都在 usr share applications 解压 这里我将pycharm下载并解压到了 home snakeson developer文件夹下 这里的pycharm sh是批处理执行文件 prcharm
  • linux设置定时任务(crontab)操作步骤

    1 登录服务器 2 输入密码 登录成功 3 查看定时器任务 crontab l 4 编辑定时器任务 crontab e 5 保存定时器任务 1 按住sec退出 2 按住shift 再按 wq 保存并退出 备注 按住shift 再按 q 强制
  • CSS flex布局最后一个元素的宽度铺满剩余的空间

    当你希望最后一个元素的宽度铺满剩余的空间是 你可以为他设计一下属性 flex grow 1 例子 div div class sma1 div div class sma2 div div big width 200px height 10
  • [1114]mysql-connector-java各种版本下载地址

    mysql connector java下载地址 http mvnrepository com artifact mysql mysql connector java 1 进去后选择自己的版本 2 然后再点击 需要下载其他的jar包 或者依
  • 彻底解决虚拟机浏览器设置、扩展等花屏空白不显示问题

    问题现象 在我们日常使用VirtualBox vmware workstation Hyper V虚拟机软件的时候 不知不觉我们有没有遇到这种情况 chrome浏览器或者win10 win11自带的Edge浏览器的设置栏 浏览器标签预览 浏
  • Java实现 LeetCode 575 分糖果(看看是你的长度小还是我的种类少)

    575 分糖果 给定一个偶数长度的数组 其中不同的数字代表着不同种类的糖果 每一个数字代表一个糖果 你需要把这些糖果平均分给一个弟弟和一个妹妹 返回妹妹可以获得的最大糖果的种类数 示例 1 输入 candies 1 1 2 2 3 3 输出
  • Unity Navigation详解

    Unity Navigation详解 前言 从事unity相关行业以来始终看不清自己的路该怎么走 到今天才明白不需要花时间去迷茫 只管努力莫问前程 从今天开始每天写一点小东西 记录与整理自己走过的路 也一边寻找自己的路 便从unity的自动
  • BuildaFlightTrackerwithCesiumforUnreal_译

    BuildaFlightTrackerwithCesiumforUnreal 译 这个教程会使用真实世界飞机数据控制一个飞机飞过从圣弗朗西斯科到哥本哈根 你会学到怎样 1 输入真实数据到UnrealEngine 2 使用数据和USpline
  • 活动如何造势推广?会议软件帮您忙

    会议管理者辛苦策划了一场活动 如果推广宣传跟不上 那策划的心血岂不白费 如何使用有效且高效的方法为活动推广造势呢 传统推广方式耗费人力大 成本高 但通过会议软件便可以快速推广活动并有效宣传 下面为您介绍如何使用会议软件实现有效推广 01 社
  • python开发面试题

    python基础 1 Python类中的方法类型 在Python类中有四种方法类型 分别是实例方法 静态方法 类方法和普通方法 实例方法 即对象方法 需要实例化对象之后才能调用 接受的第一个参数self就是对象本身 必须使用实例化对象才可以
  • linux 图形分区工具,Linux下的图形分区工具

    在Linux下的许多情况下 分区将不足 这时 我们将需要调整分区 Windows下有很多工具 Linux下也有 您可以使用gparted进行分区 Gparted是parted的前端 图形化 linux下分区工具 通常包含在官方资源中 可以直
  • 2020年校赛网络赛

    51假期那段时间因为水了一段时间的数模校赛 加上专业课的坑越欠越多 因而已经很久很久没有补过题目了 从近到远 先把西电校赛的坑填起来 再把之前的CF牛客Atcoder补起来 qaq C 发现交换律后就显然了 D 双指针 好像第一天晚上还有个
  • 蓝桥杯2022真题:统计子矩阵、字符统计、排列字母、顺子日期、特殊时间、三角回文数、2022、星期计算

    目录 1 统计子矩阵 2 字符统计 3 排列字母 4 顺子日期 5 特殊时间 6 三角回文数 7 2022 8 星期计算 1 统计子矩阵 import os import sys 请在此输入您的代码 n m k map int input
  • chrome扩展结构

    每个打开的页面都运行在web页面环境中 一个正常的web页面环境 会先初始化css 然后建立DOM树 接着加载图片和frame等子资源 然后顺序执行所有js l chrome扩展本身运行在一个进程中 称之为background环境 back
  • 【软件测试学习笔记】白盒测试

    文章目录 一 白盒测试概述 二 分类 1 静态测试 2 动态测试 三 白盒测试原则 四 白盒测试类别 五 不同阶段不同侧重点 1 单元测试 2 集成测试 3 系统测试 4 验收测试 六 测试覆盖率 1 功能点覆盖 2 结构覆盖率 七 逻辑覆