关注价值——什么样的用例是好用例? - 51ste.com
登录|注册

关注价值——什么样的用例是好用例?

作者:testbird  发布时间:2019-04-08 22:42:06  关键字:全面测试用例 好的测试用例 

这篇文章里,我要谈是什么的问题。我希望能够把这些理念重新建立起来,将价值观传播出去。我认为这比具体的技术更能够让人获益。

那么,什么样的用例是好用例?


2015年的时候,我很喜欢问高级工程师这个问题:“你认为什么样的用例是好的用例呢?”

我收获了非常多的回答:

  • 能发现bug的用例是好用例
  • 经过评审的用例是好用例
  • 能让用户放心的用例是好用例

还有一些人遇到这个问题很迷茫,毕竟太空泛了,我会换个问题:“当你进行用例评审的时候,你认为这个用例应该被设计成什么样才能通过?”

此时的回答就更加具体了:

  • 把需求覆盖全的用例
  • 能够考虑到用户实际使用场景的用例
  • 异常考虑全面的用例

上一个问题问的是判断的标准,下一个问题问的是判断的方法。我相信各位读者对这两个一定都有自己的回答,我也不想用自己的答案一统江湖,和上次一样,我们一起探索这个答案的过程更有趣。

我们一起探索这个答案的过程更有趣。


2005年我刚刚参加工作,那时候作为一个菜鸟测试,我在网上学习了等价类和边界值的用例设计方法。现在大家都知道这是黑盒测试用例设计方法中的两个典型手段。但是那个时候我是如何设计的呢?

我们用测试最经典的题目,三角形来测试一下吧:

输入三个数值a,b,c作为三角形的三个角,系统将给出以下输出:
不是三角形
钝角三角形
直角三角形
锐角三角形
系统错误
请为该程序设计功能测试用例

这个题目相当经典了,经典到它成为了我五年来的面试题。但是好像和网上流传的不太一样。因为我实在是讨厌勾股定理带来的计算量,我就单纯的想看看这个人的设计思路,所以尽可能的简化了这个题的数学部分。

2005年的我是怎么做这道题的呢?

首先我会先按照直观的印象,弄一个简单的测试用例出来:

  • a=90,b=10,c=80

然后把每一种可能的输出都赋予一个用例

  • a=100,b=10,c=70
  • a=80,b=20,c=80
  • a=60,b=10,c=80
  • a=x,b=10,c=80

接着我会苦思冥想,寻找到能把这个系统搞崩溃的手段,因为最高严重级别的bug就是崩溃,比如我会尝试一次输入很多很多字符,我会尝试很快速的多次输入等等。

当然,读到这里的读者朋友们估计已经笑了。这是非常简陋的方法,纯粹的穷举,几乎没有逻辑可言。我无意掩饰自己当年的笨拙,因为我觉得大家都是从这个状态走过来的。最初的我们就是依赖与生俱来的直觉,理性是慢慢学习和反思得来的。

我的面试者比我当年要强很多,一般来说,比较好的面试者会列出一系列约束条件:

  • 三角形的内角和是180度
  • 如果一个三角形内有一个角大于90度,它就是钝角三角形
  • 如果一个三角形内有一个角等于90度,它就是直角三角形
  • 如果输入的不是数字,那么系统将报错

然后,依据这些约束条件,他们会把输入分成多种,例如非数字,负数,小数,超过一百八十度的数等等,用正交法设计测试用例。

我的读者可以在这里做一做这道题,假如是你的话,你会如何设计这些用例?

拿出一张纸来,把你的答案写下来,因为后面你会需要面对它。

当然无论如何设计,都比我当年拍脑袋的搞法要好很多。


如果你已经形成了自己的设计,可以继续往下看了。

对于一个面试者来说,这一场面试将包括三部分,笔试部分是做上面那套题。事实上,如果有多个人都在做这道题,我甚至愿意他们互相讨论一下,因为比起他们现在写在纸上的内容,后面的两个部分才是我真正看重的。

一般来说,稍微受过测试训练的工程师都会切分好等价类,并针对边界值左右进行设计。我在拿到答案之后,我会与这位工程师面谈,谈的时候我会把他的答案还给他,然后问他一些问题。

各位亲爱的读者,你们也可以参与到这个过程中来,体验一下自我审视的感觉。看着这张纸,回答下面的问题:

请问,在给这个程序设计测试用例的过程中,你使用了哪些测试用例设计方法?

本文由51ste.com网友编辑,未经授权,不得转载使用上述作品盈利;个人转载,需标明原文作者及出处。

更多相关文章

说说看法查看全部评论(0)

微信二维码

部落微信公众号

QQ二维码

部落QQ群二维码