UML软件工程组织

缺陷生命周期控制方法 -在软件测试管理系统i-Test 2.0中的运用
来源:中国计算机报
世间万物都有着自己的生命历程,软件缺陷也是一样。在测试过程中每发现一个软件缺陷,就标志着它的“诞生”。一个软件缺陷从它产生到终结的过程,我们称之为缺陷生命周期。软件测试管理的一个核心内容就是对软件缺陷生命周期进行管理。软件缺陷生命周期控制方法是在软件缺陷生命周期内设置几种状态,测试员、程序员、管理者从每一个缺陷产生开始,通过对这几种状态的控制和转换,管理缺陷的整个生命历程,直至它走入终结状态。
缺陷生命周期控制方法已在西方IT企业的软件测试管理中运用多年,而在我国一些软件企业还鲜为人知。中科软件股份有限公司开发的软件测试管理系统i-Test 2.0(以下简称i-Test)引进了这种方法,结合Internet网和数据库的使用,实现了缺陷生命周期控制和管理。
缺陷生命状态的定义:
i-Test对于每一个软件缺陷都规定了6个生命状态:Open、Working、Verify、Cancel、Close、Defer,它们的基本定义是:
Open态---缺陷初试状态,测试员报告一个缺陷,缺陷生命周期开始;
Working态---缺陷修改状态,程序员接收缺陷,正在修改中;
Verify态---缺陷验证状态,程序员修改完毕,等待测试员验证;
Close态---缺陷关闭状态,测试员确认缺陷被改正,将缺陷关闭;
Cancel态---缺陷删除状态,测试员确认不是缺陷,将缺陷置为删除状态 (不做物理删除);
Defer态---缺陷延期状态,管理者确认缺陷需要延期修改或追踪,将缺陷
置为延期状态;
上述Open态、Working态、Verify态,称为缺陷的活动态;
Close态、Cancel态、Defer态,称为缺陷的终结态:缺陷生命周期示意图:
典型的缺陷生命历程:
Open态à Working态à Verify态à Open态/Close态/Cancel态;
Open态à Close态/Cancel态;
Open态à Defer态;
缺陷生命状态的控制与转换:
在i-Test中,当测试员报告一个缺陷,缺陷生命周期开始,为Open态;
1. Open态à Working态à Verify态à Open态/Close态/Cancel态
程序员接受Open态的缺陷,修改中可将其置为Working态、修改完毕可置为Verify态; 
测试员验证Verify态的缺陷,确认修改结果正确,可将Open态置为 Close
态;确认不是缺陷,可将Open态置为Cancel态;确认修改结果不正确,可以将Verify态置为Open态,要求程序员重新修改;
2. Open态à Close态/Cancel态
当测试员发现自己误报或重报了缺陷,可直接将Open态置为Cancel态;
当测试员发现一个缺陷由于其它缺陷的修改而随之消失,可直接将Open态缺陷置为 Close态;
 3. Open态à Defer态
管理者确认缺陷需延期修改或追踪,可将Open态缺陷置为Defer态;
此外,终结态必要时可以重新打开:
1) 在适当的时候,管理者可将Defer态改为Open态,要求程序员修改;
2) 在复查缺陷处理结果时,发现Close态或Cancel态的处理有误,测试员可以将Close态或Cancel态重新置为Open态,要求程序员重新修改;
一般在测试初期,活动态的缺陷数会急剧上升,随着程序员、测试员的处理逐渐转为终结态。当所有软件缺陷的状态都转变为终结态,且在一段时间内没有被打开,也没有新的缺陷发生,即意味着测试可以结束或告一段落。在以下缺陷状态随时间变化的曲线图中表现为累计报告的缺陷曲线(BUG总数曲线)和累计终结的缺陷曲线(已终结BUG曲线)收敛在一起。

综上所述,缺陷生命周期控制方法是测试员、程序员、管理者一起参与、协同测试的过程。缺陷状态不仅表示出缺陷被修改、终结的进程,同时还标明了测试员、程序员、管理者的职责。这种方法分工明确,责任到人,它使每一个管理者和测试员、程序员都明确:尽快终结缺陷,是他们共同奋斗的目标,而拖延时间,滞留缺陷是他们共有的责任,团队精神将他们紧紧地结合在一起,使他们能够相互促进、相互制约、团结协作,因此缺陷一旦发生,便进入测试员、程序员、管理者的严密监控之中,直至终结,这样即可保证在较短的时间内高效率地终结所有的缺陷,缩短软件测试的进程,提高软件质量,减少开发和维护成本。
加快缺陷处理的有效措施
i-Test不仅实现了缺陷生命状态的控制与转换,使每个缺陷都能够被全程跟踪和管理,而且采取种种措施加快了缺陷处理的速度,进而提高了开发人员和管理人员对缺陷生命周期的控制能力。
(1)i-Test采用了 B / S 结构,可以安装在Web 服务器上,项目有关人员可以在不同地点通过因特网(Internet)同时登录和使用,加强沟通和协作,加速信息传递、从而加快缺陷处理过程。
(2)i-Test建立了缺陷数据库、测试用例数据库、项目数据库、用户数据库,将测试过程中的各种活动进行协调一致的管理,促使整个测试过程有条不紊地进行,从而加快测试过程。
(3)i-Test提供相应的自动化功能,可高效编写、查询和引用测试用例,可快速填写、修改和查询软件缺陷报告,并将缺陷报告与发现这个缺陷的测试用例链接,加速缺陷的修改、验证、追踪和回塑。
(4)i-Test提供了高级经理、经理、测试员、程序员四种登录身份,以每一种身份登录,都可以利用状态查询、条件查询、全文检索快速得到所有缺陷的6种生命状态和缺陷柱状图、曲线图,明确当前缺陷的处理进程和个人的职责。
(5)i-Test为每一个缺陷设置了一个ID号,可详细记录BUG的报告信息、修改信息、终结信息、缺陷状态变更信息、讨论信息以及图片,使每种登录身份的人员可以按照访问权限共享和使用这些信息。
(6)i-Test设有软件缺陷的严重级别和优先级别,可以分清软件缺陷的轻重缓急,对于重要的软件缺陷,优先进行处理。
(7)i-Test设有软件缺陷类型和错误类型,测试员报告软件缺陷类型能帮助程序员分析错误所在,程序员修改后分析错误原因,记录错误类型有利于问题的回塑和经验的积累。
(8)i-Test可为每一个缺陷分配一对测试员和程序员,负责管理这个缺陷的生命过程,直至解决这个缺陷;而其他测试员、程序员、经理、高级经理可以参加任一缺陷的讨论,提出处理意见和方法。这种专人负责、全员参与的方式,可最大限度地发挥每一个人的智慧,使缺陷处理进程不至于被难题耽搁,提高缺陷处理的速度。
(9)i-Test提供了缺陷转交和重新分配的功能,程序员可以将自己不能处理的问题转交给其他程序员或经理,经理可以把转交来的缺陷重新分配给适当的程序员。还有,当项目新增人员或减员时、或测试员和程序员调换岗位时,i-Test都能迅速完成工作的转交,缺陷处理过程不会受到任何影响。
(10)i-Test可以自动生成和打印测试进度统计表,包括测试用例运行的进度和软件缺陷终结的进度。高级经理可以同时监控多个项目的测试进度,经理、测试员、程序员可以看到本项目的测试进度和测试员、程序员的个人进度。
(11)i-Test可以自动生成和打印测试用例表、缺陷一览表、遗留问题一览表、测试结果汇总表等关于测试的各种分析统计图表,使项目相关人员解除手工统计数据之苦,将更多的精力集中于智力性工作。高级经理和项目相关人员随时可以根据这些图表进行分析、判断,及时解决缺陷处理中的问题,争取尽快达到测试目标。
(12)i-Test为程序员设置了缺陷信箱,程序员只要留下E-mail地址,在测试员报告缺陷的同时i-Test就能自动往这个地址发送缺陷报告,这样即使程序员不在线(未登录i-Test)也能及时收到缺陷报告,不至于耽搁缺陷的处理。
(13)i-Test为经理、测试员、程序员提供了事件查看列表,自项目开始至终,所有缺陷状态的转换信息、项目组内人员的调配信息可尽收眼底。
(14)经理还可以上传测试需遵循的最新开发文档,如开发计划、测试计划、需求规格说明书、概要设计说明书、详细设计说明书等,并可上传项目信息公告,对测试过程实施具体的指导和监控。
 
i-Test可为企业带来的好处:
(1)i-Test引进软件缺陷生命周期控制方法,结合Internet网和数据库的使用,可加强软件测试过程中人员的沟通和协作,提高管理层监控、管理的透明度,加快软件缺陷的处理进程;它的应用必将提高国内IT企业软件测试的有效性和效率,减少开发和维护成本;它提供的大量分析统计数据将成为企业评价软件质量、发布软件/产品的重要依据;它可以帮助企业建立软件测试管理体系,积累经验、持续改进,在激烈的市场竞争中立于不败之地。
(2)i-Test的运行环境在国内比较普及,安装容易:
服务器,Microsoft NT 4.0 及IIS 4.0或以上版本,SQL Server 7.0 或以上版本
客户端,Microsoft IE 5.0 或以上版本, Microsoft Office 97 或以上版本
   (3)i-Test比国外同类产品价格大约低10倍左右,而实现的功能可以满足一般从事软件开发的客户,和委托其他方开发软件的客户。


版权所有:UML软件工程组织