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

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

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

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群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦

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

软件测试初学者,手把手教你如何编写一份高效好用的测试用例相关推荐

  1. 实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo

    目录 一.开发环境 二. 准备工作: 1. 创建一个项目工程目录 2. 创建输出与目标目录 3.头文件目录 4. 建立源代码src目录 5. 使用git管理你的项目 三.编写LED驱动 三.一 准备工 ...

  2. 不会CAD绘图?手把手教你快速绘制一份完美的CAD草图

    都说CAD绘图不好操作,也是.那么多复杂的图形,还有文字设置,加起来乍一看,确实麻烦,可是工作还是要继续,怎么找到快捷又方便的CAD绘图方法,进行简单绘图操作?那今天就手把手的教你如何运用xunjie ...

  3. 手把手教你快速构建一份全国疫情分布地图

    本文基于百度地图API和fangkai提供的疫情数据API制作,是一份真实并实时的疫情场所分布地图,演示地址:https://rovertang.com/map/ncov/ 花絮 上次发表了如何制作一 ...

  4. 手把手教你写保研简历|计算机保研|保研夏令营文书写作|简历模板

    手把手教你写保研简历 2022年保研夏令营在即,很多同学都开始制作保研需要的文书,比如说简历.个人陈述.研究计划和导师推荐信等- 可别小看文书的制作,有的时候一份好的保研文书能在老师那里给我们增加很多 ...

  5. 手把手教Java初学者制作一个王者荣耀游戏,1天就能学会。

    刚入门的java初学者,在学会一定项目后,都想先做一款游戏来练练手,来看看自己的知识掌握的怎么样了,那有的初学者并不知道可以做哪些项目,和不知道自己能做什么项目,现在小编就带大家来一起看看Java开发 ...

  6. c语言mfc写贪吃蛇,手把手教你用MFC编写贪吃蛇.doc

    手把手教你用MFC编写贪吃蛇 贪吃蛇是一款经典的小游戏,它玩法非常简单,对于MFC的初学者来说,也是一个非常好的练手项目.这篇文章,将从项目创建开始来一步一步教你如何制作一个贪吃蛇小游戏.我用的是vi ...

  7. skywalking原理_Skywalking系列博客6手把手教你编写 Skywalking 插件

    点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 前置知识 在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK 5引入的一个玩意儿,最好了解下其工作原理):另外,S ...

  8. add-apt-repository:找不到命令_手把手教你使用nodejs编写cli(命令行)

    手把手教你使用nodejs编写cli(命令行) 前端日常开发中,会遇见各种各样的cli,比如一行命令帮你打包的webpack,一行命令帮你生成vue项目模板的vue-cli,还有创建react项目的c ...

  9. python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例...

    linux下Appium+Python移动应用自动化测试实战-3.手把手教你定位元素编写测试用例 前言 有很多童鞋环境搭建好了却没有进行下一步,是因为缺少step by step的资料. 互联网上ap ...

最新文章

  1. mockmvc get请求 tm的 一直404_面试:SpringMVC在接收到请求后的调用细节是什么?
  2. 关于VC网络编程中用 char 发送结构体的说明
  3. CentOS系统启动流程和系统初始化
  4. AI视觉在教育场景中的创新应用
  5. vue js 工具方法封装js 文件
  6. java第二周学习总结
  7. python数独代码_python 实现计算数独
  8. 科学证明夜猫子都死得早?稳住,事情不是这样的
  9. git常用命令与常见问题解决办法
  10. 【CPLEX】Java调用CPLEX的一些小笔记
  11. BMFont 字体生成工具使用
  12. Word撤销键(Ctrl+z)无效的解决方法
  13. 闰年和平年的区别python_利用Python实现图书超期提醒
  14. 华为云服务器怎么备份文件,云服务器系统如何备份文件
  15. ajax中怎样获取下拉列表,如何从Ajax/Jquery的下拉列表中获取复选框中的数据
  16. can收发器 rx_CAN/CANFD采样点
  17. 怎么在线快速将多张CAD图纸转换成低版本DXF格式?
  18. 信息安全 数据赛 铁人三项_[信息安全铁人三项赛总决赛](数据赛)第二题
  19. 计算机主机箱内的主要硬件有,电脑的基本硬件包括哪些
  20. CAP里面的CP和AP

热门文章

  1. Unreal 生成星空Skybox
  2. 摔倒了不可怕,可怕的是爬不起
  3. 阿里云服务器使用配置
  4. 量化交易策略的硬核是什么?
  5. android设备绑定微软,Android 7.1.1 手机如何登录微软账号
  6. OA ——办公自动化(转)
  7. 90%的人都不知道网页文字被禁止如何复制,教你几招神奇技能就可以免费解决
  8. Python玩微信——头像组字篇
  9. Spring Security:密码编码器PasswordEncoder介绍与Debug分析
  10. shell脚本实例-系统监控