软件测试工作的三重境界(4)

发表于:2014-08-04来源:uml.org.cn作者:不详点击数: 标签:测试计划
测试人员进行漏测分析时,免不了对问题进行追本溯源。软件是由开发人员设计出来的,所以漏测分析活动少不了开发人员在场,甚至有时还会涉及需求设

  测试人员进行漏测分析时,免不了对问题进行追本溯源。软件是由开发人员设计出来的,所以漏测分析活动少不了开发人员在场,甚至有时还会涉及需求设计人员。关于漏测分析的追本溯源,这里有一个关于开发与测试之间的工作关系像修筑堤坝一样的有趣比喻,如图2?11所示。开发人员设计软件就像修筑一道堤坝,如果堤坝在结构上存在问题,当洪水冲击时,可能不只是局部的泄漏,而是直接的决堤,犹如软件的崩溃。高高的堤坝,难免会存在漏水的小洞,或渗水的小孔,就好像软件中存在的小Bug。越是在堤坝基部的漏水或渗水问题越难发现,解决的代价也越大。

  在设计时要把结构建牢,不存在漏洞当然更好,这是一种防范。如果超越防范界线,把设计带出的大洞小孔遗留到测试环节,它只好拿着各种放大镜(使用各种方法)来检测,以网罗各种深深浅浅、大大小小的问题,最后通过“打补丁”的方式,堵住堤坝上的“百孔千疮”。

  图2-5缺陷的防堵与堤坝的防堵形象理解示意图

  2、缺陷的防堵

  在对缺陷的防与堵方面,测试是发现问题的中间角色,告诉开发人员哪里漏水或渗水了。防与堵的工作是由建堤者来做的。当然,防是主动的,堵是被动的,主动变为被动后,中间经历了资源与时间的投入,诚然即使是同一个 Bug,它们的代价也是完全不一样的。这种堵越在后面,影响越大,代价也就越大,如图2-6所示(摘自《代码大全》)是一个根据缺陷出现的阶段来增加测试成本的例子。

  图2-6 根据缺陷的引入和检测时间,修正同一缺陷所需的平均成本

  如上图2-6所示为在需求阶段引入的一个缺陷。如果立即发现了此问题,修改成本只需要1美元,但如果在系统测试阶段发现它,修改成本就增加了10倍。更为严重的是,如果在版本发布后用户端发现了此问题,则需付出10倍以上甚至是100倍的代价。缺陷在系统中的时间越长,解决它的代价就越大,因为时间越长,开发与测试人员修改的成本就越高,还将影响大面积的用户端升级。

原文转自:http://www.uml.org.cn/Test/201306184.asp