CMM与软件评价及测试(2)

发表于:2014-12-08来源:uml.org.cn作者:廖波点击数: 标签:cmm
这些应当进行评价和测试的交付产品应当包括需求规格说明书,设计规格说明书、数据转换规格和数据转换代码、 数据库 设计说明书、 培训 资料 、硬件

  这些应当进行评价和测试的交付产品应当包括需求规格说明书,设计规格说明书、数据转换规格和数据转换代码、数据库设计说明书、培训资料、硬件/软件安装规格、用户手册和应用程序代码等等。当然这并不是一个完整的列表。问题的关键是,在你的项目生命周期中的每一个交付产品都必须被测试。

  对于一个给定交付产品的评价和测试可能会延续项目生命周期的多个阶段。越来越多的软件组织开始从瀑布式模型向迭代式模型转变。例如,设计规格可能会经过三个迭代才能产生。第一个迭代定义体系结构—它是人工的还是自动的,是集中的还是分散的,是在线的还是批命令式的,是直接文件存储还是通过关系性数据库等等。第二个迭代则可能继续推动设计,来鉴别所有的模块和模块间的数据交换机制。第三个迭代则定义模块内部的伪代码。每个迭代都应当基于适当的特性来进行评价与测试。

  评价和测试的类型必须是鲁棒的、坚固的。这包括对功能、性能、可靠性-可用性/实用性-可服务性、易用性、可移植性、可维护性和可扩展性等的验证,但绝不仅限于此。

  总之,每个阶段的每个交付产品必须通过正式的、训练有素的技术来对适当的属性进行评价和测试。

  二、在CMM中为什么要加入这个独立的KPA

  由五个重要方面能说明必须有一个独立的软件评价与测试的KPA,即:

  (1)评价和测试在促进向有纪律的软件工程过程过程的文化转变中的作用;

  (2)评价和测试在项目跟踪中所起的作用;

  (3)整个开发和维护在评价和测试部分的预算;

  (4)评价和测试训练对软件交付时间和成本方面的影响;

  (5)评价和测试对软件残余缺陷的影响。

  将软件工业从一种手工(艺)匠方法向真正的训练有素的工程层次迈进实在是一种文化的转折、跃变。CMM的首要的而且也是最重要的目标是,建立一种机制来推进向软件工程的文化改变。但是一个文化不可能发生激烈的改变,除非你深刻理解改变的重要性。必须全面理解向新的文化改变所能给我们解决的问题。最后这一点,将使我们引导我们来讨论测试在这一加速向训练有素的文化改变中所起的作用。

  在1960年代后期,IBM是第一批开始应用正式软件工程技术的组织之一。一开始使用的是Dijkstra支持的技术。具有讽刺意味的是,并不是由软件开发人员发起这项努力的,而是软件测试人员。这一创始性工作是在Poughkeepsie实验室进行的,属于Philip Carol领导的面向测试的设计项目。

  Phil是软件测试技术工作组(SW Test Technology Group)的一个系统测试工程师。这个工作组主要负责定义软件测试技术和工具以用于整个公司。大概在30年以前,他们就开始意识到你不可能通过测试将质量注于代码中。你需要像考虑测试过程一样也得考虑分析、设计和编码过程。作为测试人员,由于测试需要接触软件开发的所有方面,他们对问题有更加彻底深入的理解。

  正是这一对问题的深入认识并将这一问题明确有力地向开发人员指出推动了软件开发文化的迅速改变。随着改进的开发和测试技术的应用,IBM的OS操作系统的缺陷率在下一个发布降低了1/10。这确实是在短时间内产生的重要的文化变革,特别是这涉及到了分布在不同地域的近千名软件开发人员。

  这种变化的加速除了对问题的重视的直接推动外,另一个推动因素是与测试有关的一些因素,即在测试过程和开发过程集成中的反馈环。随着开发过程的不断改进,评价和测试过程并行地改进以反映新的成功准则。随着开发不断使用新技术,他们直接从测试人员那里得到及时的反馈即他们究竟做的怎么样,因为测试人员就是专门基于新的尺度对交付产品进行确认的。

  一个具体的例子是需求撰写改进技术的应用,需求必须是明确的、确定的、逻辑上是一致的、完备的、正确的。有关结构化分析方法和面向对象的方法的培训课教系统分析员如何来写一个好的需求。如果在他们刚刚写完第一个功能描述时就进行模糊性评审,那么他们写的下一个功能就会更加清晰明确。这种紧凑的反馈环— 写一个功能、评价一个功能,有效地加速了其学习曲线。这样的话,过程从缺陷检测到缺陷预防转移的相当快速----他们正在写着清晰、不模糊的规格。

  将这些经验与我们的整个软件工业做一个对比,结构化设计技术和面向对象的技术已经在25年前就可以应用了(是的,OO确实已经那么老了),然而我们的时间的情况却远远落后于这些方法的最新技术发展水平。问题是除非组织理解了正在解决的问题,否则它不会全面接受或者全面理解一个解决方案(如:软件工程方法和技术),而集成的评价和测试正是问题理解的杠杆和关键。这里“集成评价和测试”被定义为将测试集成到软件过程的每一步中,它也是为掌握一个技术所需的必要的反馈环的关键部分。任何没有紧密反馈环的过程是具有致命缺陷的过程,因此评价和测量是加速文化改变的关键。

原文转自:http://www.uml.org.cn/Test/test122502.htm