IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试初学者,手把手教你如何编写一份高效好用的测试用例 -> 正文阅读

[开发测试]软件测试初学者,手把手教你如何编写一份高效好用的测试用例

今天给大家分享如何编写测试用例

很多刚学测试的同学可能对测试用例的编写不是很专业,懂得也不是很详细。可能自己执行的测试用例在真正的测试当中用途并不是很大,甚至写了很多多余的或者是没有价值的测试用例而耽误了时间,浪费了精力,并且没有什么带来好的结果。

所以呢,今天给大家来讲一讲如何编写出一套好的,能够可执行的测试用例。

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,以上内容就是本次电台这节分享课所讲的“如何编写测试用例

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

可以自助拿走,群号:310357728群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦

如果对你有一点点帮助,各位的「点赞」就是小编创作的最大动力,我们下篇文章见!

?

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:45:12  更:2021-08-31 15:46:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 23:36:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码