探索中国CIO人才现状 | 第四季调研报告
基于开发流程的测试流程管理
2013-12-03  作者:流程 

  引言


  随着软件行业的发展。软件产品已经影响到我们社会的诸多领域,人们对软件作用的期望值也越来越高,对软件质量重要性的认识也逐渐增强。


  然而,软件缺陷(bug)是伴随软件产品开发过程而产生的敷衍品,采用新的技术和方法,也不能完全消灭软件缺陷。因此,在软件开发过程中尽早地引入软件测试技术来保证软件质量,降低软件缺陷率,已经得到软件业的认可。软件开发过程中的每—个阶段都会有相应的文档和产品产生,对这些文档和产品进行严格评审和测试,可以尽早发现问题。及时找出与需求分析和项目计划中的不符合项。对软件的缺陷的早发现,早处理,能够大大减少传统软件测试在软件产品成型后发现问题、修改问题所带来的人力物力的浪费。


  1软件缺陷管理


  软件缺陷管理就是对软件开发过程中所发现的软件缺陷进行跟踪管理。并记录软件缺陷的状态信息,保证每个被发现的软件缺陷都能关闭。软件缺陷管理是软件开发过程中项目管理流程中重要的组成部分。软件测试流程管理其在本质上就是软件缺陷管理的文档化、规范化流程。


  1.1软件缺陷报告


  软件缺陷报告(bug报告)是测试过程中提交的最重要的文档。它的重要性丝毫不亚于测试计划。并且比其他的在测试过程中产出的文档对产品的质量的影响更大。它记录了软件bug发生时的环境、步骤及相关结果,以保证修复错误的开发人员可以重复报告的bug,从而有利于分析bug产生的原因,定位bug。因此有效的缺陷报告能够:


  (1)减少开发部门的二次缺陷率。


  (2)提高开发修改缺陷的速度。


  (3)提高测试部门的信用度。


  (4)增强测试和开发部门的协作。


  要想写好—个好的缺陷报告应遵循以下的条款:


  (1)精简:缺陷报告要清晰而简短。用最直接、简练的语言来描述最有用、最重要的信息。


  (2)准确:确保上报的每一个bug都是有效的、可验证的,而不是因为自己理解、安装、错误操作等其他因素而产生的bug。


  (3)中性:用客观的语言来描述bug.在描述中不添加任何个人性格语言色彩。


  (4)精确:清晰地描述bug产生的步骤,保证语言的干净,有条理。


  (5)定位:根据公司或行业的相关标准对发现的bug进行准确定位,并尝试用最简短的步骤来重现这个bug。


  (6)归纳:尝试对发现的问题进行归纳。


  (7)重现:检查上报的bug是否可以重现。如果不是可重现的,应说明问题的偶然性。


  (8)隔离:上报一个bug进行相应的bug隔离,写清发生此bug时的环境信息。


  (9)检查:同行评审是发现问题的最有效的手段之一。


  1.2传统的软件测试流程


  当—个软件项目要进行相应的测试时,一般都要经过制定测试计划,测试环境及用例设计,实施测试,单元测试,集成测试,系统测试,评估测试,最后给出相应的测试报告这几个流程。


  从流程图中可以看到,传统的测试流程虽然和软件工程中的V型开发模型有一定的对应关系,但是测试流程和开发流程还是两个独立的流程,在软件测试流程的前期,只是单独地做计划,没有对软件的开发流程编码前的所有操作进行相应的审核和评审。真正开始测试也是等到软件产品成型后。才运行测试用例。在软件开发周期中,缺陷发现的越迟。其修复的代价也就越高。因此,要想提高软件的开发效率,就必须将软件的测试贯穿到软件的整个开发流程中。


  2基于开发过程的测试流程


  根据软件开发流程的特点,软件的开发流程可分为:产品立项、需求调研、概要设计、详细设计、编码&单元测试、集成测试、系统测试、验收测试几个阶段。那么与之对应的测试的各个阶段如图2所示。


  从图2中,黄条右端表示该流程的截止时间,若两者有重叠部分。表示两者可以进行并行处理。测试流程在项目立项时就与之同步启动,并且覆盖软件开发的整个流程。这就要求在进行软件测试过程中要考虑审核和评审软件开发过程中各个阶段的文档和产品。


  在软件测试流程中加入考虑对软件开发流程各个阶段文档集产品的评审。那么就要对相应的评审或测试结果进行文档化,形成新的软件缺陷报告或记录。项目组长或高层人员通过对这些文档的阅读,可以清楚地知道软件在开发的各个阶段存在的问题,能将因前期设计问题出现的软件缺陷问题消除在萌芽状态,保证软件开发效率和软件质量。


  基于开发流程的软件测试流程具有以下的优点:


  (1)在软件开发的各个阶段都加入软件评审和图3加入文档和产品评审的测试流程测试工作,保证了软件开发整个过程的开发效率和软件质量。


  (2)摆脱了传统测试流程和开发流程相互独立,软件测试只针对成型软件产品负责的状况。


  (3)针对软件开发流程中的各个阶段的评审和测试结果进行详细的文档化。有利于项目组长或高层进行质量把关。


  (4)通过对软件开发过程的全程评审或测试,可以大大减少测试人员和开发人员的后期工作量,有利于对软件进行优化和升级。


  3结束语


  任何软件开发组织想完全消灭软件缺陷都是不现实的,也是不可能实现的。要想开发出高质量的软件产品,除了要有严格的开发流程和开发标准外。在软件的开发过程中全程引入软件质量保障也是一种行之有效的手段。通过对软件开发流程各个阶段的文档和产品的评审和测试,形成详细的文档化结果,是保障软件产品质量和减少后期工作量的有效管理方案。随着软件规模的不断扩大,软件缺陷数量的不断增加,这个管理方案的优势就会更为显著。