软件测试原则

上一篇 / 下一篇  2009-05-25 21:27:39 / 个人分类:全程测试

    软件测试作为一门科学与艺术也有着自己的原则,《软件评测师教程》中总结归纳了七大测试原则,现在将其与本人的理解列如下:
    1> 所有的软件测试都应该追溯到用户需求。这是勿庸置疑的,软件的产生与目的就是为了满足用户的需求,作为软件开发工程中的一个工作流程的软件测试也是以用户需求为根据的。也可以说软件测试就是为了找出与用户需求不一致的地方,当然用户需求包括用户规定的需求与潜在需求。
    2> 应当把“尽早地和不断的进行软件测试”作为软件测试者的座右铭。这说得一点也不为过,软件测试本身就贯穿于软件开发的各个阶段中。而且软件测试也有自己的独立的工作流程,并不只是软件开发后期阶段的检验过程。要知道由于编程不正确产生的缺陷并不占多数,绝大部分是需求分析与设计方面产生的缺陷。而且越到后期修复缺陷的成本越高,所以应该尽早地,不断地进行软件测试。
    3>完全测试是不可能的,测试需要终止。由于软件的复杂性,一个适度规模的程序其测试路径的组合就近似天文数字,要进行穷举测试是不可能的。另外,这也是基于测试成本的考虑。所以要进行完全测试,在有限的资源条件下,找出所有缺陷以使软件趋于完美是不可能的。
    4>测试无法显示软件潜在的缺陷。软件测试的目的是尽量找出多的缺陷,对软件质量进行评估。因为穷尽测试的不可能,所以从理论上说软件缺陷总是存在的,也就不能显示 软件潜在的缺陷。
    5>充分注意测试中的群集现象。如是有测试经验的同行都会有此体会,在某一模块或功能点上的缺陷总是特别多,往往越挖越多,这就是群集现像,也是符合80/20原理的。这是可能由于模块设计得不好,或是功能点特别复杂,亦或是负责相关模块的开发人员水平问题等这些特殊个别原理造成了缺陷群集现像。所以实际测试过程中,我也应该利用这个原理以发现更多的缺陷。
    6>程序员应避免检查自己的程序。这主要是心理因素,一是思维定势,二是总是认为自己是对的心理。这也就是为什么会有测试与开发之分。不过由于也就引出了另外一个问题,我们测试人员编写的测试脚本又让谁来测试呢?虽然说一般来说测试脚本在逻辑上不如实体软件程序复杂,但也是会有不少错误的。有可能就是由于脚本设计的错误造成了错误的测试,很多缺陷被忽略。在这种情况下,如果有足够的时间与人力资源相互检测测试脚本不失为一个好方法,但实际工作中往往不允许有足够的资源。这时我们可以以免一个人分别负责一整个功能模块,交叉进行,分别调其它同事的脚本,在阅读与调用脚本时就可以看作是简单的脚本测试。
    7>尽量避免测试的随意性。测试应该从工程的角度去理解软件测试,它是有组织,有计划,有步骤的活动。这是无疑的,测试也是一个工程。但是不是就就随机测试也是应该避免的?不是。随机测试(Ad-hoc testing)并不是随意测试,它是基于系统的测试后根据人员的经验来猜测问题的所在而进行随机测试。往往很多时候,随机测试的作用是非常明示的。
    这就是教程中提到的七大软件测试原则,也是非常中肯实用的原则。这比哪些讨论什么是质量模型等到实际测试更有指导意义,所以我们测试中应该好好应用。

相关阅读:

TAG: 测试原则

 

评分:0

我来说两句

Open Toolbar