你好,我是小牛。
今天和大家聊一聊关于如何设计测试用例,以及如何提高测试用例的覆盖度?
首先,写测试用例几乎是每一个测试工程师,无论你是功能测试还是自动化测试乃至测试开发工程师入行首先就要掌握的技能,也是很多测试工程师的日常工作。
可能你看过不少设计测试用例的网课或者帖子,一堆测试用例方法让人一脸懵逼。比如等价类划分法、边界值分析法、场景法、因果图方法、判定表驱动分析法、正交实验设计方法、功能图分析方法、场景设计方法......
但是从应付日常工作来讲,真正具有实用价值并且常用的只有前三种方法等价类划分法,边界值法以及场景法。边界值法和等价类划分法通常配合使用,等价类划分又分为有效等价类和无效等价类,下面举例来讲一下这三种方法:
以一个登录功能账号输入为例,要求只能输入字母,数字和下划线 ,位数要求6到19位。
首先,先说下有效等价类。拿到这个需求你不可能拿6到19位之间的位数去穷举,那是无穷无尽的。运用等价类的划分的思想我们就可以取6位,19位,7位,18位,同时还可以取一个中间位12位更具代表性。然后确定位数之后,就可以设计用例了,字母,数字,下划线,分别排列组合分散开即可。
再说下无效等价类,就是不满足条件的取5位和20位去验证即可。除此之外还要考虑输入为空以及非法字符这两种情况。
边界值法这个比较简单就是取边界去验证,以及验证这个边界附近的数据即可。场景法就是需要考虑到各种各样的场景,比如该账号未注册就去登录,以及各种异常场景都需要考虑。一般,写好测试用例,都会开案例评审会议,就是防止场景遗漏。
当然设计测试用例的方法就那么几种,但是不同水平的测试工程师设计出来的用例覆盖度有很大差别。就好比大家把数学公式都掌握了,但是具体到解题考试,不同人千差万别。
下面以一道大家经常遇到的面试题为例,如何设计用户登录功能的测试用例?看到这里,你可能会说这也太初级了吧,先别急,等把下面的文章看完再说......
如果你是一个刚入行没多久的初级测试,你可能设计出下面的测试用例:
列出这些测试用例后,你可能已经觉得比较满意了,因为你感觉已经把自己的测试知识都用在这些用例设计中了。然而仔细思考一下,这些用例真的覆盖到所有场景了吗?
接下来,再看一下,一个有经验的中级工程师还会增加哪些场景呢?
看到这里,惊不惊喜,意不意外,没想到一个很简单的用户登录居然还能设计出这么多用例,原来自己开始想的,还有那么多场景遗漏。还有更刺激的请接着看,上面那些用例主要从功能层面进行考虑,安全考虑了吗?兼容性考虑了吗?性能考虑了吗? 接下来就是看大佬之所以成为大佬,凭什么他可以定级高级资深测试工程师,每月二三十k的原因......
安全角度考虑测试用例:
性能压力测试角度考虑测试用例:
兼容性角度考虑测试用例:
看到这里,你还会觉得“用户登录”功能的测试非常简单、不值一提么?下次,面试的时候你如果从这些方面去回答,还怕拿不到offer吗?
当然这些都是需要经验积累的,但是并不妨碍我们在设计测试用例的时候可以从多个角度进行考虑,比如安全,性能,兼容性等等。那么,日积月累,从小牛进阶成为大牛便是指日可待了!