测试用例设计
通常,我们说测试用例一般包含十大点:用例编号、测试项、测试标题、用例属性、重要级别、预置条件、测试输入、操作步骤、预期结果、实际结果。
我们先来说说设计测试用例常用的七大方法。
设计测试用例的七大方法
一、等价类划分
等价类:是指具有相同属性或方法的事物集合,也就是说,这个集合中的每个个体所表现的特征与其他个体完全一致。在软件测试中,同一被测对象,集合中的一个个体被接受或者被拒绝,其他任意个体都应该被接受或者被拒绝。
等价类划分又分为:有效等价类和无效等价类。
有效等价类:是指针对被测对象而言,输入是合理的、有意义的、系统所接受的。
无效等价类:是指针对被测对象而言,输入是不合理的、无意义的、系统所不接受的。

二 、 边界值
边界值的三点:上点:是指边界上的点,无论此时的域是开区间还是闭区间。开区间的话,上点就是在域外,闭区间的话,上点就是在域内。离点:是指离上点最近的点,这里就跟是闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果是闭区间,那么离点就在域外。内点:域内的任意点都是内点。举例:
| 区间 | 上点 | 离点 | 内点 |
| [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、请求方式、请求头信息也写入接口测试用例中,每个公司的接口测试用例模板大同小异。


浙公网安备 33010602011771号