【分享】如何设计出让面试官眼前一亮的测试用例?

me will tell.

今天我们来聊一聊测试用例如何设计,以及如何提高测试用例的覆盖度。


写测试用例是每一个测试工程师入行首先就要掌握的技能,也是很多测试工程师的日常工作。

可能你看过不少设计测试用例的网上视频或者帖子,一堆测试用例方法让人一头懵逼。

比如等价类划分法、边界值分析法、场景法、因果图方法、判定表驱动分析法、正交实验设计方法、功能图分析方法、场景设计方法 …


从应付日常工作来讲,真正具有实用价值并常用的只有前3种方法:等价类划分法,边界值法以及场景法。

边界值法和等价类划分法通常配合使用,等价类划分又分为有效等价类和无效等价类。

下面以一个登录功能账号输入为例,要求只能输入字母,数字和下划线,位数要求6到19位。来讲一下这3种方法:


1、有效等价类

拿到这个需求你不可能拿6到19位之间的位数去穷举,那是无穷无尽的。

运用等价类的划分的思想我们就可以取6位,19位,7位,18位,同时还可以取一个中间位12位更具代表性。

扫描二维码关注公众号,回复: 11935765 查看本文章

然后确定位数之后,就可以设计用例了,字母,数字,下划线,分别排列组合分散开即可。


2、无效等价类

就是不满足条件的取5位和20位去验证即可。除此之外还要考虑输入为空以及非法字符这两种情况。


3、边界值法

这个比较简单就是取边界去验证,以及验证这个边界附近的数据即可。


4、场景法

就是需要考虑到各种各样的场景,比如该账号未注册就去登录,以及各种异常场景都需要考虑。一般,写好测试用例,都会开案例评审会议,就是防止场景遗漏。


设计测试用例的方法就那么几种,但是不同水平的测试工程师设计出来的用例覆盖度有很大差别。好比大家把数学公式都掌握了,但是具体到解题考试,不同人解题也会千差万别。

下面以一道大家经常遇到的面试题为例 —— 如何设计用户登录功能的测试用例?

看到这里,你可能会觉得这也太初级了吧,别急,先把下面的看完再说。


一个刚入行的初级测试,可能设计出下面的测试用例:

  1. 输入已注册的用户名和正确的密码,验证是否登录成功。
  2. 输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确。
  3. 输入未注册的用户名和任意密码,验证是否登录失败,并且提示信息正确。
  4. 用户名和密码两者都为空,验证是否登录失败,并且提示信息正确。
  5. 用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确。
  6. 如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入正确的验证码,验证是否登录成功。
  7. 如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入错误的验证码,验证是否登录失败,并且提示信息正确。

在列出了这些测试用例后,你可能觉得比较满意了,因为你感觉已经把自己的知识都用在这些用例设计当中了。

然而仔细想一下,这些用例真的覆盖到所有场景了吗?


再来看一下一个有经验的中级工程师还会增加哪些场景呢?

  1. 用户名和密码是否大小写敏感。
  2. 页面上的密码框是否加密显示。
  3. 后台系统创建的用户第一次登录成功时,是否提示修改密码。
  4. 忘记用户名和忘记密码的功能是否可用。
  5. 前端页面是否根据设计要求限制用户名和密码长度。
  6. 如果登录功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用。
  7. 刷新页面是否会刷新验证码。
  8. 如果验证码具有时效性,需要分别验证时效内和时效外验证码的有效性。
  9. 用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面。

是不是很意外,没想到一个简单的用户登录居然还能设计出这么多用例,原来自己开始想的,还有那么多场景遗漏。

再来想想,上面的这些用例主要从功能层面进行考虑、安全考虑了吗?兼容性考虑了吗?性能考虑了吗?


接下来就来看看大佬之所以成为大佬,凭什么他可以定级高级资深测试工程师且每月2、30K的原因。

安全角度考虑测试用例:

  1. 用户密码后台存储是否加密。
  2. 用户密码在网络传输过程中是否加密。
  3. 密码是否具有有效期,密码有效期到期后,是否提示需要修改密码。
  4. 密码输入框是否不支持复制和粘贴。
  5. 密码输入框内输入的密码是否都可以在页面源码模式下被查看。
  6. 用户名和密码的输入框中分别输入典型的“SQL 注入攻击”字符串,验证系统的返回页面。
  7. 同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期。
  8. 同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性。

性能压力测试角度考虑测试用例:

  1. 单用户登录的响应时间是否小于 3 秒。
  2. 单用户登录时,后台请求数量是否过多。
  3. 高并发场景下用户登录的响应时间是否小于 5 秒。
  4. 高并发场景下服务端的监控指标是否符合预期。
  5. 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。

兼容性角度考虑测试用例:

  1. 不同浏览器下,验证登录页面的显示以及功能正确性。
  2. 相同浏览器的不同版本下,验证登录页面的显示以及功能正确性。
  3. 不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性。
  4. 不同分辨率的界面下,验证登录页面的显示以及功能正确性。

最后

看到这里,你还会觉得用户登录功能的测试非常简单、不值一提吗?下次面试的时候你如果从这些方面去回答,让面试官立即为你眼前一亮!

而这些都是需要经验积累的,但并不妨碍我们在设计测试用例的时候从多个角度进行考虑,比如安全,性能,兼容性等等。那么,日积月累,从小白进阶大牛只是时间问题!

絮叨

测试是一门技术,更是一门艺术。也许你今天拥有的技术,明天就会被淘汰。同时需要我们开拓思维和眼界,积极拥抱变化,学习新知识、新方法、新技能、计算机领域讲究的是实践,学习更要讲究方式方法,学习和动手一定要结合。

以上就是今天跟大家分享的东西,希望能对看过本篇文章的小伙伴们有所帮助。如果你喜欢软件测试这个行业的话,也可以加入我们175317069一起学习,这里有行业深潜多年的测试人技术分析讲解。也会有各项测试资料,面试题资料链接发放。期待你的加入!

最后祝愿你能成为一名优秀的软件测试工程师!

喜欢的话,欢迎【评论】、【点赞】、【关注】礼貌三连~

Time will tell.(时间会证明一切)

猜你喜欢

转载自blog.csdn.net/kami_ochin_akane/article/details/109077289