看博客,说观点,聊意见,交朋友。 现在已经习惯了用微博客表达自己的观点,因此这里也会微博一下。 --------专写软件测试博客读后感

合理不合理还是正向逆向

上一篇 / 下一篇  2006-12-02 17:02:22 / 天气: 晴朗 / 心情: 高兴

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

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

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

    我们经常说设计用例时要考虑合法的情况也要考虑非法的情况,但这种思路容易让我们把测试用例的设计简单化、机械化。为什么这样说呢,原因有二:
    1、单纯的合理不合理容易产生遗漏。比如现在有这样一个软件,是专门用来统计我们写的.c文件中的代码行数的。如果要测试这个软件统计代码行数的功能,很容易想到的就是统计一个合法的.c文件,考虑有不同的代码行数;统计一个非法的.c文件,这里的非法有多种情况。但这样是否就意味着是比较好的测试用例设计了呢?我们是不是还应该看看这个软件会不会把注释行误判成代码行等等呢。
    2、为了使用方法而使用方法,比如等价类、边界值、正交分析等等,反而忽略了我们设计这些用例到底是为了什么目的、每个测试用例的测试点到底在什么地方。

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

    先来看一下正向测试逆向测试的含义:
    正向测试:验证被测对象是不是做了它该做的事情。
    逆向测试:验证被测对象有没有做它不该做的事情。
    可以看出,正向测试并不一定就是简单的输入合法数据,而逆向测试也不一定就是简单的输入非法数据。正向和逆向不仅让我们知道如何去选择测试数据,还让每组数据的目的性也突出出来了。

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

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

PS:接下来准备针对
    (5)黑盒测试的典型方法: 正交矩阵法是减少测试用例的有效方法。等价类划分的缺点是没有考虑边界。
    再写一篇“正交分析法到底好在哪”。


TAG: 正向测试 逆向测试 测试用例目的

gegecy的个人空间 引用 删除 gegecy   /   2011-01-09 22:42:51
不好意思哈,刚才那个评分评错了,写的很好,茅塞顿开啊~~
gegecy的个人空间 引用 删除 gegecy   /   2011-01-09 22:41:42
-5
引用 删除 Anny.2008   /   2010-12-28 16:58:19
正向、逆向,很有道理,顶
 

评分:0

我来说两句

日历

« 2024-03-23  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 45182
  • 日志数: 8
  • 图片数: 1
  • 书签数: 35
  • 建立时间: 2006-11-22
  • 更新时间: 2010-09-21

RSS订阅

Open Toolbar