background image

不符合用户要求的都可以称之为缺陷,因此缺陷的来源主要有两类:一类是没有正

确理解用户需求,由系统需求或者分析人员设计出来的缺陷,这类缺陷主要由设计人员

生产 ;另外一类是程序开发人员没有按照设计要求进行开发或者编写的代码存在错误

而引起的缺陷,这类缺陷由程序开发人员 生产 。

对于那些开发流程不规范的组织,通常开发人员会包办测试前的大部分工作。在这种

环境下,几乎没有什么设计文档,软件开发主要按照程序设计人员的想像来进行,这个

时候的缺陷则主要由开发人员 生产 。

测试人员不是缺陷的 生产 者,因为测试人员没有写过一行代码,这是否意味着测

试人员可以在一旁 幸灾乐祸呢 ?事实恰好相反,测试人员与缺陷关系更加密切,他们

是 缺陷的缺陷 的制造者。所谓 缺陷的缺陷 ,主要指测试人员提交的 不是缺陷 的缺陷,

即测试人员没有正确理解需求,从而提交了根本 不是缺陷 的缺陷,这种缺陷也是测试

人员经常受到指责的重要原因。

关于上面的抱怨,测试和开发双方都需要摆正心态:因为实际双方都在不停的 生

产 着缺陷,只是创造的方式不同罢了。

3、缺陷产生的原因是什么?

在上个问题中,已经介绍了设计人员、开发人员、测试人员都会 生产 软件缺陷。在实

际工作中,缺陷产生的方式更是层出不穷,原因也是多种多样。例如开发人员去接杯水,

碰巧和另外一个接水的同事聊了几句,结果回到工位时忘记了要在某个判断语句追加此

前已经想好的一个判断条件,这无疑会产生一个缺陷。因此很难一下子把缺陷产生的原因

全部陈列出来,下面只是一些引起缺陷的典型原因:

(1

” “

)开发人员不太了解需求,不清楚应该 做什么 和 不做什么 ,常常做不合需求

的事情,因此产生了缺陷;

(2)软件系统越来越复杂,开发人员不太可能精通所有的技术。如果不能正确地掌

握新的技术或者知识,可能会产生缺陷;

(3)技术文档普遍编写的很差,甚至文档本身就有缺陷,导致使用者产生更多的缺

陷;

(4)软件需求、设计报告、程序经常发生变更,每次变更都可能产生新的缺陷;

(5)任何人在编程时都可能犯错误,导致程序中有缺陷;