史海峰
(南京信息職業(yè)技術(shù)學(xué)院,江蘇 南京 210046)
軟件缺陷管理方案分析
史海峰
(南京信息職業(yè)技術(shù)學(xué)院,江蘇 南京 210046)
基于作者軟件開(kāi)發(fā)和軟件測(cè)試的工作經(jīng)歷,給出了一套軟件缺陷管理方案,該方案對(duì)軟件缺陷的管理內(nèi)容和生命周期進(jìn)行重點(diǎn)分析,定義了軟件缺陷在其生命周期中的各個(gè)狀態(tài),以及狀態(tài)之間的轉(zhuǎn)換過(guò)程,然后在軟件缺陷權(quán)利管理中給出了權(quán)限和角色分配方法,最后對(duì)方案提出了一些不足和改進(jìn)。
軟件缺陷管理;測(cè)試用例;測(cè)試結(jié)果;生命周期;權(quán)限管理
軟件缺陷是計(jì)算機(jī)軟件或程序中存在的某種破壞正常運(yùn)行能力的問(wèn)題、錯(cuò)誤,或者隱藏的功能缺陷。軟件缺陷管理是在軟件生命周期中獲取、管理、溝通任何變更請(qǐng)求的過(guò)程,可以確保問(wèn)題或缺陷被跟蹤管理而不丟失。目前缺陷管理類(lèi)的軟件工具比較多,主要功能比較一致,但在一些細(xì)節(jié),如缺陷管理的流程,與其它軟件工程管理軟件的集成,甚至涉及到軟件測(cè)試流程和軟件質(zhì)量管理的理念上,都存在差異[1]。本文結(jié)合作者的軟件開(kāi)發(fā)和測(cè)試工作經(jīng)歷,給出一套軟件缺陷管理方案。
軟件測(cè)試從需求分析階段就與軟件開(kāi)發(fā)同步進(jìn)行,軟件缺陷在軟件測(cè)試的各個(gè)階段都會(huì)產(chǎn)生。圖1是軟件缺陷的產(chǎn)生示意圖。
圖1 軟件缺陷產(chǎn)生示意圖
測(cè)試人員和開(kāi)發(fā)人員首先根據(jù)測(cè)試需求創(chuàng)建各個(gè)測(cè)試用例,測(cè)試需求與測(cè)試用例是一對(duì)多的關(guān)系;各個(gè)測(cè)試用例在運(yùn)行后會(huì)產(chǎn)生相應(yīng)的測(cè)試結(jié)果,在一次測(cè)試過(guò)程中,一個(gè)測(cè)試用例只會(huì)有一個(gè)測(cè)試結(jié)果,但從整個(gè)軟件測(cè)試流程中,一個(gè)測(cè)試用例會(huì)產(chǎn)生多個(gè)測(cè)試結(jié)果,比如在針對(duì)不同版本進(jìn)行的回歸測(cè)試,從測(cè)試用例到測(cè)試結(jié)果一般測(cè)試人員和開(kāi)發(fā)人員都會(huì)參與;最后,如果測(cè)試結(jié)果完全滿(mǎn)足對(duì)應(yīng)的測(cè)試需求的要求,即測(cè)試成功,可以認(rèn)為該測(cè)試用例測(cè)試通過(guò),若不滿(mǎn)足,即測(cè)試失敗,根據(jù)測(cè)試結(jié)果創(chuàng)建相應(yīng)的缺陷,測(cè)試結(jié)果與軟件缺陷是一對(duì)多的關(guān)系[2]。
3.1 管理內(nèi)容
從管理功能的角度,軟件缺陷管理會(huì)記錄缺陷時(shí)間、嚴(yán)重度、異常的程序表現(xiàn)以及如何重現(xiàn)軟件缺陷的細(xì)節(jié);另外還有報(bào)告程序缺陷的人員身份和可能修正此缺陷的程序員信息。為了追蹤與軟件缺陷相關(guān)的測(cè)試用例和測(cè)試結(jié)果,應(yīng)該對(duì)測(cè)試用例和測(cè)試結(jié)果進(jìn)行分類(lèi)管理,同時(shí)關(guān)聯(lián)好測(cè)試用例、測(cè)試結(jié)果和軟件缺陷三者的關(guān)系[3,4]。
從管理權(quán)限的角度,軟件缺陷管理過(guò)程中,除了需要分配相關(guān)的人員對(duì)測(cè)試用例、測(cè)試結(jié)果和軟件缺陷進(jìn)行維護(hù)外,還需要不斷跟蹤軟件缺陷及與之相關(guān)的測(cè)試用例、測(cè)試結(jié)果在其生命周期中被分配的狀態(tài)指數(shù)。在跟蹤過(guò)程中應(yīng)當(dāng)允許管理員設(shè)定基于狀態(tài)的權(quán)限,可以結(jié)合軟件缺陷的管理流程,通過(guò)權(quán)限管理來(lái)維護(hù)在測(cè)試用例、測(cè)試結(jié)果和軟件缺陷生命周期中的狀態(tài),包括缺陷的確認(rèn)、缺陷任務(wù)的分配等等。同時(shí)對(duì)各類(lèi)狀態(tài)進(jìn)行定義和維護(hù)[3,4]。
下面首先分析軟件缺陷的具體內(nèi)容及生命周期中的狀態(tài)關(guān)系,然后定義相關(guān)的權(quán)限和角色,并賦予角色對(duì)應(yīng)的權(quán)限。
3.2 軟件缺陷管理
一條測(cè)試用例的多次執(zhí)行會(huì)產(chǎn)生多個(gè)測(cè)試結(jié)果,當(dāng)測(cè)試結(jié)果與預(yù)期結(jié)果不一致時(shí),可以通過(guò)該測(cè)試結(jié)果產(chǎn)生一個(gè)或多個(gè)軟件缺陷,當(dāng)發(fā)現(xiàn)軟件缺陷后,需要設(shè)法找到引起這個(gè)缺陷的原因,對(duì)軟件缺陷進(jìn)行分類(lèi),分析對(duì)產(chǎn)品質(zhì)量的影響,然后確定軟件缺陷的嚴(yán)重性和處理這個(gè)缺陷的優(yōu)先級(jí)。一個(gè)完整的軟件缺陷包括如下表所示的字段信息:
表1 軟件缺陷字段說(shuō)明
軟件缺陷標(biāo)題表示軟件缺陷當(dāng)前所處狀態(tài)與測(cè)試結(jié)果一致該軟件缺陷造成的嚴(yán)重性修復(fù)軟件缺陷的緊急程度(微小、一般、嚴(yán)重和致命)標(biāo)題狀態(tài)保存路徑嚴(yán)重程度缺陷級(jí)別其他字段:分類(lèi)、創(chuàng)建者、修復(fù)者、抄送人員、測(cè)試步驟、錯(cuò)誤描述、建議等
軟件缺陷在其生命周期中的狀態(tài)關(guān)系圖如圖2所示:
圖2 軟件缺陷生命周期狀態(tài)圖
如圖所示,軟件缺陷共有四個(gè)狀態(tài),缺陷創(chuàng)建時(shí)為Active狀態(tài),表明該缺陷激活,需經(jīng)過(guò)管理員的確認(rèn),管理員確認(rèn)通過(guò)后,此時(shí)將該缺陷設(shè)置為Reviewed狀態(tài),表明缺陷得到確認(rèn),再將該缺陷分配給軟件修復(fù)者(通常為開(kāi)發(fā)人員)進(jìn)行處理;軟件修復(fù)者得到任務(wù)后對(duì)缺陷進(jìn)行修復(fù),修復(fù)完成后,將該缺陷設(shè)置為Resolved,表明該缺陷已得到解決;當(dāng)修復(fù)者處理好缺陷后,創(chuàng)建者需要判斷該缺陷是否得到了處理,如果并未得到處理,則將缺陷重新設(shè)置為Active狀態(tài),表明該缺陷沒(méi)有能正常解決,然后交給管理員再進(jìn)行確認(rèn);若創(chuàng)建者判斷修復(fù)者已經(jīng)完成了對(duì)缺陷的處理,則由管理員進(jìn)行確認(rèn),確認(rèn)通過(guò)后缺陷狀態(tài)仍然為Resolved;當(dāng)管理員認(rèn)為該缺陷已經(jīng)解決,同時(shí)在后續(xù)開(kāi)發(fā)過(guò)程中也無(wú)須跟蹤該缺陷,則可以將缺陷狀態(tài)設(shè)置為Closed,表明該缺陷為關(guān)閉狀態(tài),后續(xù)測(cè)試和開(kāi)發(fā)無(wú)須考慮該缺陷;對(duì)新創(chuàng)建和重新激活的缺陷,管理員在進(jìn)行確認(rèn)過(guò)程中,如果認(rèn)為創(chuàng)建的缺陷無(wú)須修復(fù),直接可以設(shè)置為關(guān)閉狀態(tài),或者對(duì)于創(chuàng)建者重新激活的缺陷,管理員若認(rèn)定該缺陷已經(jīng)解決,管理員可以將缺陷再次設(shè)置為Resolved狀態(tài);同樣對(duì)于已經(jīng)為Closed狀態(tài)的缺陷,在后續(xù)測(cè)試過(guò)程中重現(xiàn),可以重新激活,設(shè)置為Active狀態(tài)[3,5]。
設(shè)置為Resolved狀態(tài)的軟件缺陷,并不表明該軟件缺陷得到了修復(fù),僅僅表示該軟件缺陷得到了處理,有的情況下有些軟件缺陷是不需要修復(fù)的,比如無(wú)法復(fù)現(xiàn)的問(wèn)題,或者暫時(shí)不能解決的軟件缺陷,也有的情況下軟件缺陷發(fā)現(xiàn)得比較晚,當(dāng)前的處理結(jié)果是在下一個(gè)版本進(jìn)行修復(fù);這里將Resolved狀態(tài)的缺陷分為兩大類(lèi):無(wú)效缺陷和有效缺陷,該兩大類(lèi)將已解決的缺陷再分成如下的解決分類(lèi)[5],如表2所示:
表2 Resolved狀態(tài)下的缺陷解決分類(lèi)
3.3 軟件缺陷權(quán)限管理
由前面分析可以看到,在軟件缺陷管理過(guò)程中,所涉及到的角色較多,因此必須要設(shè)置相應(yīng)的角色和對(duì)應(yīng)的權(quán)限。首先將權(quán)限分為軟件產(chǎn)品管理、用戶(hù)管理、測(cè)試用例管理、測(cè)試結(jié)果管理和軟件缺陷管理五個(gè)方面,將角色分為系統(tǒng)管理員、項(xiàng)目管理員、測(cè)試管理員、測(cè)試審核員、測(cè)試人員和開(kāi)發(fā)人員六個(gè)方面,各角色的具體權(quán)限分配如表3和表4所示:
表3 缺陷管理權(quán)限分配表一
表4 缺陷管理權(quán)限分配表二
本文給出了一套軟件缺陷管理方案,該方案從生命周期和管理內(nèi)容兩個(gè)方面詳細(xì)分析了軟件缺陷的管理方法,并給出了軟件缺陷權(quán)利管理中權(quán)限和角色分配方法。該方案更多的是結(jié)合本人在軟件開(kāi)發(fā)和測(cè)試工作中的經(jīng)驗(yàn)總結(jié)而成,在軟件缺陷的狀態(tài)關(guān)系中,強(qiáng)調(diào)了審核和確認(rèn)的機(jī)制,管理方案略顯繁瑣,在軟件開(kāi)發(fā)和測(cè)試的實(shí)際運(yùn)行中比該方案相對(duì)簡(jiǎn)單;另外方案在團(tuán)隊(duì)工作和項(xiàng)目管理方面,尤其是質(zhì)量控制和質(zhì)量保證方面,考慮得不夠全面,在今后的工作過(guò)程應(yīng)重點(diǎn)融入這部分內(nèi)容。
[1]百度百科.缺陷跟蹤管理系統(tǒng)[EB/OL].http://baike.baidu.com/view/107502.htm,2013.
[2]張創(chuàng)基.軟件缺陷管理系統(tǒng)的分析與設(shè)計(jì)[J].教育教學(xué)論壇,2012.8.
[3]林璐.對(duì)軟件測(cè)試中的缺陷管理的研究和實(shí)踐[D].上海:復(fù)旦大學(xué),2011.
[4]閆振興,鄭駿.軟件缺陷度量與軟件過(guò)程管理方法研究[J].計(jì)算機(jī)與數(shù)字工程,2010.8.
[5]王昕.基于工作流的軟件缺陷管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2011.
Analysis on the Software Defect Management Scheme
Shi Haifeng
(Nanjing College of Information Technology,Nanjing 210046,Jiangsu)
Base on author's working experience of software development and testing,this paper gives a software defect management scheme.It focuses on the analysis of the management content and the life cycle of software defect,and defines each state in the life cycle of software defect and the transition process of the states;then gives the authority and role assignment method in the software defect authority management,and finally presents the deficiency and improvement.
software defect management;test case;test result;life cycle;authority management
史海峰,男,江蘇海安縣人,碩士研究生,講師,研究方向:信息安全、軟件測(cè)試技術(shù)、多媒體技術(shù)。