关键字:软件缺陷、软件测试
世间万物都有着自己的生命历程,软件缺陷也是一样。在软件测试过程中每发现一个软件缺陷,就标志着它的“诞生”。一个软件缺陷从它产生到终结的过程,我们称之为缺陷生命周期。软件测试管理的一个核心内容就是对软件缺陷生命周期进行管理。软件缺陷生命周期控制方法是在软件缺陷生命周期内设置几种状态,测试员、程序员、管理者从每一个缺陷产生开始,通过对这几种状态的控制和转换,管理缺陷的整个生命历程,直至它走入终结状态。
缺陷生命周期控制方法已在西方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曲线)收敛在一起。