二、开发团队中的软件测试

在测试过程中,不要在每一个功能的漏洞的测试上浪费时间,你需要5个或10个基本的机制来得到更有意义的结果,例如开发的能力与质量的保证。而且它们需要经过长时间的验证来获得,并且能够根据业界数据来进行调整。

对软件测试工作的需要是由项目的前后联系、等级和风险环境来决定的。如果软件编程者非常有经验和熟练的话,对于一些小型项目来说,测试工作可能不是必要的,可以边开发边测试。

在某些情况下,一个软件开发项目组织可能因为太小或成员磨合时间太短,以致于不能拥有一个测试人员。而这时候使用承包或外包的方式来完成测试工作,或者调整项目管理或开发的方式也许是合适的选择。

一些没有经验的管理者有时候会对项目的成功进行赌博,即直接跳过测试工作,或者让程序员进行开发后的功能测试工作,但这是一种高风险的赌博行为。

软件测试工作应该保持自行完成,因为相比外包公司,企业对它的客户和产品需求有更准确的了解。开发项目内部的人更了解自己的产品,知道其客户会如何使用它,以及客户关心的事情是什么。基于这些知识,可以更好地完成测试工作。对一些功能重要的软件产品只做表面的测试工作是不够的。

开发者需要测量自己的软件测试过程的有效性,并不断地去完善它们。每一个组织应该找出适合自己产品的衡量机制,例如代码语句覆盖率或数据库性能,来不断地衡量测试工作。这主要是因为在开发阶段,产品也是不断变化的。

不过,目前针对大多数开发语言都出现了自动化工具,单元测试也逐渐更加普及。但是一些开源产品通常因为缺乏良好的测试工作而臭名远扬。自动化控制是确保测试质量一致性的好的方法。

对于软件项目的85%的缺点产生于需求调研阶段的说法,也许是不太准确的。软件的缺点在系统架构设计和开发阶段都会悄悄潜伏到产品中。我们可以很容易的看到,相比在产品发布之前进行漏洞修补,在完成后修补漏洞显然要代价要更昂贵。它的成本会百倍的增加吗?这取决与多少个客户系统被这个漏洞所影响,有多少系统需要被打补丁。