如何快速编写测试用例(软件测试初学者)
如何快速编写测试用例(软件测试初学者)——《在爱你的进程中,不允许出现任何Bug》一辈子,有多少真心话,是以玩笑的方式说了出去。GOODTIME☽- 2021.08.19-
“嘿 朋友 今天的你过的还好吗?”
这里是“FM 17.68 乐搏电台”
关注我 获取 更多 软件测试 干货 知识!
想听取语音版解说,请关注微信公众号“乐搏软件测试”
GOODTIME
☽
- 2021.08.19-
一辈子,有多少真心话,是以玩笑的方式说了出去。
——《在爱你的进程中,不允许出现任何Bug》
同学们大家好,这里是FM17.68乐搏电台
我是乐搏学院的创始人乐老师。
今天给大家分享如何编写测试用例!
很多刚学测试的同学可能对测试用例的编写不是很专业,懂得也不是很详细。可能自己执行的测试用例在真正的测试当中用途并不是很大,甚至写了很多多余的或者是没有价值的测试用例而耽误了时间,浪费了精力,并且没有什么带来好的结果。
所以呢,今天给大家来讲一讲如何编写出一套好的,能够可执行的测试用例。
Lebo testpro FM 17.68 radio station
在教大家如何编写测试用例之前,我们需要先提到“为什么要编写测试用例”先来讲讲它,那测试用例又能给我们带来哪些好处?首先我们在做测试的过程当中是很难“不写测试用例”就能把软件测全的,举个例子:
比如说给你一个优惠券,问你怎么测?
你要是直接测试,不去提前写好的话那很有可能会产生漏测的现象了,那大部分同学可能会说:
老师,我都会测!
我会测优惠券过期了能不能用!
我会测优惠券和积分能不能一起用!
我会测优惠券跨品类能不能用!
我会测优惠券在有效期内能不能用!
我会测优惠券能不能重复使用!
我也会测优惠券,退款之后还是否返还等等。
但是如果说你不写测试用例的话,像这样的测试方法在执行当中你的思维就会非常的混乱了,当然你会存在漏测。举个例子:你肯定会忘了一个测试逻辑,还有深度测试逻辑。
举例:
比如说你买了商品A得到的一张优惠券,然后你利用这张商品A得到的优惠券去购买商品B,然后相应的得到了满减!那同时你再把商品A给退掉,那是不是商品B得到的优惠券就相当于是白来的了!对吗!像这样的深层次的逻辑呢,是很难能够在执行中直接想到的,所以我们都需要提前的编写测试用例。
简单一点的测试用例也有很多,例如输入框的表单值域,输入框表单值是什么呢?比如输入中文、输入英文、输入数字、输入符号的甚至这些组合。包括有一些手机号码需要测试一下它的正则表达式,那这些我们都是要提前的写好,保证咱们测试的时候不遗漏的。
刚才咱们也提到了等价类和边界值还有正则表达式了。那它确实也是我们测试输入框里边非常重要的几个测试的方法,编写测试用例的方法。
我们先说等价类,“等价类是什么呢”:
它其实是用来验证参数类型的,因为像很多姓名输入框,它的参数类型可能是只允许输入中文或者是英文,它并不允许你输入数字或符号的。那么我们就需要去尝试输入中文,输入英文,这两个是可以通过的。咱们同时还要尝试去输入数字和输入符号,这两个都是不允许通过的。
这样的话就形成了4条测试用例了
- 中文、
- 英文、
- 数字、
- 符号。
那我们还需要进行一些组合,有效和有效进行组合,比如说中文你也允许、英文你也允许、那我就中文加英文,这样的测试咱们要有。还需要拿一个有效去加一个无效,比如说用中文去加数字,这样的话就能够验证说有效加无效它的预期结果应该是错的,它不应该让你成功的。那很多同学呢就会想,会说:
老师那既然是覆盖,我是不是应该把所有的覆盖组合都给它组合一遍呢。
- 因为我的中文可以加数字,
- 我的英文也可以加数字,
- 我中文可以加符号,
- 我的英文也可以加符号,
- 我甚至还可以中文加英文加数字,
- 中文加英文加符号,
这样的话你就会把自己陷进去了。所以说千万不要这么去写测试用例!有效加无效,只需要组合一次即可。其他的有效加无效组合就不需要再次重复的组合,这个大家一定要切记!否则的话,你的测试用例可执行性就会变得非常的差,记住了吗~
那还有同学会问:
老师那无效和无效要不要组合一下?数字是无效的,符号也是无效的,那我就用数字 符号好了。其实这样的测试用例是没有价值的。因为一个错误的参数类型加上另一个错误的参数类型,它是不可能实现成功的结果,除非见鬼了。
所以这样的测试用例你就不用写了,因为没有任何的执行的价值在里面。
所以说在说到“等价类”的时候,只需要去了解这个输入框它是如何限制的, 然后去尝试它的有效,去尝试它的无效,再用有效加无效,或者有效加有效这样的组合一遍即可。
那我们再说说下一个内容“边界值”,对于边界很多同学可能也是很含糊,不知道怎么去具体的执行它!
边界值分成两类:一种是值域大小的边界值、一种是字符长短的边界值。
(输入框样式展示)
比如说这个输入框我只允许输入8~16个字符,那么我们去测边界值就很好测了。首先我们要去测8位字符、卡在最小值,然后还要测16位字符、卡在了最大值。甚至还要测试一下16 1位字符 ,17位字符是最大值16位字符的加1。要考验一下超过了最大值之后的样子,然后还要考虑最小值减一,也就是8-1就是7位字符。
所以说,我们就得出4条测试用例了,7、8、16跟17位字符了。那8~16位字符中间的这些数值要不要去测一下?当然是需要验证一下的!那我们派一个代表就好了~ 派什么代表呢?派一个中间值嘛,这个时候咱们取一个中间值11位字符。
如果说有最大值、最小值这样的限制的话只需要背一个口诀就可以了:最小值、最大值、最大值加一、最小值减一、再取个中间值 ,这样的5条测试用例就能把它测好 就很简单。
那还有一种可能性,就说老师拿这个输入框没有说最小值,只说最多不能超过10个字符。那像这种测试用例我们该怎么去写呢?
也很简单,首先我们要测“10”,卡在了它最大值了对吧,然后再测最大值加一、11位字符。那这个时候最小值它没有说咱们只需要测试“1”即可。因为它说不能超过10个字符,那它最小值肯定就是"1"了 它也没说不能空着嘛。
老师那不输入行不行,不输入的话属于必填项,这个是归必填项管的。那我们既然是测边界值就必须要输入的,至少要输入1个字符,这样就没有中间值了。所以说这样的测试用例只需要测三条 “1”、“10”跟“11”即可,听懂了吗?
(必填项管理展示)
那再给大家说一种关于值域大小的边界值了,那有些像这个微信对吧红包,可能它就会限制一个数值大小的金额,比如说不能超过200块钱对吧!那它就不会存在字符长度的问题了,它只会存在这个数值大小的问题了,那其实逻辑是一样的。
比如说测微信红包它最小值多少?最小值呢咱们要测一下0.01、最大值呢我们要测一下200、最大值“ 1”我们要测试一下“200.01”那最小值“-1”我们要测试一下“0”
老师你不是说不能测零个字符吗,零个字符不是归必填项管吗?但是你要是往红包里边输入一个“0”的话这个“0”它可是个数,它并没有空着呀~所以说数值大小的时候是要测“0”的,那“0.01”还有“200”还有“200.01”我们都测完了之后,我们再取个中间值“100”就可以了。所以这个也是一个很简单的方法。
小数点也是需要测的,它支持小数点两位。那我们就要再测小数点一位、两位和三位。用哪个值去测呢?我们就要拿中间值去测了,而不能拿最小值。如果你要拿最小值“0.01”再加个“0”的话 ,那它就已经小于“0.01”了,它就不在合理的范围内了。所以我们必须要拿中间值去测试它的小数点位数。所以我们要测试一下“100.1”、“100.01”还有“100.001”这样的话我们就能够把这个数值的边界值也测好了。所以大家要记住哦,以后测试边界值的话,测试字符长度的边界值还有值域大小的边界值就OK了。
那么还有一种特殊情况,比如说像手机号码。
老师那手机号码是如何限制的?是不是说只允许输入数字,而且长度必须是11位。那么如果是这么限制的话,那我们输入11个“1”是不是也能通过了呀!所以说像手机号码这样的输入框是不可以拿等价类和边界值去进行限制的。那么对待它我们就需要量身定制一种限制的方法,那么这个方法叫做“正则表达式”有兴趣的可以上网上搜索一下手机号码正则表达式。你们就可以看到很多这样的文章,很多这样的帖子,然后能能告诉你们手机号码是如何限制的了。
在这里我们应该怎么去测试它呢?首先我们也不需要去考虑输入中文、输入英文 、输入数字输入符号的问题了。因为它根本就不是拿等价类去控制的,我们只需要去验证它是否存在正则表达式即可,怎么验证?我们先输入11个“1”对吧。11个“1”如果成功了,说明他这个输入框压根就没有正则表达式,而且这是一个Bug不合理的存在!如果11个“1”失败了,那么说明它这个输入框是存在正则表达式的。那我们只需要去验证它的正则表达式写的对与不对就好了。
所以说第一条就是11个“1”了,那输入完11个“1”之后,我们还要考虑到“正则表达式”是不是最新的。因为手机号码它每年都会更新。有一些新的号码段出现,比如说像今年可能是199开头的号码,也有可能会是更新的号码段。
那举个例子,如果说199号段现在就是咱们三大运营商的最新的号码段了。离我们现在时间轴最近的,那我们就要去尝试用199号段了。如果这个正则表达式是用的去年的,很有可能199就会判定为非法无效手机号码,懂其中的意思了吧!
- 如果它这个正则表达式是最新的那它就成功。
- 如果它这个正则表达式是过期的是老的就会失败。
所以要验证一下这个正则表达式是不是最新的,你需要拿一个最新的手机号码端去测试。
并且还要去测试它的座机,例如“01067667788”随便一个号码,为什么要这么去验证呢?因为座机跟手机它都有正则表达式,你要验证这个输入框它是不是允许输入手机号,手机号也能不能允许输入座机号的。我们还是要拿一个正常的手机号码去测试一下的。这个也能验证一下它的手机号码正常的能不能去用,有些时候开发人员会不小心把它的长度控制错了!所以我们也不能太放心咯,还是要验证一下12位的或者是10位的手机号码。开头正确,但是号码的位数有问题,这个也是需要去验证一下的,基本这样的话就能把手机号码测全了。所以说一共是5条测试用例,这个大家记住好,还不赶快拿着小本本记上。
ok,以上内容就是本次电台这节分享课所讲的“如何编写测试用例”
END
文案编辑 | FM小编 4U
文案配图 | FM小编 4U原创内容 | 乐校长原创
ok 今天的内容就到这里
下节课给大家讲
“软件测试黑盒测试策略”
本期的FM17.68 乐搏电台就到这里,
同学们,我们下期再见。
CONTACT US / 联系我们
VX/官方微信公众号
乐搏软件测试
扫码添加我们免费获取更多测试学习资料教学视频
“ 点赞 ” 这个秋天会有幸运降临哦!