3 测试过程管理实践
本节以一个实际项目系统测试过程(不对单元测试和集成测试过程进行分析)的几个关键过程管理行为为例,来阐述上节中提出的测试理念。在一个构件化ERP项目中,由于前期需求不明确,开发周期相对较长,为了对项目进行更好的跟踪和管理,项目采用增量和迭代模型进行开发。整个项目开发共分三个阶段完成:第一阶段实现进销存的简单的功能和工作流;第二阶段:实现固定资产管理、财务管理,并完善第一阶段的进销存功能;第三阶段:增加办公自动化的管理(OA)。该项目每一阶段工作是对上一阶段成果的一次迭代完善,同时将新功能进行了一次叠加。
3.1 策划测试过程
依据传统的方法,将系统测试作为软件开发的一个阶段,系统测试执行工作将在三个阶段完成后开展,很明显,这样做不利于BUG的及时暴露。有些缺陷可能会埋藏至后期发现,这时的修复成本将大大提高。我们依据“独立和迭代”的测试理念,在本系统中,对测试过程进行独立的策划,找出测试准备就绪点,在就绪点及时开展测试。该系统的三个阶段具有相对的独立性,在每一阶段完成所提交的阶段产品具有相对的独立性,可以作为系统测试准备的就绪点。故而,在该系统开发过程中,系统测试组计划开展三阶段的系统测试,每个阶段系统测试具有不同的侧重点,目的在于更好的配合开发工作尽早发现软件BUG,降低软件成本。软件开发与系统测试过程的关系如图3-1所示。

实践证明,这种做法起到了预期的效果,与开发过程紧密结合而又相对独立的测试过程,有效的于早期发现了许多系统缺陷,降低了开发成本,同时也使基于复杂开发模型的测试管理工作更加清晰明了。
3.2 把握需求
在本系统开发过程中,需求的获取和完善贯穿每个阶段。对需求的把握很大程度上决定了软件测试是否能够成功。系统测试不仅仅确认软件是否正确实现功能,同时还要确认软件是否满足用户的需要。依据“尽早测试”和“全面测试”原则,在需求的获取阶段,测试人员参与到了对需求的讨论之中。测试人员与开发人员及用户一起讨论需求的完善性与正确性,同时从可测试性角度为需求文档提出建议。这些建议对开发人员来说,是从一个全新的思维角度提出的约束。同时,测试组结合前期对项目的把握,很容易制定出了完善的测试计划和方案,将各阶段产品的测试方法及进度、人员安排进行了策划,使整个项目的进展有条不紊。
实践证明,测试人员早期参与需求的获取和分析中,有助于加深测试人员对需求的把握和理解,同时也大大促进需求文档的质量。在需求人员把握需求的同时,于早期制定项目计划和方案,及早准备测试活动,大大提高了测试效率。
3.3 变更控制
变更控制体现的是“全过程测试”理念。在软件开发过程中,变更往往是不可避免的,变更也是造成软件风险的重要因素。在本系统测试中,仅第一阶段就发生了7次需求变更,调整了两次进度计划。依据“全过程测试”理念,测试组密切关注开发过程,跟随进度计划的变更调整测试策略,依据需求的变更及时补充和完善测试用例。由于充分的测试准备工作,在测试执行过程中,没有废弃一个测试用例,测试的进度并没有因为变更而受到过多影响。
3.4 度量与分析
对测试过程的度量与分析同样体现的“全过程测试”理念。对测试过程的度量有利于及时把握项目情况,对过程数据进行分析,很容易发现优势劣势,找出需要改进的地方,及时调整测试策略。
在ERP项目中,我们在测试过程中对不同阶段的BUG数量进行了度量,并分析测试执行是否充分。如图3-2所示,通过分析我们得出:相同时间间隔内发现的BUG数量呈收敛状态,测试是充分的。在BUG数量收敛的状态下结束细测是恰当的。

图3-2 软件开发与系统测试关系图
测试中,我们对不同功能点的测试数据覆盖率和发现问题数进行度量,以便分析测试用例的充分度与BUG发现率之间的关系。如表3-1所示,对类似模块进行对比发现:某一功能点上所覆盖的测试数据组越多,BUG的用例发现率越高。如果再结合工作量、用例执行时间等因素进行统计分析,便可以找到适合实际情况的测试用例书写粒度,从而帮助测试人员判断测试成本和收益间的最佳平衡点。
表3-1 测试数据覆盖率与BUG发现率对应表
模块名称 功能点数 测试数据数 测试数据覆盖率 BUG的用例发现率()
模块AA 6个 75组 12.5组/每功能点 40% (6/15)
模块BB 30个 96组 3.3组/每功能点 17% (7/42)
模块CC 15个 87组 5.1组/每功能点 18% (5/28)
模块DD 16个 46组 2.8组/每功能点 23% (5/22)
… … … … ...
注:通过统计可以得出测试数据与BUG发现率之间的关系,便于及时调整测试用例编写策略。
所有这些度量都是对测试全过程进行跟踪的结果,是及时调整测试策略的依据。对测试过程的度量与分析能有效的提高了测试效率,降低了测试风险。同时,度量与分析也是软件测试过程可持续改进的基本。
4 测试过程可持续改进
测试技术发展到今天,已经存在诸多可供参考的测试过程管理思想和理念。但信息技术发展一日千里,新技术不断涌现,这就注定测试过程也需要不断的改进。我们提倡基于度量与分析的可持续过程改进方法(本文不做详细论述)。在这种方法中,对现状的度量被制度化,并作为过程改进的基础。组织可以自定义需要度量的过程数据,将收集来的数据加以分析,以找出需要改进的因素。在不断的改进中,同步的调整需要度量的过程数据,使度量与分析始终为了过程改进服务,而过程改进也包含对度量和分析的改进。
掌握了基于度量和分析的可持续过程改进方法,测试过程管理将能够不断完善,测试活动将能够始终处于优化状态。


最新评论
查看全部评论
评论总数 1 条