高品质软件,Rational工艺[1]

发表于:2010-02-25来源:作者:点击数: 标签:rationalRationalRATIONAL工艺品质
高品质软件, Rational 工艺[1] 软件测试 现代社会中竞争无处不在,产品质量是保证企业在激烈的市场竞争中立于不败之地的根本。任何企业都必需把满足客户 需求 作为企业发展的源动力,不断地改进产品和服务质量,为客户提供更高品质的产品和服务。只有这样,

  高品质软件,Rational工艺[1]  软件测试 

    现代社会中竞争无处不在,产品质量是保证企业在激烈的市场竞争中立于不败之地的根本。任何企业都必需把满足客户需求作为企业发展的源动力,不断地改进产品和服务质量,为客户提供更高品质的产品和服务。只有这样,企业才能够增强自身的实力,在市场上赢得越来越多的客户,在与对手的竞争中逐渐胜出。

  1 软件就是业务

  现代社会中竞争无处不在,产品质量是保证企业在激烈的市场竞争中立于不败之地的根本。任何企业都必需把满足客户需求作为企业发展的源动力,不断地改进产品和服务质量,为客户提供更高品质的产品和服务。只有这样,企业才能够增强自身的实力,在市场上赢得越来越多的客户,在与对手的竞争中逐渐胜出。

  随着科学技术的发展,我们已经步入一个信息时代,绝大多数的企业已经把他们的业务建立在信息系统之上,软件系统已经成为决定企业竞争力的关键要素之一,产品和服务的质量往往是由底层软件系统的质量所决定的,大家可能都有过银行储蓄所由于系统宕机而无法营行的经历,或者是由于电信系统发生故障而无法拨打电话;另外,企业的每一项新业务的推出都有赖于底层软件系统功能的支撑,谁的软件系统能够灵活地适应业务发展的需要,能够迅速地增加功能来支持新业务的运营,谁就能将新业务更快速地推向市场,从而为客户提供更好的服务和更多的产品选择。

  对于每一个企业而言,提高软件系统的质量就直接关系到生产系统的可靠性和企业的竞争力,因为软件和业务密不可分,软件的品质直接决定了企业能够提供什么样品质的产品和服务给她的客户。所以越来越多的企业把软件开发作为业务流程的一部分,负责软件开发和维护的IT部门也成为企业内部一个最为重要的业务部门,所有其他的业务部门都必须依靠软件开发部门来实现他们的业务,软件开发部门则完全根据客户需求进行业务驱动的开发(Business Driven Development)。随着企业在市场上的业务开拓,对于自身质量要求的不断提高,企业对于软件系统的质量要求也相应提高,高质量的产品和服务需要有高质量的软件来支撑。

  2 走出软件质量管理的误区

  我们该如何来保证软件产品的质量呢?很多企业在软件系统上线之前都会对软件系统进行充分的测试来保证其质量,通过功能测试压力测试可靠性测试等一系列的检测来发现软件中存在的问题,从而在系统上线之前及时改正这些错误,保证最终交付给客户的产品和服务的质量。

  但是测试并不是并且不应该是保证软件质量的唯一手段,质量管理大师戴明(Edwards Deming) 早就提出了"停止依赖检验来获得质量"的建议。依靠测试来保证软件质量是一种事后弥补的方法,它只能发现软件产品中已经的缺陷,但并不能事先避免缺陷的发生,为什么不能用"一开始就制造高品质软件"的方式来开发软件呢?试图单纯通过测试来发现软件中的缺陷在软件开发中普遍存在,但这种方式效率太低并且成本过高,并且测试从根本上不可能找出所有的软件缺陷

  当然测试是整个软件开发生命周期过程中一个必不可少的环节,它可以对软件质量进行有限程度内的检验,从而在一定程度上保证软件质量。但是,测试不应该成为整个软件开发过程中唯一的质量控制手段,测试人员也不是整个开发团队中唯一需要对软件质量负责的人员;质量保证应该落实到软件开发的全过程,开发团队中的每一名成员都有责任对软件质量负责。

  3 流程决定质量

  什么是一个流程?流程就是人们为了达到某一个特定的目标而制定的一些可执行的步骤。什么是一个软件开发流程?软件开发流程描述了在软件开发过程中的人员分工(角色),每个角色应该从事的开发活动以及相关的工件。通俗地讲,软件开发流程就是告诉你如何来组织你的软件开发团队,如何来分配开发任务,在什么时间点应该产生什么样的工作成果,这些工作成果应该附合什么样的质量标准。

  一个好的软件开发流程可以提高软件开发团队的工作效率,控制开发过程中的风险,保证软件开发进度并且提高软件产品质量。软件质量的好坏基本上是由开发过程中的每一个环节(并不仅限于测试环节)所保证的,过程中的每一个角色都应该对软件质量负责。

  上世纪70年代,人们为了解决日益复杂的软件开发而造成的"软件危机"提出了软件工程的思想,即要用工程化的方法来开发软件,使得软件开发的整个过程及其质量都是可控的。"瀑布模型"是那个年代最有名的软件开发生命周期模型,它是借鉴传统工业化流程中的质量管理方法,将整个开发生命周期划分成为几个阶段,在每个阶段的结束点设置一些检验点,通过控制每一个阶段的质量来保证最终软件产品的质量。

原文转自:http://www.ltesting.net