我们项目目前还是使用TestDirector 8.0 管理缺陷,缺陷的正常状态改变过程是这样的:New-Open-Update-Commit-Closed.测试人员发现Bug将其登记到TD库中的初始状态为New,然后由开发经理打开缺陷分配给开发人员(Open),开发人员Bug修改好之后将状态改为Update,之后由升级人员进行版本升级并将bug状态改为Commit,升级完成后,测试人员验证Bug,验证通过则将Bug状态改为Closed,此Bug的生命周期到此结束。
使用TestDirector 或Quality Center 缺陷管理工具的朋友应该都知道,使用手动的方式改变Bug状态时,缺陷管理工具会自动将该动作信息记录下来,TestDirector 记录在TD.HISTORY表中,那么对于升级人员来说,升级时需要将Bug状态由Update更改为Commit,此时Bug的数量很多时,手动更改就比较麻烦,因此可以使用SQL语句直接更新TD.BUG表,还要为每个Bug添加状态改变信息。
下面是使用游标为每个Update状态的Bug,添加状态改变的信息:
/*****将bug状态从Update更新为Commit之前,添加相应的更改历史到TD.HISTORY表****/
/************************begin********************************/
declare history_cursor cursor scroll
for
select bg_bug_id from td.bug where bg_status='Update' --and bg_detected_by=''
open history_cursor
declare @id varchar(20)
fetch first from history_cursor into @id
while @@fetch_status=0
begin
insert into td.history
(hs_table_name,hs_key,hs_column_name,hs_change_date,hs_change_time,hs_changer,hs_new_value)
values('BUG',@id,'BG_STATUS',CONVERT(VARCHAR(20),GETDATE(),23),CONVERT(VARCHAR(20),GETDATE
(),24),'升级人员','COMMITT');
fetch next from history_cursor into @id
end
close history_cursor
deallocate history_cursor
go
/* ********************************end*************************************/
下面是将bug的状态由Update改为Commit的sql语句:
/******升级后将Update状态的bug状态改为Commit状态*********************************/
/*begin *******************************************************************/
update td.bug
set bg_status='COMMITT'
where bg_status='Update' --and bg_detected_by=''
go
/* ******************************end**************************************/