在实际项目工作过程中,中小型项目开发团队因为项目规模等原因,在需求管理和测试管理上进行了过度裁剪,导致项目的需求管理和测试管理出现失控。如何在中小项目开发团队中做好需求管理和测试管理,是目前大部分项目团队面临的主要问题之一。本文主要说明如何使用Rational工具进行有效的需求管理和测试管理,提高软件的质量和开发水平。
在本文中,中小型开发团队指项目成员数量在2-25个,项目工作量在6-75个人月的软件项目。
1. 项目生命周期对于中小型项目管理的重要性
任何有机体都有其生命周期,中小型软件项目也不例外。项目经理或组织可以把每一个项目划分成若干个阶段,以便有效地进行管理控制,并与实施该项目组织的日常运作联系起来,这些项目阶段合在一起称为项目生命周期。本文将项目生命周期划分为启动、计划、执行和结束四个阶段(见图一)。其中,执行阶段一般包括需求、设计、实现、测试和发布活动。这些活动可以按照实际情况采用瀑布或迭代等其他方式进行开发。
图一 项目生命周期阶段及里程碑图
正确的认识和理解项目的生命周期,对制定与实施相应的战略、策略以在满足成本性能、时间性能和技术性能的条件下实现项目管理的目标,并形成企业核心竞争优势,都具有非常重要的意义。通过对项目生命周期各个阶段及各个阶段里程碑的明确,便于项目团队的交流沟通,使团队成员对项目有更深更细的认识。
在中小型项目开发团队中,由于资源限制,人们常常跳过项目生命周期的某些阶段,或是敷衍的执行其中的某个活动。在整个软件生命周期中,经常被忽视的两大活动就是需求管理以及测试管理。国内软件业的痼疾之一是,人们并不清楚究竟该做什么,但却一直忙碌不停地开发。例如,还没有弄清楚项目所需要解决的问题是什么,就直接选择项目的解决方案。更有甚者,直接进行项目编码活动。这种情况往往半途而废,或返工重来,造成很大的损失。要进行项目管理,就要严格遵循项目活动中的内在规律,并按照生命周期每个阶段的策划,与预定的实施活动进行项目管理才有可能避免不必要的损失,少走弯路,使项目达到良好的效果。
2. 中小型项目开发团队如何做好需求管理和测试管理
需求是项目的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。对于现代企业来说,能否生产出满足顾客需求的软件至关重要,在整个软件的生命周期中,要确保各项工作和需求之间的一致性,应用需求管理就显得格外重要。
要做好需求管理,主要从需求确认、需求跟踪和需求变更控制三个方面进行。需求确认主要指开发方和客户方共同对《需求规格说明书》进行评审,双方对需求达成一致共识后作出承诺。在达成共识的需求基础上,通过建立与维护“需求——设计——编程——测试”之间的一致性,确保所有提交的工作成果符合用户需求。随着项目的进展,人们(包括开发方和客户方)对需求的了解越来越深入,原先的需求文档可能存在这样那样的错误或不足,因此开发方和客户方要变更需求。通过建立变更管理流程,管理需求变更,对需求变更进行分析和评估,控制需求变更造成的影响,以免需求变更失去控制。
在软件生命周期中,除了需求管理外,经常被忽视的另一个部分就是测试管理。在传统手工管理方式下,测试与需求间的关系很难进行跟踪控制。在需求发生变更时,经常出现测试未完全覆盖需求,导致测试不全面的问题。由于缺乏必要的系统平台支撑,容易造成测试资产的遗漏,项目测试管理人员无法对测试资产进行有效的跟踪管理。随着质量管理发展的要求,测试的范畴已经不再仅局限于发现缺陷,还包括对软件产品质量进行评估、度量管理和缺陷预防等活动。通过测试活动,发现、跟踪和处理缺陷,对项目进行风险评估。
做好测试管理,可以从以下四方面进行:1)项目测试计划管理、测试进度管理:保证项目测试工作按照预期的计划与可行的进度开展;2)测试资产管理:包括测试计划、测试用例、测试脚本、测试报告的创建与维护、缺陷跟踪,保证测试资产之间是可跟踪的,一致的;3)项目质量评估与预防:通过测试度量数据的分析与预估,对项目质量进行风险评估;4)测试团队管理:如测试人员的绩效考核、人员的技术发展与定位、人员激励等。
3. 中小型项目开发团队如何开展需求管理和测试管理
需求管理属于CMMI中的KPA之一,而测试管理则在验证和确认这两个KPA中得到体现。CMMI主要是针对大型软件项目开发团队的,对中小型软件项目开发团队则需要进行裁减。而我国大部分软件项目开发团队都属于中小型项目团队,在进行需求管理和测试管理活动时,不太可能也没有必要原原本本地对照CMMI中定义的每一项要求进行实施。这就牵涉到对需求管理和测试管理进行裁剪及解释的问题。“裁剪”是指对范围及程度的改变;“解释”是指把实际软件项目中的实践工作,理解为或等同为某个关键实践。
就中小型项目开发团队来说,裁剪及解释是否得当是能否成功地应用需求管理和测试的一个关键。笔者认为,在不影响基础要求的前提下,剪裁到越简单,条理就越清晰,执行效果越好。
4. 中小型项目开发团队如何选择需求管理和测试管理工具
随着越来越多的企业开始意识到需求管理和测试管理的重要性,目前有很多研发企业都根据裁剪后的规范和流程,建立了适合企业情况的需求管理和测试管理流程,但多数企业都是以书面表单的形式来记录和维护需求与后继工作成果的一致性(见表一),管理需求变更、缺陷、测试资产。采用此种方式维护工作量大,难于对需求和测试进展状态进行追踪,导致需求管理和测试管理流程难于贯彻实施,同时难于对项目管理进行量化。所以,我们亟需有适合的工具来支撑我们的工作,以便节约资源提升效率。
表1 需求跟踪矩阵
ID |
原始需求
(版本,日期) |
需求规格说明书
(版本,日期) |
设计文档
(版本,日期) |
代码
(版本,日期) |
测试用例
(版本,日期) |
1 |
标题或章节号,说明 |
标题或用例标识符,说明 |
标题或章节号,说明 |
代码名称,说明 |
测试用例名称或标识 |
2 |
…… |
…… |
…… |
…… |
…… |
…… |
|
|
|
|
|
由于需求管理和测试管理的重要性开始被众多企业认同,需求管理和测试管理工具市场开始逐步形成。对于中小型项目开发团队,由于项目规模、进度、资源等方面的关系,如果使用的工具功能过于齐全、使用不方便,需求管理和测试管理及项目生命周期中的其他工具之间不能有效集成,那么这些工具显然不是中小型项目开发团队的理想选择。笔者认为适用于中小型项目开发团队的需求管理和测试管理工具,至少必须符合以下两点要求:使用简便、工具间能够很好的集成。如果条件允许的话,最好可以使用一个工具实现日常的需求管理和测试管理要求。
5. 使用Rational相关产品提高中小型项目开发团队软件质量
了解了在中小型项目开发团队中需要使用工具来辅助进行需求管理和测试管理的重要性与必要性后,我们可以根据中小型项目开发团队的特征选择适合的工具。在业界中,有不少厂商提供了相关的支撑工具,例如:IBM、Telelogic、Microsoft、HP等。这里我们以IBM
Rational相关产品为例,说明如何使用合适的支撑工具来提高中小型项目开发团队软件质量和开发水平。
IBM Rational结合多年实践经验,提供了一个适合国内软件企业的软件质量管理解决方案(见图二)。该解决方案中使用Rational
RequisitePro和ClearQuest实现了测试与需求管理功能。
图二 IBM Rational软件质量解决方案图
IBM Rational RequisitePro是一个强大、易用、集成的需求管理产品。它集成了一个大家都很熟悉的环境:Microsoft
Word,以及一个数据库来提供强有力的十分容易使用的框架。我们可以用它来对项目需求进行管理,也可以在需求文档中逐条标记你的需求(如特性、软件需求等),然后通过数据库对它们进行双向跟踪管理,维护需求与后继工作成果的一致性(见图一)。
在当前的项目生命周期中,变更管理变得日益重要,有效的变更管理以及对开发资产缺陷、增强请求、新需求的响应和其他进行变更的追踪能力在项目中都是极为关键的。通过将RequisitePro与ClearQuest的集成,可以进行有关需求、缺陷、变更管理的全程跟踪与控制,并提供相应的全面的报告,节约了时间和工作量,帮助管理和验证所有计划的需求都被交付物所满足,降低项目风险。
在ClearQuest7.0以上的版本中,TestManager作为一个软件包集成在ClearQuest中,从而使得ClearQuest除了具有变更管理以及缺陷管理功能外,增加了测试管理功能,使ClearQuest向项目组提供了项目生命周期中完整的测试管理解决方案,从初始测试计划、测试用例设计、直至测试开发、执行及测试结果分析,实现了从需求到测试用例之间的跟踪,并保证需求在开发后都经过了测试。
6. 总结
本文主要从项目生命周期角度说明了需求管理、测试管理对于中小型项目开发团队的重要性,并从过程裁剪角度说明了如何在中小型项目开发团队中开展需求管理和测试管理,最后说明如何使用Rational
RequisitePro和ClearQuest来提高中小型项目团队的软件质量。
参考文档
项目生命周期对于项目管理的重要性 [海峡科学 Channel Science]
管海波,黄敬前
IBM Rational RequisitePro集成简介 IBM developerWorks牛晓飞
|