当前位置: 首页 > news >正文

编写测试用例技巧

编写测试用例技巧
一、测试用例来源
1、公司里就有现成模板 (用例模板)
2、自己设计用例模板
3、导出用例管理工具的模板 (例如:禅道)

二、查看用例模板

三、用例模板中内容
必填:
用例编号、用例标题、前置条件、用例步骤、预期结果、优先级
非必填:用例类型、功能模块、创建时间、创建时间、实际结果、系统名称、执行时间

四 、测试用例详解
(一)用例编号
也可称为:用例id 、用例编号、编号、序号
按规则编写: 系统名称__模块名称__编号 (一般情况用大写系统名称和模块名称,用__下划线连接)
例如:WX_FHB_01
(二)用例标题
也称为:测试内容、测试名称、测试标题
定义:描述用例验证什么
案例:
验证微信发红包(新用户)
验证微信发红包(老用户)
验证微信发送红包失败(红包金额大于余额)
验证微信发送红包失败(零钱余额不足)
验证微信发红包超过最大金额有错误提示(>200)
注意点:
(1)用例标题是永远唯一、不存在两条相同的用例
例如:
验证微信发送红包失败(无网络)
验证微信发送红包失败(密码错误)
验证微信发送红包失败(余额不足)
(2)标题描述、清晰、简单、易懂、
(3)标题能加上“验证”尽量加上
(4)用例标题和预期结果相呼应
(5)用例标题要写清楚验证的点
(6)用例标题是陈述句,不能用判断句、选择范围、禁止写:是否、正常等词
(7)不能把 bug写成一个用例
(8)一个无效的等价类就是一条用例,不能多个无效等价类写成一条用例
(三)优先级
高、中、低
高:核心的测试用例(冒烟测试用例),会阻碍大部分其他测试的用例,
举例: 能发红包、
中:备选流功能测试用例
删除、修改、添加、刷新等用例
低:无效等价类的用例、ui界面、字体、色差等

根据优先级给到开发bug等级
致命bug (1级bug)
严重bug (2级bug)
一般bug (3级bug)
建议性bug(4级bug)
(四)前置条件
定义:执行操作之前的准备
举例:
手机、两个微信号、银行卡、网络、
(五)用例步骤
也叫:测试步骤
定义:验证测试标题的具体的步骤
a、测试流程步骤按照序号编写:1,2,3,4,5, (换行alt+回车)
b、测试步骤开头都是动词
c、测试步骤一般不超过8个步骤 ,(简化步骤,前期的动作可以卸一句话上)
d、不能把上一个用例的步骤,作为现在用例的前置条件
e、每一条用例都是独立的
(六)预期结果
定义:达到预期的目标
a、预期结果要详细
b、预期结果要注意隐藏结果
c、页面跳转
d、订单状态有变更
e、预期结果,不能只写成功或者失败
f、页面提示语“”
g、结果设计到页面、数据变化,说明变化的内容
h、如果设计数据中表和字段的变化下来

七、测试用例注意点
1、标题要有代表性 举例:验证单个红包金额大于最大金额有错误提示 (>200) 步骤:输入201
验证单个红包金额最大金额能发送(=200)
2、能通过案例举行编写用例 :
举例:验收密码错误无法送发送 前置条件:支付密码123456 测试步骤:123457
3、提示语句用“” 引号
4、按钮 用【】表示
5、禁止用:是否、正常等语句
6、写用例遵循有的就写,没有的想场景(不可取)
7、 微信发送红包失败(原因)

测试用例设计方法
一、术语
(1)动态测试(dynamic testing):通过运行软件的组件或 系统来测试软件
比如:行驶中的汽车
(2)静态测试(static testing):对组件的规格说明书进行 评审,对静态代码进行走查
比如:展厅的汽车
(3)正式评审(formal review):对评审过程及需求文档的 一种特定评审
例如:用例评审:组内评审,交叉评审
(4) 度量(metric):测量所使用的方法或标准
例如:标准,登录3s
(5) 评审员(reviewer):参与评审的人
(6)记录员(scribe):记录评审会议上的会议纪要
(7)技术评审(Technical Review):同行间对技术进行的评审,目的是技术实现达成共识。
(8) 走查(Walkthrough):由文档作者逐步陈述文档内容,以收集信息并对内容达成一致
(9) 复杂性(complexity):系统或组件的设计或内部结构比较复杂, 导致难以理解,维护或验证的程度
(10) 圈复杂度(Cycloramic complexity):程序中独立路径的数量。可 以衡量一个组件模块的判定结构的复杂程度。
(11)控制流(Control Flow):执行组件或系统的一系列顺序的路径
(12)数据流(Data Flow):表示数据对象的顺利或状态发生变化的过程
比如:待支付已支付待签收
(13)计算圈复杂度三个公式:

(1)圈复杂度= 区域数
5块区域 包括 外面区域
(2)圈复杂度=边数-节点数+2
10-7+2=5
(3)圈复杂度=判定节点+1
4+1=5

二、设计用例方法

掌握常用的设计方法:
(1)黑盒用例设计放方法:(7种)
等价类、边界值,判定表、场景法、状态迁移、因果图(了解)、正交表(;了解),
(2)经验测试方法:(3种)
错误推测法、异常分析法、随机测试;
(3)白盒测试用例设计方法:(5种)
语句覆盖,判断覆盖,条件覆盖,判断、条件覆盖,路径覆盖(基本路径法、Z路径法)

(一)等价类设计用例方法
(1)等价类:指某个输入域的集合,在集合中各个输 入的条件都是等效的。
(2)通常等价类划分为2种情况:
有效等价类:对程序规格说明有意义的、合理 的输入数据
无效等价类:对程序规格说明无意义的、不合 理的输入数据
(3)等价类设计思路

  1. 找输入条件
  2. 为每个输入条件找有效、无效等价类
  3. 为每个等价类编号
  4. 用最少的用例覆盖最多的有效等价类
  5. 每一个无效等价类都是一个用例
  6. 并非所有有效等价类都有无效
  7. 等价类的覆盖可以重复覆盖
    (4)常见的能够划分等价类的地方:
  8. 数值范围
  9. 重复次数
  10. 字符串长度
  11. 字符串组中字符的个数
  12. 文件命名
  13. 文件大小
  14. 屏幕的颜色种类
  15. 超时时间
    (5)等价类的优缺点
    优点:是考虑了单个输入域的各类情况, 避免了盲目或随机选取输入数据的不完整 性和覆盖的不稳定性。
    缺点:方法虽然简单易用,但是没有对组 合情况进行充分的考虑。需要结合其他测 试用例设计的方法进行补充。比如边界值

案例:qq 5-13位纯数字账号
条件:
(1)大于等于5位 小于5位
(2)小于等于13位 大于 13位
(3)纯数字 数字+字母,纯字母,空、null、数字+特殊符号、特殊符号 等
有效等价类:897900137 1、2、3、
无效等价类:1234 、13456789012345 、aaa11232、aabbbbbbb、 、null,null 、##!@123、

案例1:
案例-练习: 现有一个档案管理系统,容许用户通过输入年月对档案文件进行 检索,系统对查询条件年月的输入限定为1990年1月~2049年12月,并规定:日期由6位数字字符组成,前4位表示年,后2位表示月
三个条件
6位数字字符
年份
月份
有效等价类用例
200001 一条用例覆盖3条有效等价类用例
无效效等价类用例
20000a
20000
2000011
18901
205001
200000
200013

案例2:微信红包金额:

参考:
0.01-200 的纯数字,保留两位小数的金额
有效
大于等于0.01 小于等于200 纯数字保留两位小数
199.99

无效
小于0.01 大于200 包含字母 包含特殊符号 超过两位小数
0 666 16a 25% 279.001

(二)、边界值:
边界点定义 :边界上的点
上点
离点:离上点最近的点(即上点左右两边最邻近的点)
内点:在域范围内的点
案例:
qq位数:5-13位
情况1:
上点: 5,13
离点:4,14
内点:10(6-12位)

情况2:
上点: 5,13
离点: 6,12
内点: 10(7-11)
主要根据实际情况测试

边界值分析原则

  1. 如果输入(输出)条件规定了取值范围,则应该 以该范 围的边界内及边界附近的值作为测试用例
  2. 如果输入(输出)条件规定了值的个数,则用最 大个数, 最小个数,比最小个数少一,比最大个 数多一的数作为 测试数据
  3. 如果程序规格说明中提到的输入或输出是一个有 序集合, 应该注意选取有序集合的第一个和最后 一个元素作为测 试数据

案例1:11位手机号
测试:
11位 (正确11位) 11位
12位 (大于11位位数)12-无限
10 位 (小于11位) 1-10
0 空格
案例 :单人红包金额0.002-200元
案例2:微信发红包金额:0.01-200
0.01 最小金额 ,200 最大金额,0.001 小于最小金额, 201 大于最大金额,100有效金额(0.02-199.99)
案例3:
ATM金额输入金额:100-5000
边界:
100最小金额 , 5000 最大金额
0 小于最小金额 , 5100 大于最大金额
1000有效金额 (200-4900)
边界值是发现bug能力最强的一种测试方法

(三)场景法:重要
场景法主要是针对测试场景类型的,顾也称场景流程分析法。
流程分析是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。
根据流程的顺序依次进行组合,使得流程的各个分支都能走到

1》人事考勤系统:离职流程有哪些?
填写申请离职表人事沟通挽留失败审批通过等待一个月离职
2》网购商品流程有哪些?
注册
登录选品下单支付签收==评价

要学会梳理项目的流程:
xmind图 (也叫脑图)
梳理流程的软件:
xmind(我们用) 、亿图、wps

一种是流程控制图:
一种是脑图:

案例:atm取款的流程,通过xmind图梳理

(四) 判定表

条件桩
动作桩
调价项
动作项
结构:由4个部分组成
1)条件桩(condition stub):列出问题的 所有条件(通常条件次序无关紧要)。
2)条件项(condition entry):列出针对 它条件的取值(所有情况下的真假值)
3)动作桩(action stub):列出问题规定 可采取的动作(顺序无约束)。
4)动作项(action entry):列出条件各种情况的应采取的动作。

创建步骤:
1)确定规则的个数:若有N个条件,每一个条件下有2个值,则有2^n种规则。
2)列出所有条件桩与动作桩。
3)输入条件项。
4)输入动作项得到初始判定表。
5)简化(合并相似规则)
6)编写测试用例

案例1:
有一个机器马力大于50p马力,维修记录不全或者已运行10年以上的机器,应给予优先维修。
理解:1、机器马力大于50p马力,维修记录不全 优先维修
2、已运行10年以上的机器优先维修
条件:
马力大于50p
维修记录不全
已运行10年
2的3次方 有组合情况

判定表的作用:
利用判定表将复杂的问题按照各种可能的 情况全部列举出来,能针对不同逻辑条件 的组合值,分别执行不同的操作。

案例2:扫雷游戏
判定表-经典案例:扫雷游戏 条件:

  1. 方块当前状态:标识问号方块、方块初始状态、方块标识红旗标识数字X且周围已标记了X个雷、标识数字X且周围没有 标记完X个雷,标识数字X标雷错误
  2. 鼠标操作:左键、右键、双击
  3. 方块状态:有雷、无雷

动作:

  1. 方块白色
  2. 方块标识问
  3. 方块标识数字
  4. 方块旗子
  5. 炸弹爆炸,游戏结束
  6. 未标识方块闪速
  7. 周围所有的非雷显示

(五)状态迁移法:
(1)定义:过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为
订机票案例1:状态变更
●向航空公司打电话预定机票一>此时 机票信息处于“完成”状态
●顾客支付了机票费用后一->机票信息就变为“已支付”状态
●旅行当天到达机场后,拿到机票后->机票信息就变为“已出票”状态
●登机检票后一>机票信息就变为“已使用”状态
●在登上飞机之前任何时间可以取消自己的订票信息,如果已经支付了机票的费用,则还可以得到退款,取消后一->订票信息处于“已被取消”状态

(2)状态迁移图设计测试用例步膘
1.画出状态迁移图
2.通过状态迁移图出状态转换树
3.从状态转换树推导出测试路径
4.根据测试路径编写合法(正常)测试用例或非法(异常)测试用例
注意:保证从状态转换树的根节点到每个叶节点的每一.条路径都至少设计出一个测试用例。

案例1:
红、黄、黑三种颜色可以互相转化
作业2:
现在去淘宝,京东查看顶订单状态有哪些?
商家端、客户端、平台端
参考:
https://www.axureshop.com/ys/2193767
https://www.axureshop.com/

(六)因果图(了解)===最终打是走向判断表

(1)因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。
其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
因果图方法最终生成的就是判定表。(重要)
它适合于检查软件输入条件的各种组合情况(作用)

(2)因果图中的约束 在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约 束”
。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。
E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1。
例如:一个橙汁按钮、一啤酒按钮 ,只能选择一个按钮
I 约束(或):a、b、c中至少有一个必须为1,即a、b、c不能同时为0。
例如:两个人有2条路有2条路 :1号路线,2号路线,
你可以选1号路线
你可以选1号路线,2号路线两条路线
O约束(唯一):a和b必须有一个且仅有一个为1。
例如:两个人有2条路 :1号路线,2号路线,
只能选择一条路线,不能不选
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
例如:两个人有2条路 :1号路线,2号路线
我选择1号路线,你也只能选择1号路线
M约束(强制):若结果a为1,则结果b强制为0。
例如:两个人有2条路 :1号路线,2号路线
我选择1号路线,你也只能选择2号路线

(3)因果图中的4种基本关系在因果图的基本符号中,
图中的左结点ci 表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci与ei取值0或1,0表示某 状态不出现,1则表示某状态出现。
恒等:若 c1 是1,则 e1 也为1,否则e1 为0。
例如:有钱富豪
非:若 c1 是1,则 e1 为0,否则e1为1。
例如:有钱
穷人
或(符号:v):若 c1 或 c2 或 c3 是1,则e1 为1,否则e1为0
例如:有钱人== 有车或有房或存款
与():若 c1 和 c2 都是1,则e1 为1,否则e1为0。
例如:有钱人== 有车、有房、存款(同是满足)

(4)
因果图的步骤:
1.把大的系统规格划分解成可以测试的规格片段
2.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
3.画出因果图
4.把因果图转换成判定表
5.简化判定表
6.用判定表中的每一列生成测试用例
(5)
因果图转换判定表的方法:

  1. 将因果图中的所有条件(因)填入判定表 的条件桩中
  2. 将因果图中的所有动作(果)填入判定表 的动作桩中;
  3. 根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,在需要时优化判定表
    (4)
    因果图的优点/缺点 优点:
  4. 等价类法尽管各个输入条件可能出错的情况都考虑到了,但是多个输入条件组合起来出错的情况却被 忽略了2. 因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例
  5. 因果图分析还能为我们指出,程序规格说明描述中存在什么问题缺点:
  6. 输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到
  7. 即使得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目及其庞大

案例1:
案例:
一个处理单价为5角钱的饮料的自动售货机。其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

案例2:
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一个数字。
结果:
21——修改文件;
22 ——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

(七)正交表(了解)

(1)正交试验设计法,是从大量的试验点中挑选出适量的、有代表性的点,应用依据迦罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法。
(2)正交常用的术语
指标:通常把判断试验结果优劣的标准叫做试验的指标
因子:所有影响试验指标的条件
水平值:影响试验因子的取值
案例: 姓名、身份证、手机号
3个条件是指因子
填或不填是两个水平值 2
2的3次方 总的8种实验方法
正交表算法:4种实验方法
计算公式:实验数=因子(水平数-1)+1
4=3
(2-1)+1
案例2:7*(2-1)+1=8种实验方法

(3)正交表特点:
1》整齐可比性
在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在试验中每个因素的每个水平与其它因素的每个水平参与试验的机率是完全相同的,这就保证在各个水平中最大程度的排除了其它因素水平的干扰。
2》均衡分散性
在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的试验条件。
(4)
用正交表设计测试用例的步骤:
(1)有哪些因素(变量或条件)
(2) 每个因素有哪几个水平(变量或条件的取值)
(3) 为了满足整齐可比性,选择一个合适的正交表
(4) 把变量的值映射到表中(建议第1行是全真或全假)
(5) 把每一行的各因素水平的组合做为一个测试用例
(6) 加上你认为可疑且没有在表中出现的组合
正交的原则:两两组合
正交表也是为了设计组合用例的一种方法

三种给予经验测测试技术:(三种)
(1)错误推测法:
根据经验猜想,已有的缺陷,测试经验和失败数据等可能有什么问题并依此设计测试用例。
例如:金额小数点进程显示,无法解析
(2)异常分析法:
系统异常分析法就是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依此设计测试用主要针对系统的容错能力、故障恢复能力进行测试。
例如:系统win11中安装最新版本微信,在指定安装版本1.10,直接覆盖;
高版本 安装后,在直接安装低版本,之前无法直接覆盖;现在可以覆盖,提高容错性
(3)随机测试法:
随机测试指的是测试中的所有的输入数据都是随机生成的,其目标是模拟用户的操作。
例如:没有事前写好用例或者准备,没有经验的人,随机去测试份方法

等价类 、边界值 主要针对单个场景功能用例
判定表、正交表、因果图 设计方法 适合组合功能的用例
场景法 合适主流程,
状态迁移 适合:状态的变更用例
错误推测法、异常分析法、随机测试法:在根据经验测试方法进行测试

(1)、使用各种测试方法思路
a、使用场景法先将测试主流程和次要流程用例写出来 (xmind图,发红包流程)
b、根据每个节点使用等价类、边界值进行设计用例 (金额:0.01 ,200)
c、遇到组合情况用:判定表、因果图、正交表来设计用例 (金额、个数、祝福语、封面 )
d、在将状态的变化使用状态迁移法设计用例(发红中、发送失败、发送成功)
e、再根据自己的经验追加测试用例,考虑异常测试用例

用例分类:测试
功能测试用例、
边界值测试用例
状态转换的测试用例
异常测试测试用例
性能测试用例
安全测试用例

优化测试用例:
利用设计测试用例的10种方法不断的对测试用例进行分解与合并

http://www.wxhsa.cn/company.asp?id=7589

相关文章:

  • 牛客刷题-Day1
  • TENGJUN防水TYPE-C 16PIN连接器技术解析:从结构设计到认证标准的全面解读 - 实践
  • 第三届人工智能与自动化控制国际学术会议(AIAC 2025)
  • 图纸安全外发平台全解析
  • webshell流量 - voasem
  • 软件测试分类
  • Linux下显卡驱动简单测试
  • 大模型三阶段训练方法(LLaMa Factory)
  • 算法与数据结构 8 - 线性筛求一般积性函数
  • SpringMVC使用jasypt加密配置文件 - Commissar
  • 三行Python代码实现深度学习推理:Infery全面解析
  • 基于Python+Vue开发的口腔牙科预约管理系统源码+运行步骤
  • 网页禁止复制
  • 混元开源之力:spring-ai-hunyuan 项目功能升级与实战体验
  • ECT-OS-JiuHuaShan 框架实现元推理,是人类文明的金种子
  • MATLAB实现连续投影算法
  • PS辉光眩光特效插件 BBTools Glow Glare 2 V2.4.3 For Photoshop
  • 内外网文件摆渡工具怎么选的实用指南
  • SAP 文件上传方式导入上、下限
  • 拓展坞相关问题
  • 深入解析:第 9 篇:深入浅出学 Java 语言(JDK8 版)—— 吃透泛型机制,筑牢 Java 类型安全防线
  • 鸿蒙应用开发从入门到实战(八):ArkTS自定义组件语法
  • 剑指offer-31、整数中1出现的次数
  • 动态黑名单的运作机制与实时防护策略
  • 【译】让性能民主化:Copilot Profiler Agent 在实际代码中的应用
  • JS对象池
  • objectarx项目props文件中判断条件的修改
  • 效率翻倍新技能:JDK8后的新特性
  • 实用指南:《URP管线中后处理效果的创新应用与优化实践》
  • 百日筑基