姜 文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安710071)
BugFree在軟件維護(hù)管理中的應(yīng)用
姜 文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安710071)
軟件產(chǎn)品交付客戶使用以后,需要軟件維護(hù)組持續(xù)為該產(chǎn)品提供有力的技術(shù)支持。軟件維護(hù)組的內(nèi)部技術(shù)管理十分重要,有助于提高維護(hù)工作效率。維護(hù)組可以選擇BugFree工具管理日常維護(hù)工作,結(jié)合維護(hù)工作實(shí)踐,介紹了缺陷管理工具BugFree,敘述了BugFree系統(tǒng)中問(wèn)題單的處理流程和問(wèn)題單的各種狀態(tài)。最后介紹了兩個(gè)典型維護(hù)工作案例,包括非軟件代碼缺陷導(dǎo)致的故障問(wèn)題和軟件源代碼缺陷導(dǎo)致的故障問(wèn)題。長(zhǎng)期的工作實(shí)踐表明使用BugFree工具可以有效地管理維護(hù)組的維護(hù)工作,提高維護(hù)工作質(zhì)量。
軟件維護(hù);BugFree;問(wèn)題單;運(yùn)維工程師
隨著計(jì)算機(jī)技術(shù)在各行各業(yè)普及,應(yīng)用軟件的種類大量增加,各類應(yīng)用軟件維護(hù)[1-7]工作量也日漸增大,越來(lái)越多的軟件開(kāi)發(fā)工程師逐漸轉(zhuǎn)移到應(yīng)用軟件維護(hù)運(yùn)維工作。軟件維護(hù)作為應(yīng)用軟件生命周期的最后一個(gè)環(huán)節(jié),是軟件生命周期中持續(xù)時(shí)間最長(zhǎng)的階段,也是軟件生命周期中的關(guān)鍵階段。在軟件產(chǎn)品交付給客戶方使用后,需要不斷解決客戶在使用過(guò)程中遇到的各種問(wèn)題,持續(xù)適應(yīng)用戶對(duì)軟件產(chǎn)品改進(jìn)的要求,高質(zhì)量完成軟件維護(hù)的工作,從而延續(xù)軟件的使用壽命。
在軟件維護(hù)過(guò)程中,軟件各類故障問(wèn)題的管理,將直接影響著軟件維護(hù)工作的質(zhì)量與效率。本文介紹了缺陷管理工具BugFree[8-15],敘述了BugFree工具在軟件維護(hù)工作中的應(yīng)用。最后介紹了一些典型維護(hù)工作案例。
BugFree工具是借鑒微軟的軟件研發(fā)流程和軟件缺陷管理理念,將PHP與MySQL結(jié)合起來(lái)開(kāi)發(fā)的軟件缺陷管理系統(tǒng)。是眾多軟件缺陷管理系統(tǒng)中相對(duì)簡(jiǎn)單實(shí)用并且開(kāi)源免費(fèi)的一款缺陷管理系統(tǒng)。BugFree適用于中小型軟件企業(yè)的各部門、各種技術(shù)開(kāi)發(fā)小組或者團(tuán)隊(duì)。
1.1 BugFree軟件的部署
在使用 BugFree之前,需要完成對(duì)該軟件的部署。BugFree 3.0.2具體部署過(guò)程如下:
1)安裝XAMPP-win32-1.7.7,XAMPP是集成Apache、PHP、MYSQL環(huán)境,安裝完XAMPP之后才能安裝BugFree軟件。
2)安裝 BugFree 3.0.2,將 BugFree的安裝包解壓到XAMPP的 htdocs目錄下,然后在瀏覽器中輸入 http:// localhost/bugfree/install對(duì)BugFree進(jìn)行安裝。
3)分別啟動(dòng)Apache與MYSQL服務(wù)。
4)完成配置BugFree工具,并使用系統(tǒng)管理員賬號(hào)登入BugFree系統(tǒng)。
1.2 BugFree的賬號(hào)管理
完成BugFree軟件部署后,需要維護(hù)經(jīng)理指定一名運(yùn)維工程師作為系統(tǒng)管理員。系統(tǒng)管理員使用BugFree軟件默認(rèn)的管理員賬號(hào)admin,建立以軟件產(chǎn)品名為名稱的產(chǎn)品項(xiàng)目Project,給維護(hù)組的所有成員添加訪問(wèn)權(quán)限。訪問(wèn)權(quán)限添加成功之后,維護(hù)組所有成員能夠使用自己的賬號(hào)登陸該軟件產(chǎn)品的BugFree系統(tǒng)頁(yè)面。
使用BugFree系統(tǒng)可以管理維護(hù)組的日常工作。軟件產(chǎn)品在維護(hù)過(guò)程中出現(xiàn)的各種故障問(wèn)題,可以在該系統(tǒng)中進(jìn)行問(wèn)題提單,對(duì)問(wèn)題單進(jìn)行跟蹤處理。
2.1 軟件維護(hù)項(xiàng)目組中的角色
維護(hù)組有兩種角色維護(hù)經(jīng)理和維護(hù)組成員運(yùn)維工程師。
對(duì)于維護(hù)經(jīng)理:
1)瀏覽BugFree系統(tǒng)中軟件故障問(wèn)題單,指派給運(yùn)維工程師處理。
2)在BugFree系統(tǒng)中查詢軟件故障問(wèn)題單的處理情況,掌握運(yùn)維工程師的工作進(jìn)度。
3)根據(jù)已經(jīng)記錄在BugFree系統(tǒng)中的軟件產(chǎn)品代碼缺陷來(lái)制定補(bǔ)丁計(jì)劃。
4)根據(jù)已經(jīng)記錄到BugFree系統(tǒng)中出現(xiàn)問(wèn)題較多的產(chǎn)品模塊安排對(duì)該模塊的源代碼進(jìn)行代碼排查,進(jìn)行自主改進(jìn)。
5)根據(jù)已經(jīng)記錄到BugFree系統(tǒng)中出現(xiàn)的非軟件代碼問(wèn)題,安排資料工程師對(duì)軟件產(chǎn)品文檔添加新的 FAQ(Frequently Asked Questions),定期安排售后工程師與客戶方人員進(jìn)行產(chǎn)品培訓(xùn)。
6)根據(jù)維護(hù)組每個(gè)成員解決問(wèn)題的數(shù)量以及效率作為部分績(jī)效評(píng)定的根據(jù)。
對(duì)于維護(hù)組成員運(yùn)維工程師:
1)在BugFree系統(tǒng)中提交軟件產(chǎn)品故障問(wèn)題單。
2)在BugFree系統(tǒng)中查詢維護(hù)經(jīng)理指派給自己的故障問(wèn)題單,開(kāi)始維護(hù)工作。
3)工作任務(wù)完成后在BugFree系統(tǒng)中關(guān)閉問(wèn)題單。
4)查詢?cè)贐ugFree系統(tǒng)的案例,提高解決問(wèn)題的能力和效率。這一點(diǎn)對(duì)于新員工尤為重要。
2.2 問(wèn)題單的狀態(tài)
問(wèn)題單的狀態(tài)分類見(jiàn)表1:
表1 問(wèn)題單狀態(tài)分類表
2.3 問(wèn)題單的處理流程
在BugFree系統(tǒng)中問(wèn)題單的處理流程圖如圖1所示:
圖1 BugFree系統(tǒng)中問(wèn)題單的處理流程
2.3.1 在BugFree系統(tǒng)中提單
發(fā)現(xiàn)軟件產(chǎn)品故障問(wèn)題后,維護(hù)經(jīng)理將該問(wèn)題分配給運(yùn)維工程師,在維護(hù)組的實(shí)驗(yàn)室環(huán)境中模擬問(wèn)題環(huán)境重現(xiàn)故障,當(dāng)經(jīng)過(guò)反復(fù)重現(xiàn)后,可以確認(rèn)該問(wèn)題是軟件產(chǎn)品需要解決的故障問(wèn)題。運(yùn)維工程師將確認(rèn)的結(jié)果匯報(bào)給維護(hù)經(jīng)理,并使用自己的賬號(hào)登陸B(tài)ugFree系統(tǒng)新建問(wèn)題單,根據(jù)維護(hù)組的提單要求,依次填寫(xiě)B(tài)ug標(biāo)題、Bug類型、嚴(yán)重程度等,對(duì)于客戶局點(diǎn)反饋回來(lái)的缺陷還需要寫(xiě)明發(fā)現(xiàn)問(wèn)題的局點(diǎn)。仔細(xì)描述 Bug的復(fù)現(xiàn)步驟,并將相關(guān)日志文件等附件上傳BugFree系統(tǒng)。問(wèn)題單填寫(xiě)完畢之后,再根據(jù)提單要求檢查無(wú)誤之后,保存提交的問(wèn)題單。此時(shí)問(wèn)題單處于New狀態(tài)。
2.3.2 問(wèn)題單走到Open狀態(tài)
維護(hù)經(jīng)理將問(wèn)題單指派給運(yùn)維工程師處理,通常指派給提單的運(yùn)維工程師繼續(xù)處理該問(wèn)題,也可以因?yàn)楣ぷ餍枰瑢⒃搯?wèn)題單轉(zhuǎn)給維護(hù)組中其他的運(yùn)維工程師處理。此時(shí)該問(wèn)題單走到Open狀態(tài)。運(yùn)維工程師將故障問(wèn)題在項(xiàng)目組的實(shí)驗(yàn)室環(huán)境中復(fù)現(xiàn)出來(lái)之后,需要根據(jù)出問(wèn)題的模塊對(duì)缺陷進(jìn)行定位,進(jìn)一步分析確認(rèn)該故障問(wèn)題發(fā)生的原因。在這一階段需要在BugFree系統(tǒng)中對(duì)該問(wèn)題單添加分析結(jié)果、日志以及一些執(zhí)行定位手段的文檔,表明該問(wèn)題單正處于運(yùn)維工程師分析問(wèn)題根本原因的階段。
2.3.3 問(wèn)題單走到Fixed或Deferred狀態(tài)
運(yùn)維工程師對(duì)故障問(wèn)題進(jìn)行仔細(xì)的分析與定位之后,最終完全可以確認(rèn)該缺陷是否是軟件產(chǎn)品源代碼陷導(dǎo)致的,如果不是則將問(wèn)題單走到Fixed狀態(tài),如果是,則將問(wèn)題單走到Deferred狀態(tài)。
1)問(wèn)題單走到Fixed狀態(tài)
運(yùn)維工程師經(jīng)過(guò)分析和定位后,發(fā)現(xiàn)該故障問(wèn)題不是由軟件源代碼缺陷導(dǎo)致的問(wèn)題,而是由于客戶方人員在使用過(guò)程中對(duì)軟件產(chǎn)品管理不善、誤操作導(dǎo)致的。此時(shí),運(yùn)維工程師需要給出相應(yīng)的解決方法,經(jīng)驗(yàn)證之后確認(rèn)解決方法可行。將解決方案的每一個(gè)步驟以操作文檔形式詳細(xì)記錄下來(lái),并將該文檔以附件形式上傳至BugFree系統(tǒng),并將該問(wèn)題單走到Fixed狀態(tài)。
2)問(wèn)題單走到Deferred狀態(tài)
運(yùn)維工程師經(jīng)過(guò)分析和定位后,發(fā)現(xiàn)該故障問(wèn)題是軟件產(chǎn)品源代碼缺陷導(dǎo)致的問(wèn)題。反復(fù)確認(rèn)之后,向維護(hù)經(jīng)理反饋這一情況,將該故障問(wèn)題加入補(bǔ)丁計(jì)劃。運(yùn)維工程師根據(jù)維護(hù)經(jīng)理制定的補(bǔ)丁計(jì)劃,對(duì)該軟件代碼缺陷進(jìn)行代碼編寫(xiě)和修改后,進(jìn)行功能調(diào)試和測(cè)試。運(yùn)維工程師在BugFree系統(tǒng)中將修改前后的源代碼與包含局點(diǎn)信息、軟件版本、故障原因、定位過(guò)程以及解決方案撰寫(xiě)成規(guī)定格式的文檔,以附件形式上傳到 BugFree系統(tǒng),并在“解決方案”這一項(xiàng)中填寫(xiě)合入的補(bǔ)丁版本的版本號(hào)。該問(wèn)題單走到Deferred狀態(tài)。
2.3.4 問(wèn)題單走到Close狀態(tài)
對(duì)于非軟件代碼導(dǎo)致的故障問(wèn)題,在運(yùn)維工程師將解決方案文檔發(fā)給該問(wèn)題的提出者,問(wèn)題提出者在問(wèn)題解決之后,向運(yùn)維工程師反饋故障問(wèn)題已經(jīng)解決。此時(shí),運(yùn)維工程師將問(wèn)題單走到Close狀態(tài),關(guān)閉問(wèn)題單流程。
對(duì)于軟件源代碼導(dǎo)致的故障問(wèn)題,運(yùn)維工程師根據(jù)補(bǔ)丁計(jì)劃中的開(kāi)發(fā)時(shí)間完成在最新版本的軟件產(chǎn)品源代碼的編碼、功能調(diào)試與功能驗(yàn)證測(cè)試之后;將源代碼文件合入代碼配置庫(kù);經(jīng)過(guò)補(bǔ)丁版本包編譯之后,運(yùn)維工程師取補(bǔ)丁版本包對(duì)軟件版本修改的缺陷進(jìn)行功能驗(yàn)證;驗(yàn)證確認(rèn)無(wú)誤之后,補(bǔ)丁版本包轉(zhuǎn)測(cè)試,由測(cè)試工程師完成對(duì)此次補(bǔ)丁版本的合入的所有問(wèn)題以及產(chǎn)品補(bǔ)丁的基本功能進(jìn)行測(cè)試;經(jīng)過(guò)多輪測(cè)試之后,確認(rèn)補(bǔ)丁版本可以發(fā)布,則由維護(hù)經(jīng)理提交補(bǔ)丁版本發(fā)布流程,并知會(huì)出現(xiàn)軟件產(chǎn)品缺陷的客戶方局點(diǎn)安排升級(jí)新的補(bǔ)丁版本。維護(hù)組協(xié)助售后工程師在客戶局點(diǎn)安裝使用新的補(bǔ)丁版本。此時(shí),運(yùn)維工程師將問(wèn)題單走到Close狀態(tài),關(guān)閉問(wèn)題單流程。
以下是軟件維護(hù)組工作中的兩個(gè)實(shí)際維護(hù)案例。
3.1 非軟件代碼問(wèn)題導(dǎo)致的缺陷
故障問(wèn)題描述:客戶局點(diǎn)M由于軟件系統(tǒng)管理員工作交接不徹底,導(dǎo)致軟件系統(tǒng)管理員賬號(hào)密碼丟失,新管理員多次輸入錯(cuò)誤管理員密碼,導(dǎo)致管理員賬號(hào)被鎖定,無(wú)法登陸系統(tǒng),導(dǎo)致系統(tǒng)無(wú)法正常使用。嚴(yán)重程度:高。
故障問(wèn)題的處理過(guò)程如下:
1)運(yùn)維工程師在項(xiàng)目組的實(shí)驗(yàn)環(huán)境上重現(xiàn)出這一現(xiàn)象,并在BugFree系統(tǒng)中提單,問(wèn)題單處于New狀態(tài)。
2)維護(hù)組查詢到該問(wèn)題單,運(yùn)維經(jīng)理指派運(yùn)維工程師處理,問(wèn)題單走到Open狀態(tài)。
3)運(yùn)維工程師經(jīng)過(guò)分析后,刪除原有的密碼相關(guān)的配置文件,將軟件系統(tǒng)的管理員賬號(hào)恢復(fù)默認(rèn)密碼。在項(xiàng)目組的實(shí)驗(yàn)室環(huán)境反復(fù)驗(yàn)證之后,確認(rèn)此方式可行,運(yùn)維工程師將解決方案的每一個(gè)步驟寫(xiě)成操作文檔,以郵件形式發(fā)給M局點(diǎn),并將操作文檔以附件形式上傳到維護(hù)組的BugFree系統(tǒng)。問(wèn)題單走到Fixed狀態(tài)。
4)售后工程師協(xié)助客戶局點(diǎn)處理該問(wèn)題,確認(rèn)問(wèn)題已經(jīng)解決。運(yùn)維工程師關(guān)閉該問(wèn)題單。
5)編寫(xiě)相關(guān)文檔,將該故障問(wèn)題加入案例庫(kù)。
之后,又有一個(gè)客戶局點(diǎn)也發(fā)生了類似的問(wèn)題,另一運(yùn)維工程師從案例庫(kù)中找到該案例,高效率解決了該問(wèn)題。運(yùn)維經(jīng)理經(jīng)過(guò)了解發(fā)現(xiàn)這類問(wèn)題客戶局點(diǎn)和售后工程師不熟悉,在定期舉行的產(chǎn)品培訓(xùn)中重點(diǎn)培訓(xùn)了這個(gè)案例,并將這個(gè)案例加入產(chǎn)品文檔的FAQ。
3.2 軟件源代碼導(dǎo)致的缺陷
故障問(wèn)題描述:軟件產(chǎn)品V3版本,測(cè)試工程師進(jìn)行軟件測(cè)試過(guò)程中發(fā)現(xiàn):某一類報(bào)表下載之后提示保存失敗,不能保存。嚴(yán)重程度:中。
故障問(wèn)題的處理過(guò)程如下:
1)運(yùn)維工程師在項(xiàng)目組的實(shí)驗(yàn)環(huán)境上重現(xiàn)出這一現(xiàn)象,并在BugFree系統(tǒng)中提單。問(wèn)題單處于New狀態(tài)。
2)運(yùn)維項(xiàng)目組查詢到該問(wèn)題單,運(yùn)維經(jīng)理分配給某運(yùn)維工程師處理,問(wèn)題單走到Open狀態(tài)。。
3)運(yùn)維工程師對(duì)目前版本源代碼的進(jìn)行調(diào)試,發(fā)現(xiàn)當(dāng)查詢結(jié)果中的一項(xiàng)“釋放原因的包含小區(qū)號(hào)”在查詢結(jié)果頁(yè)面上顯示亂碼,導(dǎo)致報(bào)表不能正常從軟件系統(tǒng)下載,顯示亂碼的原因是“釋放原因的包含小區(qū)號(hào)”在其對(duì)應(yīng)的16進(jìn)制數(shù)的前 14位由“FF”與“00”組成,后14位由“FF”組成,在解碼過(guò)程中不能解碼成ASCII表中對(duì)應(yīng)的任何數(shù)字和字母,因此顯示亂碼。出現(xiàn)“某一類報(bào)表下載之后提示保存失敗,不能保存”這一問(wèn)題的原因是由于軟件產(chǎn)品自身的源代碼缺陷導(dǎo)致的,需要修改源代碼。
4)維護(hù)經(jīng)理制定補(bǔ)丁包計(jì)劃,將該問(wèn)題加入補(bǔ)丁包計(jì)劃。問(wèn)題單走到Deferred狀態(tài)。
5)補(bǔ)丁包制作完成后,測(cè)試經(jīng)理組織測(cè)試工程師進(jìn)行統(tǒng)一測(cè)試。
6)補(bǔ)丁版本發(fā)布后,售后工程師協(xié)助客戶局點(diǎn)處理該問(wèn)題,在客戶局點(diǎn)安裝使用軟件產(chǎn)品的補(bǔ)丁版本。確認(rèn)問(wèn)題解決后,運(yùn)維工程師關(guān)閉該問(wèn)題單。
7)編寫(xiě)相關(guān)文檔,將該故障問(wèn)題加入案例庫(kù)。
此次補(bǔ)丁版本V3.26共收編了15個(gè)來(lái)自現(xiàn)各局點(diǎn)和內(nèi)部測(cè)試發(fā)現(xiàn)軟件產(chǎn)品缺陷,由于所有收編問(wèn)題均在BugFree系統(tǒng)中進(jìn)行問(wèn)題單提單處理。因此,運(yùn)維經(jīng)理在制定V3.26版本的補(bǔ)丁計(jì)劃時(shí),只需要在BugFree系統(tǒng)中搜索“解決方案”中包含補(bǔ)丁版本版本號(hào)V3.26與處于Deferred狀態(tài)的問(wèn)題單,大大提高了補(bǔ)丁計(jì)劃的制定效率。
另外,BugFree系統(tǒng)中的典型案例作為所有項(xiàng)目組成員,尤其是新員工學(xué)習(xí)軟件產(chǎn)品維護(hù)的學(xué)習(xí)材料,很大程度上提高了故障問(wèn)題的解決效率。
軟件系統(tǒng)維護(hù)作為軟件工程的最后一個(gè)階段,在軟件的生命周期中占有非常重要的一席之地。長(zhǎng)期的工作實(shí)踐表明BugFree系統(tǒng)在軟件的維護(hù)工作中能夠很好管理日常維護(hù)工作,通過(guò)問(wèn)題單的跟蹤每個(gè)故障問(wèn)題的處理過(guò)程,隨時(shí)了解問(wèn)題單的處理進(jìn)度,提高了應(yīng)用軟件維護(hù)組的工作效率。從而更好為客戶服務(wù),延長(zhǎng)維護(hù)階段軟件產(chǎn)品的使用壽命。
[1]Shari Lawrence Pfleeger,Joanne Atlee M.軟件工程[M].4版.楊衛(wèi)東,譯.北京:人民郵電出版社,2010.
[2]Penny Grubb,Armstrong A Takang,軟件維護(hù):概念與實(shí)踐[M].2版.韓柯,孟海軍,譯,北京:電子工業(yè)出版社,2004.
[3]Rajesh Shah,Oracle on demand best practices:critical patch
The application of BugFree in the management of the software maintenance
JIANG Wen,LIU Li-kang
(School of Telecommunication Engineering,Xidian University,Xi’an 710071,China)
After the delivery of the software,the useful technical assistance is needed to be supported by the group of software maintenance.Internal technical management is very important in the group of software maintenance,it is contribute to improve work efficient.The group of software maintenance chooses BugFree to manage the daily maintenance work,with the maintenance work practice,introduced the defect management tool BugFree,described the process of problem Report disposed and different kinds of states of problem Report.At last,two typical maintenance work cases are introduced,including the defects of non source code defect and source code defect.Long work practice shows BugFree can effectively manage the maintenance software,improve the quality of maintenance.
software maintenance;BugFree;problem report;operation and maintenance engineer
TP311.53
A
1674-6236(2016)23-0015-04
2016-01-30稿件編號(hào):201601291
國(guó)家部委基礎(chǔ)科研計(jì)劃(A1120110007)
姜 文(1986—),女,陜西西安人,碩士研究生,工程師。研究方向:圖像處理與分析,數(shù)據(jù)庫(kù)應(yīng)用和軟件工程。