巧计口诀-软件测试的生命周期,黑盒测试设计方法
目录
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 __方法…...

chat聊天系统消息消费时遇到的问题及优化思路(二)
1、前言 考虑下面几个条件下如何提升kafka的消费速度 消息要求严格有序,如chat聊天消息业务处理速度慢,如处理一条数据需要100ms分片不合理,如有的分区很闲,有的分区消息数量积压 2、解决方案 1、顺序问题 关于消息消费时存在…...

js正则中的match()
在前端开发中,正则表达式是一大利器。所以我们这次就来讨论下match()方法。 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表达式。该方法绝…...

Apache 配置和应用
目录 构建虚拟 Web 主机 Options指令解释 Options指令常用选项 AllowOverride指令解释: 地址限制策略: httpd服务支持的虚拟主机类型包括以下三种: 基于域名的虚拟主机 1.为虚拟主机提供域名解析 2.为虚拟主机准备网页文档 3.添加虚拟…...

实现PyTorch/ONNX自定义节点操作的TensorRT部署
参考一 下面是基本步骤: 加载训练好的bev transformer网络权重参数: import torch from model import Modelmodel Model() model.load_state_dict(torch.load("path/to/weights"))定义新的自定义操作: import torch from torc…...

Shamir 秘密共享、GMW和BGW方案
一、Shamir秘密共享 Shamir秘密共享方案是一种将秘密拆分成多份并分配给多个参与者保存,只有在满足特定条件下才能恢复原始秘密的密码学方案。它具有良好的容错性、加法同态性和无条件安全性等特点。 具体地,Shamir秘密共享方案可以概括为以下步骤&…...

Day56【动态规划】583.两个字符串的删除操作、72.编辑距离
583.两个字符串的删除操作 力扣题目链接/文章讲解 视频讲解 1、确定 dp 数组下标及值含义 dp[i][j]:以下标 i 为结尾的字符串 word1,和以下标 j 为结尾的字符串 word2,想要达到相等,所需要删除元素的最少次数为 dp[i][j] 2、…...

Arnold图像置乱的MATLAB实现
这件事情的起因是这样的,我需要研究一下各种图像置乱的算法。然后在知乎上找到了一篇关于Arnold变化的文章,但是呢,这个人实际上是卖资料,代做大作业的。详细的代码根部不给你,则给我气坏了,必须要手动实现…...

ASP.NET Core
1. 入口文件 一个应用程序总有一个入口文件,是应用启动代码开始执行的地方,这里往往也会涉及到应用的各种配置。当我们接触到一个新框架的时候,可以从入口文件入手,了解入口文件,能够帮助我们更好地理解应用的相关配置…...

javascript基础二十二:举例说明你对尾递归的理解,有哪些应用场景
一、递归 递归(英语:Recursion) 在数学与计算机科学中,是指在函数的定义中使用函数自身的方法 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数 其核心思想是把一个大型…...

hive中如何计算字符串中表达式
比如 select 1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 col ,1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 result \ 现在的需求式 给你一个字符串如上述col 你要算出result。 前提式 只有和-的运算,而且只有嵌套一次 -(4-3)没有 -(-4(3-(31)))嵌套多次。 第一步我们需要将运…...