软件测试用例浅谈——合理不合理还是正向逆向

发表于:2011-1-27 11:55  作者:skinapi   来源:51Testing软件测试博客

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 软件测试 测试用例

  John Lee写的一篇“Tricks of Software testing”中提到的:

  (2)用例: 一般考虑3个方面的,合理的,不合理的和边界的。

  感觉这里提到的合理的、不合理的应该是针对输入而言的,或者也可以用合法的、不合法的以及有效的、无效的来进行替代,这样与之相对应的方法就是等价类划分。

  我们经常说设计用例时要考虑合法的情况也要考虑非法的情况,但这种思路容易让我们把测试用例的设计简单化、机械化。为什么这样说呢,原因有二:

  1、单纯的合理不合理容易产生遗漏。比如现在有这样一个软件,是专门用来统计我们写的.c文件中的代码行数的。如果要测试这个软件统计代码行数的功能,很容易想到的就是统计一个合法的.c文件,考虑有不同的代码行数;统计一个非法的.c文件,这里的非法有多种情况。但这样是否就意味着是比较好的测试用例设计了呢?我们是不是还应该看看这个软件会不会把注释行误判成代码行等等呢。

  2、为了使用方法而使用方法,比如等价类、边界值、正交分析等等,反而忽略了我们设计这些用例到底是为了什么目的、每个测试用例的测试点到底在什么地方。

  既然单纯考虑合理不合理并不是一种很好的方式,那么应该按照一个什么思路来去考虑我们的用例设计呢?其实这个思路已经有了,那就是正向(positive testing)和逆向(negative testing)。

  先来看一下正向测试和逆向测试的含义:

  正向测试:验证被测对象是不是做了它该做的事情。

  逆向测试:验证被测对象有没有做它不该做的事情。

  可以看出,正向测试并不一定就是简单的输入合法数据,而逆向测试也不一定就是简单的输入非法数据。正向和逆向不仅让我们知道如何去选择测试数据,还让每组数据的目的性也突出出来了。

  还是回到前面提到的统计代码行软件的测试,测试该软件会不会把注释行误判成代码行就是一种逆向测试。

  从上面的分析可以看出,选择正向逆向比合理不合理更能让我们把握测试用例设计的本质,也更有助于我们去不断提高自己的测试水平和能力,因为下面我们要做的一个工作就是搞清楚哪些是被测对象该做的事情而哪些是被测对象不该做的事情,分析的越细越清楚,测试用例设计的就越好。

  PS:接下来准备针对

  (5)黑盒测试的典型方法: 正交矩阵法是减少测试用例的有效方法。等价类划分的缺点是没有考虑边界。

  再写一篇“正交分析法到底好在哪”。

版权声明:本文出自skinapi的51Testing软件测试博客:http://www.51testing.com/?170

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。


评 论

  • w阿思 (2011-4-16 16:45:00)

    我认为现在开始设计用例时,还是要先考虑软件做没做它该做的事,对于做没做不该做的事,那就要经验了,对于不该做的事,太多太多情况,不可能设计完备的用例。

  • unholyalliance (2011-1-28 10:45:56)

    我觉得正向和逆向这个思想很不错,但是和合理不合理的设计方法并没有本质的区别,只是看问题的角度不一样。特别是对于你所提出的例子,“注释”它也是一种输入的情况。按照合理数据统计,不合理数据不统计的规则,那它是属于不合理的数据类。这个就要深入了解规则,然后根据规则来设计测试用例及相应的测试数据。

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2020, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道