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