测试用例详解(强,硬,牛)

news2024/11/19 23:36:01

目录: 

  • 测试用例价值与体系
  • 黑盒测试方法论-等价类
  • 黑盒测试方法论-边界值
  • 黑盒测试方法论-因果图
  • 黑盒测试方法论-判定表
  • 黑盒测试方法论-场景法
  • 测试用例基础概念
  • 测试用例设计与评审
  • 面试测试测试用例设计
  • 搜索功能测试用例设计

1.测试用例价值与体系

  • 测试用例概念
  • 测试用例价值
  • 测试用例学习路线

 测试用例概念

  • 测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果的文档通过大量的测试用例来检验软件的运行效果
  • 它是指导测试工作进行的依据

 测试用例价值

  • 指导测试的实施
  • 规划测试数据的准备
  • 编写测试脚本的”设计规格说明书”
  • 评估测试结果的度量基准
  • 分析缺陷的标准

测试用例学习路线 

 

 

2.黑盒测试方法论-等价类

等价类划分法:

  • 等价类划分是一种重要的、常用的黑盒测试方法
  • 不需要考虑程序的内部结构,只需要考虑程序的输入规格即可
  • 它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性
  • 用户所有可能输入的数据,划分成了若干个子集,然后从每一个子集当中选取少数具有代表性的数据作为测试用例
  • 在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果

等价类分类 

  • 有效等价类:指符合《需求文档》,输入合理的数据集合
  • 无效等价类:指不符合《需求文档》,输入不合理的数据集合

等价类划分原则

1.规定输入的取值范围或个数时,划分一个有效和两个无效:

  • 假设有一个输入要求用户输入年龄,取值范围为18到65岁,那么可以将等价类划分为一个有效等价类(如25岁)和两个无效等价类(如10岁和80岁),因为这两个取值不在规定范围内。

⒉规定了输入的集合或规则必须要遵循的条件,则划分一个有效和一个无效

  • 假设有一个输入要求用户输入电子邮件地址,规定必须以@example.com结尾,那么可以将等价类划分为一个有效等价类(如example@example.com)和一个无效等价类(如example@gmail.com),因为后者不符合规定的结尾。

3.输入条件是一个布尔值,则划分为一个有效和一个无效

  • 假设有一个输入要求用户选择是否愿意接收促销邮件,那么可以将等价类划分为一个有效等价类(选择愿意)和一个无效等价类(选择不愿意)。

4.输入条件时一组数据,并且每一个输入的值做不同的处理,则划分若干个有效和一个无效

  • 假设有一个输入要求用户输入手机号码,根据手机号码的地区不同,处理方式也不同,那么可以将等价类划分为若干个有效等价类(如中国地区手机号码、美国地区手机号码等)和一个无效等价类(如一个无效的号码)。

5.输入条件规定了必须要遵循的某些规则下,则划分为一个有效和若干个无效

  • 假设有一个输入要求用户设置密码,规定密码必须包含至少一个大写字母和一个特殊字符,那么可以将等价类划分为一个有效等价类(符合要求的密码,如Password#123)和若干个无效等价类(不符合要求的密码,如password123、PASSWORD123等)。 

6.不是所有的等价类都有无效等价类

  • 假设有一个输入要求用户选择性别,那么可以将等价类划分为一个有效等价类(如选择男性)但没有无效等价类,因为选项只有男性和女性两种情况,没有其他无效的选择。 

等价类设计步骤

  1. 先划分等价类:找出所有可能的分类
  2. 确定有效等价类:需求中的条件
  3. 确定无效等价类:与条件相反的情况,再找到特殊情况
  4. 确立等价类后,划分出等价类表(熟练的话可以省略)
  5. 从各个分类中挑选测试用例数据
  6. 生成可以执行的测试用例

举例:计算 1—100 的整数之和(包括 1 和 100)

1.先划分等价类:找出所有可能的分类

  • [1,100]整数
  •  <1整数
  • >100整数
  • 小数
  • 字母
  • 汉字
  • 特殊字符
  • 为空

2. 确定有效等价类:需求中的条件

  • [1,100]整数

3.确定无效等价类:与条件相反的情况,再找到特殊情况 

  •  <1整数
  • >100整数
  • 小数
  • 字母
  • 汉字
  • 特殊字符
  • 为空

4.确立等价类后,划分出等价类表(熟练的话可以省略) 

5. 从各个分类中挑选测试用例数据

 

 6.生成可以执行的测试用例

3.黑盒测试方法论-边界值

  • 通常使用边界值法和等价类配合使用

边界值分析法

  • 大量的软件测试实践表明,故障往往出现在定义域或值域的边界上,而不是在其内部
  • 为检测边界附近的处理专门设计测试用例,通常都会取得很好的测试效果
  • 边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障的能力
  • 边界值分析法是作为对等价类划分法的补充,测试用例来自等价类的边界

边界值确定

  • 上点:边界上的点
  • 离点:离上点最近的点
  • 内点:在输入域内任意一个点
  • 选取正好等于、刚好大于或刚好小于边界值作为测试数据

边界点划分规则 

  • 如果规定了输入域的取值范围
    • 选取刚好在范围边界的点
    • 刚好超过边界的点
  • 如果规定了输入值的个数
    • 最大个数
    • 最小个数
    • 比最小个数少 1
    • 比最大个数多 1
  • 如果规定了输入是一个有序的集合
    • 选取集合的第一个元素
    • 选取集合的最后一个元素

 

 使用边界值法对上边的那个例子的测试用例做补充:

4.黑盒测试方法论-因果图

因果图定义

  • 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法
  • 它适合于检查程序输入条件的各种组合情况
    • “因” —— 输入条件
    • “果” —— 输出结果

因果图适用场景

  • 描述多种条件的组合
  • 产生多个动作

因果图中的基本符号

  • 恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现
  • 非:若原因出现,则结果不出现;若原因不出现,则结果出现
  • 或:有多个原因。若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现
  • 与:有多个原因。若几个原因都出现,则结果才出现;若其中一个原因不出现,则结果不出现

 

因果图中的约束条件

  • 互斥 E:a、b、c 只能有一个成立,但是可以都不成立
  • 包含 I:a、b、c 中至少有一个成立
  • 唯一 O:a、b、c 有且仅有一个成立
  • 要求 R:如果 a 成立,则要求 b 必须也成立,其他的不约束
  • 屏蔽 M:如果 a 成立的时候,强制 b 不成立,其他的不约束

 

因果图法基本步骤 

  • 找出所有的输入条件(因)
  • 找出所有的输出条件(果)
  • 明确所有输入条件之间的制约关系以及组合关系
  • 明确所有输出条件之间的制约关系以及组合关系
  • 找出什么样的输入条件组合会产生哪种输出结果
  • 把因果图转换成判定表
  • 为判定表中的每一列表示的情况设计测试用例

 举例:(交通一卡通自动充值软件系统)

需求解释 

  • 系统只接收 50 或 100 元纸币,一次只能使用一张纸币,一次充值金额只能为 50 元或 100 元
  • 在请投币的后面按 50 元按钮,代表投入 50 元纸币;按 100 元按钮,代表投入 100 元纸币
  • 若按 50 元按钮,并选择充值 50 元,完成充值,提示充值成功
  • 若按 50 元按钮,并选择充值 100 元,提示输入金额不足,退回 50 元
  • 若按 100 元按钮,并选择充值 50 元,完成充值,提示充值成功,退回 50 元
  • 若按 100 元按钮,并选择充值 100 元,完成充值,提示充值成功
  • 若按投币按钮后在规定时间内不选择充值按钮,提示错误,退回投入纸币
  • 若选择充值按钮后不按投币按钮,提示错误

 找到所有输入条件编号

  1. 选择投币 50 元
  2. 选择投币 100 元
  3. 选择充值 50 元
  4. 选择充值 100 元

找到所有输出条件编号

  1. 完成充值提示充值成功
  2. 退回纸币
  3. 提示错误

找出什么样的输入条件组合会产生哪种输出结果,把因果图转换成判定表

  • 条件 1 单独出现       –         2,3
  • 条件 2 单独出现       –         2,3
  • 条件 3 单独出现       –         3
  • 条件 4 单独出现       –         3
  • 条件 1、3组合          –        1
  • 条件 1、4 组合         –        2,3
  • 条件 2、3 组合         –        1,2
  • 条件 2、4 组合         –        1

 

 转化为测试用例

 

5.黑盒测试方法论-判定表

判定表法

  • 因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例
  • 画因果图非常麻烦,影响测试效率,可以直接写判定表,进而编写测试用例

判定表的组成

  • 条件桩:问题的所有条件
  • 动作桩:问题的所有输出
  • 条件项:针对条件桩的取值
  • 动作项:条件项的各种取值情况下的输出结果

 判定表设计步骤

  1. 列出所有的条件桩和动作桩
  2. 确定规则数:条件取值个数^条件数
  3. 填入条件项
  4. 填入动作项。得到初始判定表
  5. 简化判定表

举例:

  • 判断三角形
  • 输入三个正整数 a、b、c,分别作为三角形的三条边
  • 判断三条边是否能构成三角形
  • 如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)

确定条件桩

  • C1:a,b,c 构成三角形?a<b+c、b<a+c、 c<a+b
  • C2:a = b?
  • C3:a = c?
  • C4:b = c?

 确定动作桩

  • A1:非三角形;
  • A2:不等边三角形;
  • A3:等腰三角形;
  • A4:等边三角形;
  • A5:不可能;

 确定条件项和动作项

设计判定表

简化判定表

 

设计测试用例

 

待续~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MQTT】| 搭建——在云服务器上搭建MQTT服务器

系列文章目录 【MQTT】| 搭建——在云服务器上搭建MQTT服务 失败了也挺可爱&#xff0c;成功了就超帅。 文章目录 前言1. EMQX简介2. EMQX部署3. EMQX一些操作指令3.1 启动EMQX3.2 停止EMQX3.3 检查EMQX运行状态3.4 卸载EMQX 4. EMQX设置4.1 进入EMQX控制面板 5. EMQX测试5.1…

模型评估 (Model Assessment)

1.模型评估 (Model Assessment) 笔记来源于《白话机器学习的数学》 我们训练好模型后&#xff0c;要对知道这个模型到底好不好&#xff0c;定量描述这个模型好坏就是模型评估 把获取的全部训练数据分成两份&#xff1a;一份用于测试&#xff0c;一份用于训练。然后用前者来评估…

数据库实训报告3000字

数据库实训报告1 一、实习目的 认识实习是本科教学计划中非常重要的实践性教学环节&#xff0c;其目的是使学生了解和掌握电力生产知识、印证、巩固和丰富已学过的计算机专业课程内容&#xff0c;培养学生理论联系实际&#xff0c;提高其在生产实践中调查研究、观察问题、分析问…

银行账户管理系统

1. 目的与要求 1、目的: (1)熟练掌握 C语言的基本知识和技能: (2)掌握面向对象程序设计的基本思想和方法;(3)能够利用所学的面向对象基本知识和技能&#xff0c;解决简单应用的程序设计 2、基本要求:(1)利用面向对象的方法以及 C的编程思想来完成系统的设计;(2)在设计的过程中…

抽象工厂模式(Abstract Factory)

定义 抽象工厂是一种创建型设计模式&#xff0c;它能创建一系列相关的对象&#xff0c;而无需指定其具体类。 前言 1. 问题 假设你正在开发一款家具商店模拟器。你的代码中包括一些类&#xff0c;用于表示&#xff1a; 一系列相关产品&#xff0c;例如椅子&#xff08;Chai…

091基于深度学习的手写汉字数字识别含10多种模型

emo仓库和视频演示找091期&#xff1a; 银色子弹zg的个人空间-银色子弹zg个人主页-哔哩哔哩视频 效果展示图如下&#xff1a; 代码文件展示如下&#xff1a; 运行01数据集文本生成制作.py可以读取图片路径保存再txt文本中&#xff0c; 运行02train.py可以对txt文本中的图片路…

同程数科基于 Apache Doris 构建统一实时数仓,查询提速数十倍!

本文导读&#xff1a; 同程数科是同程集团旗下的旅游产业金融科技服务平台&#xff0c;为上下游企业和个人消费者提供数字金融科技服务。近年来&#xff0c;随着同程数科业务的不断拓展和用户量的增加&#xff0c;高效可靠的一站式数据中心建设已成为必不可少的需求。为帮助业…

团体程序设计天梯赛-练习集L2篇④

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

WPF 零基础入门笔记(1):WPF静态页面,布局+样式+触发器

文章目录 官方文档往期回顾零基础笔记项目实战&#xff08;已完结&#xff09; WPF项目创建为什么选net core版本 WPF 静态页面WPF 页面布局WPF样式Style样式行内样式行外样式如果是简单样式&#xff0c;可以这么写如果是复杂样式 WPF样式继承WPF触发器单条件触发器多条件触发 …

LLDP(链路层发现协议)详解及C/C++代码实现

LLDP&#xff08;链路层发现协议&#xff09;是一种IEEE标准协议&#xff08;IEEE 802.1AB&#xff09;&#xff0c;它定义了封装在以太网帧中的消息&#xff0c;目的是通过默认情况下每30秒从每个端口定期重传一次&#xff0c;为设备提供一种向LAN&#xff08;局域网&#xff…

20个Java编程技巧

1. 把字符串常量放在前面 通过把字符串常量放在比较函数equals()比较项的左侧来防止偶然的 NullPointerException 从来都不是一个坏主意&#xff0c;就像这样&#xff1a; 这是毫无疑问的&#xff0c;把一种表达式转换成另一种更好的表达式&#xff0c;并不会失去什么。只要我…

mysql锁机制及MVCC底层原理

一、锁介绍 按性能可分为乐观锁&#xff08;适用于读多写少的情况下&#xff0c;如果是写多&#xff0c;导致过多cpu空转&#xff0c;影响性能&#xff09;和悲观锁&#xff08;适用于写多的情况&#xff09;按数据库操作粒度可分为表锁、页锁、行锁按数据库操作类型可分为读锁…

UE4/5动画系列(1.模板制作)

目录 动画模板制作 同步模板组制作 有模板做什么都方便&#xff0c;所以这里我们做一个动画蓝图的模板&#xff08;动物专用&#xff09; 动画模板制作 第一步创建一个动画蓝图的模板 然后找到第三人称的模板&#xff0c;将其模板的蓝图改名&#xff1a; 在动画蓝图的模板里…

团体程序设计天梯赛-练习集L2篇②

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

首个跨云元数据KV存储Xline正式进入CNCF沙箱

2023年6月13日&#xff0c;云原生计算基金会&#xff08;CNCF&#xff09;宣布Xline正式被纳入CNCF沙箱(Sandbox&#xff09;项目。Xline是由达坦科技&#xff08;DatenLord&#xff09;于2022年年底推出的开源项目&#xff0c;是一个用Rust语言写就的&#xff0c;用于元数据管…

hello算法笔记之图

一、图的基础知识 图是一种非线性数据结构&#xff0c;由「顶点 Vertex」和「边 Edge」组成。 1.图的类型&#xff1a; 根据边是否具有方向可以分为有向图&#xff0c;无向图 根据所有顶点是否连通可以分为连通图&#xff08;对于连通图&#xff0c;从某个顶点出发&#xf…

gdb系列-入门篇-day01

gdb基础命令 一个程序要被调试&#xff0c;编译的时候要加上-g选项&#xff0c;例如gcc -g … 先准备一个调试的小代码 #include <stdio.h>int hello() {printf("hello\n");return 0; }int main() {int a[5] {1,2,3,4,5};hello();for(int i0; i<5; i){pri…

springboot使用@Valid 和 @Validated 注解校验详解以及编写一个自定义全局异常类

package com.test.springvalid.config;import lombok.Data; import java.util.HashMap; import java.util.Map;/*** 通用返回结果&#xff0c;服务端响应的数据最终都会封装成此对象* param <T>*/ Data public class R<T> {private Integer code; //编码&#xff1…

Mybatis源码分析_Mapper接口是如何实例化的 (2)

我们在使用Springmybatis的时候&#xff0c;经常都是直接写一个接口和一个对应的 ***Mapper.xml文件&#xff0c;然后业务代码就可以直接注入这个接口了。它是如何做到的呢&#xff1f; 接口&#xff1a; xml 想搞清楚这个问题&#xff0c;那还是要从Mybatis底层源码进行分析的…

智能小车使用IIC屏幕做动作显示界面

一、简介 使用0.96寸IIC屏幕作为遥控动作的显示界面。 外设引脚 stm32f103c8t6单片机IIC引脚有两组 使用I2C1&#xff0c;对应的时钟与数据线分别为PB6、PB7。 IIC屏幕指令 // OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel // OLED_WR_Byte(0x00,OLED_CMD);//---se…