设计测试用例

简介: 这篇文章主要介绍测试用例相关的知识,一个优秀的测试人员,需要具备设计优秀测试用例的能力。

1.测试用例的基本要素


测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。


测试用例的出现主要解决了测什么和怎么测的问题;测试用例的好坏与产品测试质量具有很大的关联关系。


2.设计测试用例的万能公式


设计测试用例的万能公式,应该从以下六个方面的测试来得出结果:


功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试


  • 功能测试:对产品的功能设计测试用例(来源是需求文档或者日常生活经验)
  • 性能测试:开发产物:高并发、响应时间等方面的测试;物品:特性的测试。(功能测试没有问题不代表性能好)
  • 界面测试:每个元素的大小、形状、颜色、材质(仅物品有);页面跳转、文字的错别字、遮挡情况等
  • 兼容性测试:软件的不同版本是否兼容、不同浏览器、不同系统、数据的兼容性等方面
  • 易用性测试:产品是否具备简单易上手的属性
  • 安全测试:用户的隐私数据是否加密(注册场景、接口返回值等)、SQL注入问题、越权问题


兼容性测试里面需要注意:

不同的浏览器、不同的版本可能会有非常非常多,不可能所有的都去进行测试,我们应该遵循以下两条规则:

1.大部分用户使用的

2.参考数据管理平台给出的数据选项(数据后台可以检测到大部分用户使用到的浏览器/版本/手机型号)


针对上边的万能公式我们来用下边这两个例子进行练习,通常测试用例的设计都是使用思维导图的方式:


2.1 水杯的测试用例


微信图片_20230111224835.png

2.2 登录界面的测试用例


登录界面效果图:


微信图片_20230111224832.png

微信图片_20230111224828.png


3.测试用例具体的设计方法


3.1 等价类


依据需求将输入(特殊情况)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。


等价类分为有效等价类和无效等价类,有效等价类就是针对需求文档的要求是有意义的集合,无效等价类就是针对需求文档的要求是没有意义的集合。


使用等价类法来设计测试用例的步骤如下:

1.确认有效等价类和无效等价类

2.编写测试用例


比如在实现一个登录功能时,密码要求必须是6 ~ 18位,那么针对该功能的有效等价类就是6 ~ 18位,无效等价类就是小于6位或者大于18位。

进一步设计出的测试用例就是:


6~18位:具体是10位

小于6位:具体是3位

大于18位:具体是20位


3.2 边界值


边界值分析法通常是作为对等价类划分法的补充,其测试用例来自等价类的边界。


边界值分为有效边界和无效边界。


还是使用登录密码的例子,密码要求输入6 ~ 18位,那么有效边界就是6、18,无效边界就是5、19,这样就设计出了4个测试用例。


3.3 判定表


判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。该方法的使用场景较少,适用于输入条件的组合对应不同的结果的场景。


使用判定表设计测试用例的步骤:

1、确认输入条件和输出条件

2、找出输入条件和输出条件之间的关系

3、画判定表

4、根据判定表编写测试用例


案例:双11活动,某购物平台活动规定,当订单使用了红包或者订单金额大于300元,则该订单是优惠订单,否则是不优惠订单。

1、确认输入条件和输出条件(字母、数字作为平替代表)

输入条件:红包(A) 金额大于300 元(B) 订单已提交(C)

输出条件:有优惠(1) 无优惠(2)

2、找出输入条件和输出条件之间的关系

先确定输入条件之间的可能组合关系,最后根据组合给出对应的输出结果。


微信图片_20230111224823.png

3、画判定表


微信图片_20230111224819.png

4、根据判定表编写测试用例

1)有红包并提交订单,则为有优惠订单

2)金额大于300并提交订单,则为有优惠订单

3)有红包,金额大于300并提交订单,则为有优惠订单

4)有红包,金额小于300但不提交订单,则为无优惠订单

5)无红包,金额大于300但不提交订单,则为无优惠订单

6)无红包,金额小于300,提交订单,则为无优惠订单

7)有红包,金额大于300但不提交订单,则为无优惠订单

8)无红包,金额小于300,不提交,则为无优惠订单


3.4 正交排列


正交试验设计法指从大量的试验中挑选出适量的、有代表性的点,依据“正交表”从而合理的设计出测试用例。(该方法用的也比较少)


一个正交表表示为L4(2^3),4代表的是4组试验(4个测试用例),3代表的是因素数(输入条件),2代表的是每个因素对应的水平数(输入条件的可能选项)


正交表有以下两个特性:

1)每一列中,不同的数字出现的次数相等

2)任意两列中数字的排列方式齐全且均衡


微信图片_20230111224816.png

根据正交表设计测试用例的步骤:

1、找出元素和水平

2、生产正交表(需要借助生成正交表的工具:allpairs)

3、根据正交表来编写测试用例

4、补充可能存在遗漏但是非常重要的测试用例


案例:注册页面(预览图如下)

每个元素对应的水平都是:填写、不填写


微信图片_20230111224813.png

1、找出因素和水平

因素:姓名、电子邮箱、密码、确认密码、验证码

水平:填写、不填写

2、使用allparis生成正交表


微信图片_20230111224809.png

(利用allpairs生成的正交跟实际的正交表可能有出入,但是仍然不影响我们使用allpairs生成正交表)

3、根据正交表编写测试用例

4、补充可能存在遗漏但是非常重要的测试用例(如第7条测试用例)


微信图片_20230111224806.png

使用allpairs生成正交表的步骤如下:

1、将水平和因素写入Excel


微信图片_20230111224803.png

2、在allpairs的同级目录创建一个新的txt文件(0110.txt),复制Excel中的因素和水平,粘贴到文本(0110.txt)中,直接保存,不要做其他任何操作。


3、在cmd命令行中使用allpairs工具生成正交表


微信图片_20230111224759.png

4、查看结果


微信图片_20230111224756.png

3.5 场景设计法


现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。使用场景事件流描绘出事件触发时的情景有利于测试设计者设计测试用例,使测试用例更容易理解和执行。


事件流分为基本事件流和备选事件流【即正常情况和非正常情况】


以我们去ATM取钱为例,依据这个场景,描述出事件流:


微信图片_20230111224748.png

依据事件流编写测试用例:

1、基本事件流的用例:

先插卡,输入正确的密码,选择取款功能,取钞,退卡

2、备选事件流:

1)插入卡后,卡被ATM卡住…退卡

2)插入卡后,密码错误…退卡

3)…


3.6 错误猜测法


该方法就是依据测试人员的工作经验和积累,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。


这个方法的缺点是难以系统化,并且过度依赖个人能力。

相关文章
|
7月前
|
安全 测试技术 数据安全/隐私保护
设计测试用例
设计测试用例
52 0
|
算法 测试技术
需求不明确时,如何设计测试用例?
需求不明确时,如何设计测试用例?
141 0
|
测试技术 数据安全/隐私保护 UED
【软件测试】如何设计测试用例?
设计测试用例的万能公式: 功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试
|
测试技术
06-测试用例设计方法-场景法
06-测试用例设计方法-场景法
|
测试技术 数据安全/隐私保护
测试用例具体的设计方法
测试用例具体的设计方法
126 0
测试用例具体的设计方法
|
算法 安全 测试技术
【软件测试】测试用例的设计方法
测试用例写的过于简单,则可能失去了测试用例的意义,设计过于简单的测试用例其实并没有真正的进行设计,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已,测试用例设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试
【软件测试】测试用例的设计方法
|
消息中间件 缓存 中间件
【测试基础】二、我好像真的不会设计“好的”测试用例
【测试基础】二、我好像真的不会设计“好的”测试用例
【测试基础】二、我好像真的不会设计“好的”测试用例
|
机器学习/深度学习 存储 算法
测试用例的设计方法(全)
等价类划分方法、设计测试用例、实战演习
|
测试技术
测试用例七种设计方法总结
编写测试用例的基本方法 1.等价类划分法 2.边界值法 3.因果图法 4.判定表 5.场景法 6.正交表 7.错误推测法