测试用例设计

通常,我们说测试用例一般包含十大点:用例编号、测试项、测试标题、用例属性、重要级别、预置条件、测试输入、操作步骤、预期结果、实际结果。
我们先来说说设计测试用例常用的七大方法。

 

设计测试用例的七大方法

 

一、等价类划分

等价类:是指具有相同属性或方法的事物集合,也就是说,这个集合中的每个个体所表现的特征与其他个体完全一致。在软件测试中,同一被测对象,集合中的一个个体被接受或者被拒绝,其他任意个体都应该被接受或者被拒绝。
等价类划分又分为:有效等价类和无效等价类。

有效等价类:是指针对被测对象而言,输入是合理的、有意义的、系统所接受的。

无效等价类:是指针对被测对象而言,输入是不合理的、无意义的、系统所不接受的。

 

 



 

二 、 边界值

边界值的三点:上点:是指边界上的点,无论此时的域是开区间还是闭区间。开区间的话,上点就是在域外,闭区间的话,上点就是在域内。离点:是指离上点最近的点,这里就跟是闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果是闭区间,那么离点就在域外。内点:域内的任意点都是内点。举例:

区间 上点 离点 内点
[6,20] 6,20 5,21 13
(6,20] 6,20 7,21 13
(6,20) 6,20 7,19 13

 

 

三、判定表

判定表:是指分析和表述若干输入情况下,被测对象针对这些输入做出的响应的一种工具。
优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。

 

四、因果图

因果图:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
等价类划分和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数组,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图。
采用应该图设计测试用例的步骤:• 根据程序规格说明书描述,分析并确定因(输入条件)果(输出结果),画出因果图。• 将得到的因果图转换为判定表• 为判定表中每一列所表示的情况设计一个测试用例

 

 

五、正交试验法

正交试验设计法(Orthogonal Experimental Design)是从大量的试验点中挑选出适量的、有代表性的点,应用依据伽罗瓦理论导出的“正交表”,合理地安排试验的一种科学的试验设计方法,是研究多因素、多水平的一种设计方法。
它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备“均匀分散、齐整可比”的特点,正交试验是一种基于正交表的,高效率、快速、经济的试验设计方法。
正交试验分析法包括以下常用术语:• 指标:通常把判断试验结果优劣的标准叫做试验的指标。• 因子:是指所有影响试验指标的条件。• 因子的状态:是指影响试验因子的因素,也称之为因子的水平。

 

 

六、状态迁移

状态迁移:是指关注被测对象的状态变化,需求文档中是否有不可达的状态或非法的状态,是否产生非法的状态转移。它的优点是:保证每一个功能/状态的可达项都被覆盖。缺点是:对无效的路径无法覆盖。测试方法:• 根据需求明确状态节点• 绘制状态迁移图• 绘制状态迁移树• 抽取测试用例举例:机票预定系统:• 顾客电话/网址预定机票,此时机票处于预定状态• 顾客支付后,机票处于已支付状态• 顾客到达机场,取票后,此时机票处于已出票状态• 登机检票后,机票状态变为已使用状态• 除已使用状态外,其他状态均可以取消订票,状态为已取消状态。迁移图如下: 

 

 

 状态迁移树如下: 

 

 


 测试用例如下:• 已预定-已取消• 已预定-已支付-已取消• 已预定-已支付-已出票-已取消• 已预定-已支付-已出票-已使用

 

七、场景设计法

在实际测试中,经常有这种情况,像安装程序向导,它是由多个界面组成的,并且他们之间彼此有联系,而且他们之间是有流程顺序的,在面对这种测试时,就可以使用场景法了。
场景法中,有几个基本概念:基本流程:指按照正确的事件流来实现的流程,最后能够达到目标的流程备选流程:指通过实现业务流程时,因错误操作或者异常输入,导致流程存在反复,但最终能够完成期望业务的流程异常流程:通过实现业务流程时,因错误操作或异常输入,导致业务没有正确完成例子:ATM取款:基本流程:插入卡,输入密码,输入金额,取款,取卡备选流程:插入卡,输入密码错误,重新输入后完成剩余操作异常流程:插入卡,输入密码,错误3次,吞卡 

 

抽奖功能测试用例

 

业务规则

每个手机号码每天只有三次抽奖机会。

接口信息

接口地址:http://xxxxxxxx:7080/sq/goodLuck请求方式:POST请求头:Content-Type: application/x-www-form-urlencoded

请求参数

POST请求是,enctype应为:application/x-www-form-urlencoded

 

 

 

返回示例:

抽奖成功:

{    "retcode": 0,    "count" : 1,    "result" : "true"}

抽奖失败:

{    "retcode": 1,    "desc": "已经没有抽奖次数了,下次再来吧"}

异常情况:

{    "retcode": 2,    "desc": "错误,手机号码不正确"}

 

 

返回参数

 

 

 

 



 

测试用例

 

根据以上的接口信息,我们可以编写如下测试用例(这里为了排版方便,我们只留下重要的几列):


 

 

以上便是功能测试,所设计的测试用例,接口测试的测试用例;

通常是在功能测试用例的基础上,添加:请求参数、断言结果参数,有时候也会把请求URL、请求方式、请求头信息也写入接口测试用例中,每个公司的接口测试用例模板大同小异。

posted @ 2020-06-03 16:33  反着来就对了  阅读(819)  评论(0)    收藏  举报