如何编写测试用例

2023-11-19

测试用例的内容

用例编号: 用于唯一的识别用例,能够根据用例编号识别我们测试所属的产品、模块、测试阶段等,一般格式为 A-B-C-D。

  A:一般用来表示产品或者项目名称

  B:一般表示用例的属性(测试阶段) ST -系统测试 UT-单元测试 IT-集成测试

  C:表示用例所属模块

  D: 编号

测试项:表示用例所属模块

用例名称:描述测试用例的测试点,尽量不要重复

优先级:体现测试用例的重要程度,一般高、中、低

前置条件: 执行用例前需要先满足的条件。

操作步骤:根据被测对象的业务流程描述出操作的每一个步骤(包括动作、数据)

预期结果:根据需求描述出测试用例中的每一个步骤操作后预期要达到的效果(界面表现、功能表现、数据表现)

例:

在这里插入图片描述

等价类

原理:

根据需求将被测对象的所有可能的输入划分为若干集合,集合中每一个元素(除上点、离点),对于发现错误的效果是等价的

分类:

有效等价类:对于被测对象来说,集合中每一个元素都是有效的数据

无效等价类:对于被测对象来说,集合中每一个元素都是无效的数据

划分原则:

1、需求中规定了取值的范围或者取值的个数,此时可以划分出1个有效的等价类,2个无效的等价类。

  例:某注册功能,规定用户名长度为6-10个字符

    有效等价类【6,10】 

    无效等价类,<6,>10.

2、需求中规定了输入值的集合或者必须满足某个条件,此时可以划分出1个有效等价类,1个无效等价类

  例:某注册功能,规定用户名只能输入英文字符

    有效等价类:英文字符

    无效等价类:非英文字符

3、需求中规定了输入值为一个布尔值,此时可以划分出1个有效等价类,1个无效等价类

  例:性别

4、需求中规定了输入项的一组值,并且程序会对每一个值分别进行不同的处理,此时可以划分出若干个有效等类,1个无效等价类。

  例:某电商平台对VIP等级(假设有10个等级)进行划分,不同等级的VIP客户可以享受不同的折扣

    有效等价类:10个有效等价类  (VIP1-10)

    无效等价类:非VIP客户

使用步骤
1. 根据需求。分析被测对象,划分出有效等价类和无效等价类
2. 理出等价类表,为每一个等价类编号
3. 为有效等价类编写测试用例

原则:

1条用例尽可能多覆盖未被覆盖的有效等价类,重复操作,直到所有的有效等价类被覆盖完

4.为无效等价类编写测试用例

原则 :每条测试用例只覆盖1个无效等价类,重复操作,直到所有无效等价类被覆盖完

边界值分析法

原理:

大多数的缺陷都出现在输入的边界上或者边界附近,如果边界以及边界附近的值都不会引发错误,则集合内其他的值引发错误的概率也非常低

概念:

上点:输入边界上的点

离点:离上点最近的点,如果输入域为开区间,则离点在有效范围内,如果输入域为闭区间,则离点在有效范围外

内点:输入域范围内的点

      例:

        [6,10]   上点为 6、10  ,离点为5,11, 内点为[7,9] 

        (6,10) 上点为6,10 ,离点为(7和9),内点为(8)

        [6,10) 上点为(6,10),离点为(5,9),内点为(7,8)

流程分析法

流程图的基本使用

基本图像:
在这里插入图片描述
在这里插入图片描述

    例:欧几里得算法(计算两个整数的最大公约数)

      输入2个整数m、n 计算出 m除以n的余数r ,判断r的值是否等于0,如果r=0,则n为最大公约数;如果r≠0,将n的值给m,r的值给n,继续计算余数r,知道r=0为止。

在这里插入图片描述

基本概念 :

基本流

备选流

异常流

根据需求,画出流程图

使用步骤:

根据流程图,提取测试路径

利用等价类,边界值为每一条路径设计测试用例

例1:登录功能:

输入用户名、密码,验证通过后进入系统主页面。如果错误,系统判断连续错误次数是否达到3次,如果达到则提示错误信息,锁定账号;未达到3次,则提示用户名或密码错误,请重新输入。

在这里插入图片描述

根据流程图提取测试路径

  基本流:1-2-3-4

  备选流:1-2-55-6-7-8-2-3-4

  异常流:1-2-5-6-9-10-11

为每条路径设计测试用例

在这里插入图片描述

例2:ATM取款流程(画出流程图,提取测试路径,分别编写1条基本流、备选流、异常流的测试用例)

  1、插入银行卡

    如果银行卡合法,则进入下一步输入密码

    如果银行卡非法,则提示银行卡非法,流程结束

  2、输入密码p

    如果密码正确,则进入下一步输入取款金额

    如果密码错误,判断密码连续错误次数是否达到3次,如果达到3次则提示错误,流程结束;如果没有达到3次,则重新输入密码

  3、输入取款金额m

    如果m不是100的整数倍,提示:取款金额必须为100的整数倍,重新输入取款金额

    如果m>3000,提示单笔取款金额不能超过3000,重新输入取款金额

    如果m>账户余额,提示账户余额不足,重新输入取款金额

    如果取款金额合法则进入下一步

4、ATM吐钞,流程结束

流程图
在这里插入图片描述

  - 测试路径
      - 基本流:1-2-4-5-9-10-11-12-13-14
      - 备选流:

          1-2-4-5-6-7-8-5-9-10-11-12-13-14

          1-2-4-5-6-7-8-5-9-10-15-16-10-11-12-13-14

          1-2-4-5-6-7-8-5-9-10-11-17-18-10-11-12-13-14

          1-2-4-5-6-7-8-5-9-10-11-12-19-20-10-11-12-13-14
      - 异常流

          1-2-3

          1-2-4-5-6-21

测试用例
在这里插入图片描述

例:某注册功能,规定用户名长度为6-10个

判定表法

用于分析和表达在不同条件下程序执行不同动作的工具

组成:

在这里插入图片描述

条件桩:列出会影响最终结果的所有的条件(被测功能的所有输入)

动作桩:理出程序可能做出的所有动作 (被测功能在不同的输入下可能的输出)

条件项:不同输入条件的组合(比如正确的用户名,错误的密码)

动作项:在指定的条件下被测功能动作

使用步骤:
1. 分析需求,获取被测功能的输入输出
2. 根据输入输出,定义条件桩、动作桩,完成设计判定表
3. 优化判定表(合并、删除)
4. 利用等价类、边界值方法为每一条测试设计测试用例

例:输入年月日,统计该日期为当年的哪一天

在这里插入图片描述

    分析输入与输出,设定判定表

    规则7、11、12、18、24位无效规则

    编写测试用例(利用等价类与边界值法为每条规则编写测试用例,补充规则未覆盖的测试点)

在这里插入图片描述

例2:输入年月日,计算该日期后一天的日期(比如输入2000年2月29日,输出2000年3月1日)

在这里插入图片描述

例3:某文件管理系统中对修改文件名有如下要求:第一个字符必须是A或者B,其余字符必须为数字,满足条件则修改文件名成功。如果第一个字符不合法,提示:第一个字符必须为A或者B;如果其他字符不合法,提示:其他字符必须为数字

在这里插入图片描述

正交试验法

基于埃洛瓦理论,可以在保证试验质量的前提下大大的降低试验次数

基本概念:

因子:影响试验结果的条件

水平:每一个因子可能的取值

使用方法:
1. 分析需求,获取因子数,因子的水平数
2. 根据因子数以及因子的水平数,选择对应的正交表(行数最少)
3. 根据实际情况、经验优化正交表
4. 利用等价类、边界值方法为每一条规则设计测试用例。

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

如何编写测试用例 的相关文章

  • numpy基本教程

    此处所指的数组就是numpy的ndarray 1 numpy加载npz文件 变量filename存放npz文件的地址 加载文件 data seq np load graph signal matrix filename data np lo
  • CSS选择器汇总

    CSS选择器汇总 选择器选择所有元素 选择器也可以选择另一个元素内的所有元素

随机推荐

  • solidworks启动慢的原因在这里

    你打开SOLIDWOKRS需要多长时间 有的人可能是十秒左右SOLIDWOKRS 有的人可能要等上一两分钟才能看到SOLIDWORKS的界面 那么我们今天抛开硬件的差异 主要针对软件和系统环境的设置帮助大家加快打开SOLIDWORKS的速度
  • HBase的Compact和Split源码分析与应用--基于0.94.5

    HBase的Compact和Split源码分析与应用 基于0 94 5 经过对比 0 94 5以后版本主要过程基本类似 有些新功能和细节增加 一 Compact 2 1 Compact主要来源 来自四个方面 1 Memstoreflush时
  • 数组、字符串、Math常用的API

    数组的API 方法 用法 concat 连接两个或多个数组 并返回已连接数组的副本 原数组不变 join 将数组的所有元素连接成一个字符串 返回字符串 原数组不变 toString 将数组转换为字符串 并返回结果 from 从对象创建数组
  • PID控制算法01

    PID控制算法 PID控制算法公式 原理 参数作用 PID算法及改进 两个基本类型 位置型PID控制 增量型PID控制 积分环节改进的PID控制 积分分离的PID控制 变速积分的PID控制 抗积分饱和的PID控制 微分环节改进的PID控制
  • 数据结构 --- 数组

    1 求数组中第二大的数 1 定义两个变量 2 const int MINNUMBER 32767 3 int find sec max int data int count 4 5 int maxnumber data 0 6 int se
  • 软件测试中动态测试与静态测试的区别

    这里讲一下软件测试中动态测试与静态测试的区别 静态测试主要包括 1 代码检查 代码会审 代码走查 桌面检查 2 静态结构分析 3 代码质量度量 动态测试主要包括 1 黑盒测试 又称功能测试 这种方法把被测软件看成黑盒 在不考虑软件内部结构和
  • 2023年深圳杯数学建模A题影响城市居民身体健康的因素分析

    2023年深圳杯数学建模 A题 影响城市居民身体健康的因素分析 原题再现 以心脑血管疾病 糖尿病 恶性肿瘤以及慢性阻塞性肺病为代表的慢性非传染性疾病 以下简称慢性病 已经成为影响我国居民身体健康的重要问题 随着人们生活方式的改变 慢性病的患
  • Python中的常见问题与解决方案

    机器学习作为当今最热门的领域之一 为数据科学和人工智能带来了巨大的突破和进步 然而 在Python中进行机器学习和深度学习开发时 我们可能会遇到一些常见的问题 本文将分享一些这些常见问题 并给出解决方案 帮助您更好地进行机器学习和深度学习的
  • js 正则exec()函数在循环中使用

    在每次循环中 需要把正则表达式的lastIndex重置为0 如 reg lastIndex 0
  • Swift Codable 自定义默认值解码

    前言 最近我们公司服务端修改了某个接口返回数据结构 减少了一些字段 导致iOS这边codeable解码失败 获取不到正确的数据信息 相关业务无法完成 不想使用可选值类型 可以使用属性包装器实现对基础类型的包装 decode解析时给定默认值
  • 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议101~109)

    我命由我不由天 哪吒 建议101 注意Class类的特殊性 建议102 适时选择getDeclaredXXX和getXXX 建议103 反射访问属性或方法时Accessible设置为true 建议104 使用forName动态加载类文件 建
  • CSS中设置表格TD宽度的问题

    CSS布局 表格宽度不听使唤的实例 想把表格第一例宽度设为20 其他自适应 但CSS中宽度是等宽的 只设这一行也不起作用 但是在实际应用中总是等宽处理 并不按照样式来走 XML HTML代码
  • Linux 添加ssh公钥 实现免密认证

    ssh 无密码登录要使用公钥与私钥 linux下可以用用ssh keygen生成公钥 私钥对 1 添加A服务器公钥到B服务器 2 到A服务器输入命令ssh keygen 一路回车 3 找到A服务器的 root ssh id rsa pub
  • Windows环境下3分钟就能安装一个Ubuntu

    作为一名IT人士 如果你手上没有一个私人的Linux环境是说不过去的 单独购买云服务器来搭建代价太高 用磁盘分区装双系统步骤也繁琐 那怎样在3分钟内快速搭建出一个私人的Linux环境呢 一 在Windows系统下 装Linux的常用方法是
  • Redis之hash类型

    文章目录 Redis之hash类型 1 设置一个字段 获取一个字段 2 获取所有字段值 3 判断字段是否存在 4 设置多个字段 获取多个字段 5 只获取字段名 字段值 6 获取某个key内全部数量 7 增加数字 8 删除key内字段 9 字
  • form表单传递对象数组

    ajax传递数组 form表单提交对象数组 在JSP页面开发中 我们常常会用到form表单做数据提交 由于以前一直只是使用 form表单提交单个对象 只要表单文本域的name值和接收的对象的属性名一致 那么传值就没有什么问题 不过 在前几天
  • 【狂神说Java】CSS快速入门

    目录 1 什么是CSS 11 什么是CSS 1 2 发展史 1 3 快速入门 1 4 CSS的三种导入方式 2 选择器 2 1 基本选择器 2 2 层次选择器 2 3 结构伪类选择器 2 4 属性选择器 常用 3 美化网页元素 3 1 为什
  • 【前端】菜单栏设计(html、css)

    先展示一下效果图 目录 一 代码 1 1 html 1 2 css 二 代码分析 2 1 浏览器配置 2 1 1 normalize css 2 1 2 html5shiv 2 2 html分析 2 css解析 一 代码 1 1 html
  • 源文件字符集,编译器内部字符集,执行字符集,控制台乱码问题,Qt中文问题

    源文件字符集 源文件本身也是文本文件 所以源文件字符集是指源文件保存时采用哪种字符集编码 VC 下源文件默认是gbk编码 如果想要更改 可以通过 文件 高级保存选项 修改某个源文件的编码方式 似乎没有什么选项能够设置创建项目时的源文件编码
  • 如何编写测试用例

    文章目录 测试用例的内容 等价类 边界值分析法 流程分析法 判定表法 正交试验法 测试用例的内容 用例编号 用于唯一的识别用例 能够根据用例编号识别我们测试所属的产品 模块 测试阶段等 一般格式为 A B C D A 一般用来表示产品或者项