编写测试用例的测试方法(等价类、判定表、边界值、正交排列法、场景法)

一、等价类划分法

1、应用场合
在程序中,有数据输入的地方适合使用等价类划分法进行测试
方法思想(范围):
将大量数据划分成若干的范围(等价类),再从每个范围中抽取少量代表数据进行测试(抽样测试)

2、两个概念
(1)有效等价类
对程序来说,正确的、合理的输入数据集合–验证功能能否正确实现–正向测试
(2)无效等价类
对程序来说,不正确的、不合理的输入数据集合–验证软件的健壮性(异常处理能力)–反向测试

3、测试步骤
被测案例:两个整数加法计算器
需求:第一个数和第二个数需求一样,都要求:-99–99之间的整数,不能为空
步骤1:分析需求,初步划分等价类
分析需求:
(1)不能为空
有效:不为空
无效:为空
(2)数据类型:整数
有效:整数类型
无效:非整数类型
(3)数据范围:-99–99之间
有效:-99–99之间
无效:>99、<-99
分析结果:
注意:初步划分等价类的依据就是需求
步骤2:细化等价类
注意:细化等价类不再以需求为依据,而是以数据存储的类型或格式为依据
(1)非整数
小数、字母、特殊字符(符合、空格、特殊符号)、中文字符、
(2)-99–99之间的整数
原因:由于整数类型存储时需要应用补码,而正、负整数的补码算法不同,所以:正、负整数要分别测试
提示:无效数据一般正负整数没有必要分开测,但是如果纠结,就补测一下
步骤3:将分析结果,填入《等价类表》(用的较少,只能存储等价类数据)
步骤4:从每个等价类中挑选代表数据,编写测试用例
注意:每个等价类范围至少要挑选一个代表数据,保证每个等价类范围均被测试覆盖,有些情况,一个等价类范围还可以挑选多个代表数据测试
方案(思路):单独测试每个控件的等价类–适合初学者
首先:测第一个数,此时第二个数写有效数据配合
接下来:再测第二个数,此时第一个数填写有效数据配合
总结:该案例的问题
(1)测有效数据是,测试用例存在“用例冗余”(重复),–优化重复用例
(2)无效数据组合的情况没有测
1)两个空间都无效的情况
2)一个控件多种无效情况组合在一起
3)说明:在每个控件每个无效数据都单独测试覆盖过得前提下,没有必要测试所有的无效数据组合,只需要适当挑选容易出错的组合进行重点补充测试即可。
补充内容:

4、错误推测法
是经验型测试方法,该方法是测试人员凭着经验和直觉,针对所测程序中容易出错的情况,设计测试。
错误推测法经常用于:常规测试方法设计测试后的补充测试。
通常将:测试人员不放心、纠结、用户容易错误操作、程序员容易出错的情况涵盖进来补充测试。
具体例子:特殊数据—0、空格、@、.、
测表格时,当表格为0行、1行时
当测试网络应用时要考虑弱网状态
5.随机测试
随机测试(猴子测试–monkey testing)
就是当测试用例测试执行完成后,随意操作,随意挑选数据测试的方式。
随机测试发现bug的概率低,只能是正常测试完成后的补充

二、 边界值法

1.方法说明
在开发程序时,数据的边界是很容易出现错误的,所以为了重点测试边界数据,出现了一种专门的测试方法–边界值法,边界值法是等价类划分法的有力补充
2.应用场合
在程序中,有输入数据的地方也可以使用边界值法,边界值法通常会和等价类划分法配合使用,对容易出错的边界值数据进行测试,两种方法搭配使用,从而形成更为完善的测试方案。
3.如何划分边界值
(1)边界值点
就是有效等价类和无效等价类之间的分界点(最大值max、最小值min)
(2)次边界值点
边界值点左右相邻的点,就是次边界点,
Min-:无效最小次边界
Min+:有效最小次边界
Max-:无效最大次边界
Max+:有效最大次边界
4、面试题
Q1:当测试时间紧张时,应优先测试哪些边界值?
测试时间紧张应优先测试边界值点,也就是
最小值/最大值边界值点,次边界值点可以先忽略

附加:如果重点测“健壮性”选择测试哪些边界值?

选择测无效的次边界值,包括:无效最小/最大次边界值(min-和max+)

Q2:是不是所有数据的边界值在需求中都是开始就确定好了?
不一定,有的数据在需求中是开始就可以明确,需要在后续的研发过程中逐步明确
补充说明:需求是可以维护的,也是可以变更需求的,测试用例也是可以维护的,可以修改的,逐步完善

5、等价类划分法和边界值的综合运用
首先:正向测试-测试正确的数据
将多个控件的有效数据可以组合测试,这样既能保证测试质量,又能去除用例冗余(重复),提高效率
接下来:反向测试–测错误的数据
每个控件的每个无效数据,要单独测试
因为该案例有屏蔽现象,屏蔽现象影响会使测试人员无法明确是否有bug,所以无效数据不能组合测试

三 判定表法(决策表法)

一、应用场景
在界面中有多个控件,不同控件之间存在组合或限制关系,不同输入条件之间组合会对应不同的输出结果,为了理清输入组合对应的输出结果是否正确,可以使用判定表法
注意:判定表法比较适合测试组合数量较少的情况
二、判定表的特点
1.输入条件的顺序是无关紧要的
2.输出结果的顺序是无关紧要的
3.先测那个组合,后测那个组合无关紧要的
4.每个组合都是相互独立的
三、判定表法总结
1、判定表法是常用来测试多个控件至今的组合情况,常见控件由:单选按钮、复选框、下拉列表等
2、判定表法适合测试组合数量较少的情况,如果组合数量较多就还是要考虑抽样测试
3、判定表的组成(了解)

四、 正交排列法

一、方法说明
正交排列法是利用正交表测试的方法,正交表是数学统计学方向的科研成果,具备可以“将大量数据挑选最优、最少的数据进行统计”的特征,测试方向利用这个特征将正交表应用于测试。
提示:测试人员只需要能够挑选合适的正交排列法,并将其应用与测试即可,不需要研究其内部算法和原理
二、正交表公式的解析
Ln(mk)
L:line 行
N: 代表行数,表示正交表由几行(测试人员不需要计算)
M:每一列的最大数值
K:正交表的列数,表示正交表有几列

三、正交排列法
1、应用场合:
界面中有多个控件,每个控件有不同取值,不同控件取值之间存在组合关系,但是组合数量较多,此时不应测试所有组合,而应使用正交排列法,挑选最优、最少的组合进行测试(抽样测),正交排列法是一种比较优秀的测试方法
2、正交排列法的测试步骤
案例:字符属性设置
步骤1:分析需求,找出参与组合的控件,并列出每个控件取值(准备)
步骤2:挑选合适的正交表
确定m值和k值的过程
m值:在测试时由每个控件的取值个数决定
k值:在测试时,由参与组合的控件个数决定
案例:m=3,k=4
挑选34 的正交表
步骤3:应用正交表(映射)
将控件和控件取值与正交表进行对于的替换
(1)控件名称–正交表因子(列标题)
(2)每个控件取值–正交表列状态(数值123等)
注意:应用完成后,每一行代表着一种组合
步骤4:编写测试用例

3、判定表法和正交排列法的异同?
(1)都可以用来测试控件之间的组合情况
(2)判定表法测试全面,质量好,比较适合测试组合数量比较少的情况
(3)正交排列法抽烟测,效率高,比较适合测试组合数量较多的情况

提示:测试人员要在测试质量和测试时间之间追求一种平衡
4、正交表的总结
(1)正交表的局限
1)正交表的数量有限(9个)
可能会找不到正好匹配的正交表
2)正交表中每列的取值个数都有规格(一般都一样)
实际应用中,控件的取值个数有时并不一样,不一定符合正交法的规格
(2)正交表的特点(平均/均匀)
1)每一列的数值出现次数均等
2)任意两列同一行会形成有序数对,每个有序数对出现次数均等
提示:借鉴正交表的特点,测试数据的选取应尽量“均匀”
3)正交表选取的是“最优、最少”的组合,但是毕竟没有测试所有的组合,有可能有遗漏bug的风险,所以时间允许应适当补充测试。

四、正交表的强化
–解决找不到合适的正交表的问题
1、k值不合适的问题
解决方法:选择k值最接近的,并且大一点的,用不到的列,删除即可
2、m值不合适的问题
问题:每个控件的取值个数不同, 可以选取m取值最大的(最大值方案)

五、方法总结
(1)如果有多出的列删掉即可
(2)先把能替换的部分都替换
(3)替换后,如果有多出的空白处,可以看出是多出的测试机会,应“尽量均匀”的分配给该列的取值
(4)最后检查一下是否有完全相同的两行(重复),如果有适当的处理(删、改)
(5)正好匹配的正交表优先级最高,如果没有合适的正交表,再去适当的强化处理,选择相对合适的正交表应用。

五、场景法
一、应用场景
1、场景法是最常用的测试方法,常用来测业务逻辑或业务流程
2、场景法是基于“软件业务”的测试方法
3、场景法要求测试人员将自己想象成最终用户,模拟用户使用软件正确和错误的各种场景
主要模拟两类场景–
(1)业务正确实现的情景–验证功能的正确性–正向测试
(2)业务实现错误/失败的情景–验证软件的健壮性(异常情况处理能力)–反向测试
二、场景法使用的常见思路
场景法常用于测试业务逻辑或流程,当拿到测试任务时,通常会使用场景办法对业务的流程和逻辑进行整体测试,当核心业务可以实现后,再用等价类划分、边界值、判定表等方法对细节展开测试(先整体,后细节)
三、场景法基于两个层面
1、业务层面(重要)
要求测试人员对所测软件比较熟悉,最好能成为该行业,业务方面的“专家”
2、技术层面
基本流:有效流或正确流
模拟业务正确实现的流程
备选流:无效流或错误流
模拟业务实现错误的各种场景
提示:对测试人员来说业务越复杂、测试人员对业务越陌生,测试难度就越大。我们不能改变业务的复制度,所以测试人员应该努力熟悉业务需求。
四、场景法的测试步骤
案例1:ATM取款
步骤1:熟悉、分析业务,整理业务,列出基本流和备选流
列基本流:正确的取款流程
验证卡通过–输入正确密码–进入选择功能界面–选择“取款”功能–在取款界面“输入”有效金额–出钞–更新金额,提示–返回主界面
列备选流:各种失败的取款流程
1)验证卡失败
2)密码错误3次以下
3)输错密码3次
4)余额不足
5)超出单次取款上限(5000)
6)超出单日取款上限(20000)
7)ATM余额不足
说明:还有例如:取款金额不是100的整数倍、卡内自己被冻结等备选流场景没有列出
步骤2:生成场景,填《场景表》
步骤3:覆盖场景,设计编写测试用例
说明:通常都是1个测试点(场景),对应设计1条测试用例,但是有些特殊情况场景和用例有可能不是1:1的关系
有时可能1个场景设计多条用例测试
也有可能1条用例覆盖多个场景
3、案例2:五子棋游戏
步骤1:熟悉分析需求(规则),整理业务
步骤2:填场景法
步骤3:设计测试、执行测试、记录结果(证迹+实际结果说明)
黑棋胜
黑棋负
双方和棋
黑棋下禁手(双三、双四、长连),应判黑棋负

五、下拉列表和列表控件的测试分析
下拉列表和列表框控件较多时通常不会测试所有选项,而是至少测试3项,分别为:第1项(最小值)、中间某项(有效等价类中的代表数据normal)、最后1项(最大值)
说明:有特殊情况,可能会测超过3项
例如:测月份下来列表
测试点:
边界值:
最大值–12月
最小值–1月
有效等价类:
大月:–31天、小月–30天、闰月–2月
如果有无效月份应特殊测试

2、为什么要细分字符
例如:身份证号码最后一位
有效等价类;0-9和X
无效等价类:中文字符、排除X以外的其他字母、特殊字符
说明:只要是键盘上能输入的都是字符,包括中文、英文字符、特殊字符、数字字符
3、一个中文 =(2个)字节
在测试中我们说1个中文算1个或2个字符,具体算几个字符要符合需求要求

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试日记

你的鼓励将是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值