巧计口诀-软件测试的生命周期,黑盒测试设计方法
目录
1。口诀
2。黑盒设计方法适用场合
3。黑盒设计方法详解
3.1。等价类法
3.2。 边界值法
3.3。判定表法
3.4。因果表
3.5。状态迁移图
3.6。场景法
3.7。正交实验法
3.8。错误推断法
1。口诀
又到了找工作的日子,背诵这些基本知识和概念又开始了。我找到一个好办法背诵这些方法:
软件测试的生命周期是“分级设编执评” ,这样理解啊:“有个公司啊,要施行分级设计编制,就要执行评估了,大家都很焦急”。呵呵。
| 软件测试的生命周期 | 谐音 |
|---|---|
| 需求分析 | 分 |
| 测试计划 | 级(四声) |
| 测试设计 | 设 |
| 测试编码 | 编 |
| 测试执行 | 执 |
| 测试评估 | 评 |
测试用例构成要素是“编码,标题,相继跳树不接“,这样理解啊:”编码,标题,相继跳到树下,接不住“
| 测试编码 | 编码 |
| 测试标题 | 标题 |
| 测试项目 | 相 |
| 用例级别 | 继 |
| 预置条件 | 跳 |
| 测试输入 | 树 |
| 测试步骤 | 不 |
| 预期结果 | 接 |
黑盒测试设计方法是“等边盼赢,撞场整错”。这样理解啊:“有个小等边三角形名字叫‘等边’,她在和一个艺人打官司,时刻盼望打赢官司,这个官司是怎么回事啊?是因为她给艺人安排活动的时候,和别人撞场,整错了。”也就是“等边盼赢,撞场整错”,哈哈。
| 设计方法 | 谐音 |
|---|---|
| 等价类法 | 等 |
| 边界值法 | 边 |
| 判定表法 | 盼 |
| 因果法 | 赢 |
| 状态迁移法 | 撞 |
| 场景法 | 场 |
| 正交实验方法 | 整 |
| 错误推测法 | 错 |
2。黑盒设计方法适用场合
| 序号 | 黑盒设计方法 | 适合场合 |
| 1 | 等价类法 | 功能有输入,输入无组合 |
| 2 | 边界值法 | 功能有输入,输入范围有边界 |
| 3 | 判定表法 | 有多个输入与输出,输入与输入之间,输入与输出之间,有依赖关系 找到条件桩,动作桩,第二步,全组合 |
| 4 | 因果法 | 同“判定表法”,找到条件桩,动作桩,第二步,分析条件桩和动作桩的关系,画出因果图 |
| 5 | 状态迁移法 | 多个功能之间的逻辑测试,找状态点 |
| 6 | 场景法 | 多个功能之间的逻辑测试,找基本流和备选流 |
| 7 | 正交实验法 | 参数配置类功能,参数互相组合 |
| 8 | 错误推测法 | 最后采用错误推测法再追加测试用例 |
3。黑盒设计方法详解
3.1。等价类法
有效等价类:符合相关的需求规则的这些等价类
无效等价类:不符合相关的需求规则的这些等价类
等价类划分法实施步骤:
1.画出一个等价类表,需要列出某个功能点的所有输入条件
2.为每个输入条件列出需求规格(规格)
3.根据每个需求规则找出有效和无效等价类
4.给每个等价类设置一个唯一编码
5.设计测试用例覆盖等价类中的测试点,设计一条用例尽可能的覆盖有效等价类。设计用例保证所有的有效等价类覆盖完。
6.设计用例的时候每个无效等价类使用一条用例来覆盖。

总数:14(无效等价类)+7(有效等价类)=21
具体如下
| 序号 | 覆盖的等价类 | |
| 1 | 1,6,7,8,9,11,12,13,14 | |
| 2 | 2,6,7,8,10,11,12,13,15 | |
| 3 | 3,6,7,8,9,11,12,13,16 | |
| 4 | 4,6,7,8,9,11,12,13,17 | |
| 5 | 5,6,7,8,9,11,12,13,18 | |
| 6 | 1,6,7,8,9,11,12,13,19 | |
| 7 | 1,6,7,8,9,11,12,13,20 | |
| 8 | 21,8,9,11,12,13,14 | 21是反例 |
| 9 | 22,6,7,8,9,11,12,13,14 | 22是反例 |
| 10 | 1,23,7,8,9,11,12,13,14 | 23是反例 |
| 11 | 1,24,7,8,9,11,12,13,14 | 24是反例 |
| 12 | 25,8,9,11,12,13,14 | 25是反例 |
| 13 | 1,26,9,11,12,13,14 | 26是反例 |
| 14 | 1,8,27,12,13,14 | 27是反例 |
| 15 | 1,8,11,28,13,14 | 28是反例 |
| 16 | 1,8,11,12,29,14 | 29是反例 |
| 17 | 1,8,11,12,30,14 | 30是反例 |
| 18 | 1,8,11,12,13,31 | 31是反例 |
| 19 | 1,8,11,12,13,32 | 32是反例 |
| 20 | 1,8,11,12,13,33 | 33是反例 |
| 21 | 1,8,11,12,13,34 | 34是反例 |
3.2。 边界值法
1.明确需求
2.确定有效和无效等价类
1)有效等价类就是题目条件(两端的极值(边界值)要判断,中间随意一个值也要判断)
2)无效等价类先划分与有效等价类相反的情况
3.找到题目条件中的边界值
4.编写测试用例
举例,标题要求长度>0,长度<=30
边界值,
| 上点 | 0,30 |
| 离点 | 1,29,31 |
| 内点 | 15 |
3.3。判定表法
定义:
判定表也称决策表,是分析和表达多逻辑条件下执行不同操作的工具,它能够将负责的问题按照各种可能的情况全部枚举出来,简明并避免遗漏。因此,在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作,判定表适合于处理这类问题,
组成:
判定表是由条件桩,动作桩,条件项,动作项四部分组成,如下图:
- 条件桩(Condition Stub):列出了问题的所有条件,通常认为列出的条件次序无关紧要
- 动作桩(Action Stub):列出问题规定可能采取的操作,这些操作的排列顺序没有约束
- 条件项:列出针对它左列条件的取值,在所有可能情况下的真假值
- 动作项:列出在条件项的各种取值情况下应该采取的动作。

3.4。因果表
因果法是判定表的优化
3.5。状态迁移图
抽取测试路径设计用例
1.找到所有的叶子节点
2.一条路径就是根节点到叶子节点所走的路线
3.一条路径对应一条测试用例
案例描述

3.6。场景法
基本流,备选流


3.7。正交实验法
正交试验设计方法:是由数理统计学科中正交实验方法进化出的一种测试多条件多输入的用例设计方法,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理的安排实验(测试)的一种科学实验设计方法。
条件:因子 取值:水平
正交实验设计方法步骤:
| 步骤次数 | 步骤内容 |
| 1 | 分析需求获取因子及水平 |
| 2 | 根据因子及水平数选择正交表 |
| 3 | 替换因子水平,获取实验次数 |
| 4 | 细化输出测试用例 |
因子:所有参与试验的影响试验结果的条件为银子
水平:影响试验因子的取值或输入成为水平

3.8。错误推断法
案例:登录测试
登录失败:列出可能导致出错的情况
1.用户名和密码
2.网络原因
3.账号被拉黑
4.服务器异常
5.单点登录
————————
错误推断法
错误推测法是利用“直觉”和“经验”猜测出出错的可能
类型,有针对性的列举出程序中所有可能的错误和容易发生错误的地方,它是骨灰级测试大佬喜欢使用的一种测试用例设计方法。
基本思想
基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例,这种方法很大程度上是凭经验进行的,即凭人们对过去所做测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。
采用错误推测法,最重要的是要思考和分析测试对象的各个方面,多参考以前发现的Bug的相关数据,总结的经验,个人多考虑异常的情况,反面的情况,特殊的输入,以一个攻击者的态度对待程序,才能够设计出比较完善的测试用例。
相关文章:
巧计口诀-软件测试的生命周期,黑盒测试设计方法
目录 1。口诀 2。黑盒设计方法适用场合 3。黑盒设计方法详解 3.1。等价类法 3.2。 边界值法 3.3。判定表法 3.4。因果表 3.5。状态迁移图 3.6。场景法 3.7。正交实验法 3.8。错误推断法 1。口诀 又到了找工作的日子,背诵这些基本知识和概念又开始了。我找…...
Android系统的Ashmem匿名共享内存系统分析(1)- Ashmem驱动
声明 其实对于Android系统的Ashmem匿名共享内存系统早就有分析的想法,记得2019年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾…文中参考了很多书籍及博客内容,可能涉及的比较…...
Redis 事务详细介绍
事务 注意:Redis单条命令是保证原子性的;但是事务不保证原子性! Redis事务没有隔离级别的概念,所有的命令在事务中,并没有直接被执行,只有发起执行命令时才执行 Redis事务本质:一组命令的集合&…...
2023-5-29第二十九天
consult咨询,查阅,商讨 specialize专门从事,专攻 inspect检查 pattern图案,方式 optimize使最优化 ensemble整体,全体 subscript下标 subscribe签名 sector行业,部门 precedence优先,优…...
【第三方库】PHP实现创建PDF文件和编辑PDF文件
目录 引入Setasign/fpdf、Setasign/fpdi 解决写入中文时乱码问题 1.下载并放置中文语言包(他人封装):https://github.com/DCgithub21/cd_FPDF 2.编写并运行生成字体文件的程序文件(addFont.php) 中文字体举例&…...
线程的回收及内存演示
ps -elf|grep mthread 查看进程和线程 top -p 6513 查看内存 一、线程的回收 使用pthread_join 函数: #include <pthread.h> int pthread_join(pthread_t thread, void **retval); 注意:pthread_join 是阻塞函数,如果回收的线…...
高精度倾角传感器测量原理
高精度倾角传感器测量原理技术参数 1.性能参数 测量范围:0~30 测量精度:0.06 分 辨 率:0.0001 测量方向:X,Y 时间漂移:0.08/月 更新时间:30ms 上电启动时间:0.5s 2.电…...
Android 12 init流程分析
前言 刚开始接触需要了解的概念理解过程遇到了什么问题代码的位置和流程分析如何分析和调试遇到的问题 基本的概念 .rc 文件 这个文件在Android framework 中服务相关代码可以看到。类似surfaceflinger.rc 、mediaserver.rc等等。 在这些rc里面定义了某一个service࿰…...
【Python小技巧】Python操控Chrome浏览器实现网页打开、切换、关闭(送独家Chrome操作打包类源码、Chrome浏览器Cookie在哪里?)
文章目录 前言一、什么时候需要用Python控制浏览器?二、下载Chrome浏览器驱动文件1. 安装Chrome浏览器并查看版本2. 下载浏览器驱动文件3. 解压到python编译器目录(python.exe所在目录) 三、Python控制Chrome浏览器(附源代码&…...
数据在内存中的存储
目录 一、数据类型的介绍 1.C语言基本内置类型 2.类型基本归类 1.整形 2.浮点型 3.构造类型 4.指针类型 二、整形在内存中的存储 三、浮点数在内次中的存储 1.存储形式 2.对M、E的特殊规定 (1)对M的特殊规定 (2)对E的…...
Rust in Action笔记 第三章 复合数据类型
通过#[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZI50wIh1-1685693144796)(null)]),不带感叹号的#[allow]仅为下一行代码提供属性,属性有多种分类,文中出现的allow属性称为诊断属性(Diag…...
算法基础学习笔记——⑬高斯消元\组合计数\容斥原理
✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨高斯消元 ✨组合计数 🍓通过预处理逆元的方式求组合数: 🍓Lucas定理: 🍓分解质因数法求组合数: 前言:算法学习笔记记录日常分享,需…...
渗透测试辅助工具箱
0x01 说明 渗透测试辅助工具箱 运行条件:jdk8 双击即可运行 反弹shell,命令生成器,自动编码,输入对应IP端口即可,实现一劳永逸,集成一些小工具,辅助渗透,提高效率 输入框说明 L…...
chatgpt赋能python:Python后退命令:如何让你的程序退回到之前的状态
Python后退命令:如何让你的程序退回到之前的状态 Python是一种高级编程语言,因其易读易懂而闻名于世。Python中有很多命令用于编写程序,其中一项重要的命令是后退命令。本文将介绍Python后退命令的使用方法,并为您提供详细的步骤…...
OJ练习第127题——统计范围内的元音字符串数
统计范围内的元音字符串数 力扣链接:2559. 统计范围内的元音字符串数 题目描述 给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。 每个查询 queries[i] [li, ri] 会要求我们统计在 words 中下标在 li 到 ri 范围内(包含 这…...
图片优化: CssSprites与Base64编码
文章目录 1 css sprites1.1 CSS Sprites是什么1.2 为什么需要css sprites1.3 优势1.4 使用原理1.5 DEMO 2 图片Base64编码 1 css sprites 1.1 CSS Sprites是什么 CSS Sprites是一种网页图片应用处理方式。 又被解释为: CSS精灵CSS图像拼合CSS贴图定位CSS图片精灵…...
JavaScript中的Map、WeakMap和Object的区别
Map Map是一种新的数据结构,它允许使用任何数据类型(包括对象和基本数据类型)作为键。 Map的一些特性包括: 保持键的插入顺序:当遍历Map时,键值对会按照插入顺序返回。键可以是任意类型:与Obj…...
华为OD机试之打印机队列(Java源码)
打印机队列 题目描述 有5台打印机打印文件,每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中 数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如…...
分享一个国内免费的ChatGPT网站,手机电脑通用,免费无限制,支持AI绘画
背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具,近期的热度直接沸腾🌋。 作为一个AI爱好者,翻遍了各大基于ChatGPT的网站,终于找到一个免费!免登陆!手机电脑通用!国内可直接对话的C…...
【面向对象编程1】——类和对象——如桃花来
目录索引 面向过程和面向对象的区别:面向过程:面向对象:总结: 类和对象:定义类:语法: 创建对象:实例演示: 魔法方法:__init __方法:__ del __方法…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
