据市场分析家称,由于缺乏资源、工具和知识来实施有效的软件测试工作,企业正在浪费高达50%的软件开发预算。

  分析机构Gartner的应用程序开发分析师表示,项目期限和产品从构思到上市的时间的缩短,以及人们对软件测试工作能够带来的好处的无知,意味着企业将无法更高效地改善软件开发的质量。

  应用程序开发周期的更快速周转正在影响产品的质量,对问题的调优和满足客户需求的压力可以直接影响测试工作,这是为什么软件测试将变为人们关注的焦点的原因。

  一、软件企业中的开发测试

  一个强壮的软件测试周期,已经从测试软件的质量转向将质量融入到软件中,但是这种类型的转变超出了大多数企业的能力范围,它们大多数需要一些来自第三方团体的帮助。

  通常情况下,软件测试工作会消耗25%的资源,其中包括时间和金钱,但是,大多数公司在一个典型的测试周期中要花费45%到50%。大多数金钱则浪费于在程序开发完后纠正初需求阶段所犯下的错误上。

  由于产品从设计到上市的时间的缩短,开发完后的应用程序错误给企业带来的打击会更沉重。

  一些大型企业已经意识到软件测试工作的重要性,它们中的很多企业将这个软件测试过程实施外包,以努力将其与软件开发捆绑在一起。

  不过,这也许是一种错误的做法,它破坏了软件测试工作的有效性,因为测试者将不能完全理解项目的需求,当测试过程被外包的时候,这种开发者与测试者之间的脱节则显得更为严重。

  只有在一个非常了解软件开发方法的成熟的企业中,软件测试才会成功。但是,很多企业对软件测试的态度已经远远落后于一些企业,它们甚至不将软件测试看作软件开发的重要组成部分。

  不过,在未来的几年中,软件测试工作将从一些大型企业开始被重视。因为在大型项目中,软件开发质量的提高很明显更急需保证。那些在不严格的项目开发过程中损失惨重的企业,将成为这种转变的开路先锋,这些企业将增加内部测试工作,而那些受市场需要逼迫的企业则有可能选择外包的快速办法。

  如果企业想要重新设计它们的软件测试战略的话,必须首先创建一个可靠的基准策略。在整个开发过程中,项目应该被一些关键机制来衡量,然而目前还没有什么业界基准可以被用来参考。

  业界基准控制的缺乏对软件测试者来说是一个大问题,因为在软件开发过程中没有一个成功的基准文化可以参考。这些基准也可以被用来衡量外包合约的执行情况。

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

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

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

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

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

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

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

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

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