[软件测试] 测试用例编写方法

一、等价类划分法(穷举)

        1、定义:在所有测试数据中,将具有某种共同特征的数据集合进行划分

        2、分类

  • 有效等价类:满足需求的数据集合(选取一个即可)
  • 无效等价类:不满足需求的数据集合(选取一个即可)

        3、步骤

  1. 明确需求
  2. 确定有效和无效等价类
  3. 提取数据编写数据用例(正向-尽量覆盖组合;逆向-不可组合,只能由一个不符合要求)

        4、案例

          1)验证QQ号的合法性

             (要求:6-10位自然数)

              ①、明确要求为6-10位自然数

              ②、有效等价类:8位自然数

                     无效等价类:4位自然数 / 8位非自然数(验证一个点时令一个必须符合要求)

              ③、数据:12345678 / 1423 / 1234567a

用例编写
用例编号用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
qq_001

合法

(8位自然数)

qq打开qq

P0

1、输入QQ号

2、点击验证

12345678合法
qq_002

不合法

(4位自然数)

qq打开qqP0

1、输入QQ号

2、点击验证

1234不合法
qq_003  

不合法

(8位非自然数)

qq打开qqP0

1、输入QQ号

2、点击验证

1234567a不合法

 (用例执行:预期结果与实际结果不一致为缺陷)

        2)验证某城市电话号码正确性

          (要求:1.区号-空 / 三位数字;2.前缀码-非0且非1开头的三位数字;后缀码-四位数字)

           ①、明确要求

参数类型长度规则
区号数字

0 / 3

/
前缀数字3非0且非1开头
后缀数字4/

           ②、有效等价类(尽量组合,通常条数与最多项数量相等,该题为2条):

参数类型长度规则
区号数字

0 / 3

/
前缀数字3非0且非1开头
后缀数字4/

                  无效等价类(不可组合,通常条数为项数之和,该题为8条):

参数类型长度规则
区号非数字

1

/
前缀非数字20开头 / 1开头
后缀非数字3/

           ③、数据:

验证城市电话号码

用例

编号

用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
tel_001

合法

(区号为空+3位数字前缀且非0非1开头+4位数字后缀)

电话/

P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:234

3、后缀:1234

合法
tel_002

合法

(3位区号+3位数字前缀且非0非1开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:123

2、前缀:234

3、后缀:1234

合法
tel_003  

不合法

(1位区号+3位数字前缀且非0非1开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:1

2、前缀:234

3、后缀:1234

不合法
tel_004

不合法

(区号为空+2位数字前缀且非0非1开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:23

3、后缀:1234

不合法
tel_005

不合法

(区号为空+3位数字前缀且非0非1开头+3位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:234

3、后缀:123

不合法
tel_006

不合法

(区号3位非数字+3位数字前缀且非0非1开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:12a

2、前缀:234

3、后缀:1234

不合法
tel_007

不合法

(区号为空+3位非数字前缀且非0非1开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:23a

3、后缀:1234

不合法
tel_008

不合法

(区号为空+3位数字前缀且非0非1开头+4位非数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:234

3、后缀:123a

不合法
tel_009

不合法

(区号为空+3位数字前缀且以0开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:023

3、后缀:1234

不合法
tel_010

不合法

(区号为空+3位数字前缀且以1开头+4位数字后缀)

电话/P0

1、输入区号

2、输入前缀

3、输入后缀

1、区号:空

2、前缀:123

3、后缀:1234

不合法

 (用例执行:预期结果与实际结果不一致为缺陷)

     5、使用场景:需要有大量数据测试输入,但是无法穷举测试的地方

  • 输入框
  • 下拉列表
  • 单选复选框

(典型代表:页面级的输入框测试)

二、边界值分析法(边界限制)

       边界值分析法只能覆盖长度,无法覆盖类型,需要与穷举法结合使用

     1、边界范围节点

  • 上点:边界上的点(等于)
  • 离点:距离上点最近的点(大于、小于)
  • 内点:范围内的点(区间范围内的数据)

     2、应用设计步骤

  1. 明确需求
  2. 确定有效和无效等价类
  3. 确定边界范围
  4. 提取数据编写测试用例

     3、案例   

        1)通过边界值法验证标题长度的合法性

             (要求:标题长度大于0,小于等于30字符)

              ①、明确要求为标题长度大于0,小于等于30字符

              ②、有效等价类:大于0且小于等于30

                     无效等价类:等于0 / 大于30

              ③、确定边界范围值:0个字符 / 1个字符 / 29个字符 / 30个字符 / 31个字符

用例编写

用例

编号

用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
title_001

合格

(1个字符)

标题打开工具P0

1、输入数据

2、点击确定

a合格
title_002

合格

(29个字符)

标题打开工具P0

1、输入数据

2、点击确定

aaaaaaaaaa

aaaaaaaaaa

aaaaaaaaa

合格
title_003

合格

(30个字符)

标题打开工具P0

1、输入数据

2、点击确定

aaaaaaaaaa

aaaaaaaaaa

aaaaaaaaaa

合格
title_004

不合格

(为空)

标题打开工具P1

1、输入数据

2、点击确定

不合格
title_005

不合格

(31个字符)

标题打开工具P1

1、输入数据

2、点击确定

aaaaaaaaaa

aaaaaaaaaa

aaaaaaaaaa

a

不合格

        2)通过边界值法验证QQ号码的合法性

             (要求:6-10位自然数)

              ①、明确要求为6-10位自然数

              ②、有效等价类:大于等于6且小于等于10

                     无效等价类:小于6 / 大于10

              ③、确定边界范围值:5位 / 6位 / 7位 / 8位 / 9位 / 10位 / 11位 / 非自然数

用例编写

用例

编号

用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
qq_001

合格

(6位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

123456合格
qq_002

合格

(7位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

1234567合格
qq_003

合格

(8位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

12345678合格
qq_004

合格

(9位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

123456789合格
qq_005

合格

(10位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

1234567891合格
qq_006

不合格

(5位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

12345不合格
qq_007

不合格

(11位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

12345678912不合格
qq_008

不合格

(6位非自然数)

QQ打开QQP0

1、输入qq

2、点击确定

aaaaaa不合格

     4、案例优化   (只针对边界上的点)

  • 上点:必选(不考虑区间开闭)
  • 离点:开内闭外(开区间选择内部离点,闭区间选择外部离点)
  • 内点:必选(建议选择中间值)

开内比外原因:开区间不包含边界值的点,已测边界值,无需再测外部离点;

                         闭区间包含边界值的点,已测边界值,无需再测内部离点

案例2中,依据开内闭外,可优化qq_002,qq_004

用例优化

用例

编号

用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
qq_001

合格

(6位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

123456合格
qq_002

合格

(7位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

1234567合格
qq_003

合格

(8位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

12345678合格
qq_004

合格

(9位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

123456789合格
qq_005

合格

(10位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

1234567891合格
qq_006

不合格

(5位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

12345不合格
qq_007

不合格

(11位自然数)

QQ打开QQP0

1、输入qq

2、点击确定

12345678912不合格
qq_008

不合格

(6位非自然数)

QQ打开QQP0

1、输入qq

2、点击确定

aaaaaa不合格

    5、使用场景

  • 在等价类的基础上,针对有边界范围的测试数据输入的地方(重点关注边界)
  • 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
  • 典型代表:有边界范围的输入框类测试

三、判定表法(多条件依赖关系)

        1、判定表法的引入

  •   等价类边界值分析法主要关注单个输入类条件的测试
  •   未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试

        2、定义:是一种以表格形式表达多条件逻辑判断的工具

        3、组成部分

  • 条件桩:列出问题中的所有条件,列出条件的次序无关紧要
  • 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
  • 条件项:列出条件对应的取值,所有可能情况下的真假值
  • 动作项:列出条件项的、各种取值情况下应该采取的动作结果

(判定表中贯穿条件项和动作项的一列就是一条规则;假设有n个条件,每个条件的取值有0,1两个,全组合有2的n次方种规则)

        4、设计用例步骤

1.明确需求

2.画出判定表

   ①  列出条件桩和动作桩

   ②  填写条件项,对条件进行全组合

   ③  根据条件项的组合确定动作项

   ④  简化、合并相似规则(有相同的动作)

3.根据规则编写测试用例

        5、案例

          1)验证“若用户欠费或关机,则不允许主被叫”功能

判定表
条件是否欠费
是否关机
操作是否允许主被叫

          2)订购单检查

                要求:1.如果金额大于500,又未过期,则发出批准单和提货单

                           2.如果金额大于500,但已过期,则不发批准单和提货单

                           3.如果金额小于等于500,则无论是否过期都发出批准单和提货单

                           4.在过期的情况下,无论金额大小还需要发出通知单

判定表
条件是否大于500
是否未过期
操作是否发出批准单
是否发出提货单
是否发出通知单

用例编写

用例

编号

用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
order_001

发批准单和提货单(大于500、未过期)

订单打开软件P1

1、输入金额

2、查看是否过期

金额:600

未过期

发批准单和提货单

不发通知单

order_002发通知单(大于500、过期)订单打开软件P1

1、输入金额

2、查看是否过期

金额:600

过期

不发批准单和提货单

发通知单

order_003发批准单和提货单(等于500、未过期)订单打开软件P1

1、输入金额

2、查看是否过期

金额:500

未过期

发批准单和提货单

不发通知单

order_004

发批准单、提货单和通知单

(小于500、过期)

订单打开软件P1

1、输入金额

2、查看是否过期

金额:400

过期

发批准单、提货单和通知单

      3)文件修改规则

                要求:1.输入第一列字符必须是A或B

                           2.第二列字符必须是一个数字

                           3.如果第一列字符不正确,则给出信息L

                           4.如果第二列字符不正确,则给出信息M

                           5.如果两列字符正确,则修改文件成功

判定表
条件第一列字符是否为A或B
第二列字符是否为一个数字
操作是否给出信息L
是否给出信息M
是否修改文件成功

用例编写

用例

编号

用例标题

项目/

模块

前置条件优先级测试步骤测试数据预期结果实际结果
file_001

修改成功

(第一列为A或B,第二列为数字)

文件打开软件P1

1、输入第一列

2、输入第二列

1、a

2、1

修改文件成功

file_002

输出M

(第一列为A或B,第二列非数字)

文件打开软件P1

1、输入第一列

2、输入第二列

1、a

2、aa

输出M

file_003

输出L

(第一列非A或B,第二列为数字)

文件打开软件P1

1、输入第一列

2、输入第二列

1、c

2、1

输出L
file_004

输出L、M

(第一列非A或B,第二列非数字)

文件打开软件P1

1、输入第一列

2、输入第二列

1、c

2、a

输出L、M

         6、使用场景

  • 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出条件之间有依赖(制约)关系
  • 一般适用于条件组合数量较少的情况(比如4个条件以下)

(如果项目中多条件组合大于4个相互依赖,可以使用正交表和因果图来实现)

四、场景法(流程分析)

        1、定义:也叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例.

        2、流程图(拓展)

             流程图主要用例解决业务用例问题

             ① 定义:使用标准图形和箭头来表达程序或业务的走向 

                   

             ② 案例

                   1)  用户名为admin\密码为:123456,输出:登录成功

案例一流程图

                   2)  登录、搜索商品、添加购物车、去结算、支付、如果支付成功,则提示下单成功,否则提示支付失败

案例二流程图

五、错误推测法

     1、定义:通过经验推测系统可能出现的问题。 

     2、思想:根据经验列举可能出现的问题清单,根据清单分析问题可能原因,推测发现缺陷。

     3、场景

  • 时间紧任务量大时。根据之前的项目类似经验找出易出错的模块重点测试
  • 时间宽裕通过该方法列出之前出现问题较多的模块再次测试
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值