您的位置:軟件測試 > 開源軟件測試 > 開源Bug管理工具 >
開源軟件Bug跟蹤與管理探討
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/1/30 14:36:40 ] 推薦標(biāo)簽:

   摘要

  本文首先介紹了Bug管理的常規(guī)過程,接著分析了應(yīng)用于開源軟件開發(fā)過程的Bug跟蹤與管理系統(tǒng)的特點,描述了一個典型的Bug生命周期過程,并對完成一個合格的Bug報告做出了解釋。文章還簡單介紹了比較流行的缺陷跟蹤與管理系統(tǒng)bugglgj/bugzilla/' target='_blank'>Bugzilla等,并給出了個人的想法。

  關(guān)鍵詞:Bug管理,生命周期,缺陷跟蹤與管理系統(tǒng)

  Abstract-This paper introduces a normal bug management process, analyzes characteristics of bug tracking and management in development of open source software, describes a classic bug life cycle, and explains how to accomplish an eligible bug report. Also, some popular bug tracking and management systems such as Bugzilla are introduced, following with some personal thoughts.

  Key Words: Bug management, life cycle, bug tracking and management system

  1問題介紹

  在軟件開發(fā)與維護過程中,有效地進行質(zhì)量控制與保證工作尤為重要。正因如此,軟件缺陷跟蹤與管理在現(xiàn)代軟件過程中成為實施質(zhì)量控制與保證的重要方面。軟件中的缺陷(Defect或Bug)是軟件開發(fā)過程中的"副產(chǎn)品"。通常,缺陷會導(dǎo)致軟件產(chǎn)品在某種程度上不能滿足用戶的需要[[1]]。開源軟件組織宣稱,開源的目的是獲得更好的質(zhì)量、更高的可靠性、更強的靈活性、低成本和對掠奪式賣主禁閉行為的終結(jié)[[2]]。如其所言,開源軟件自由和開放的精神迎來了一些擁護者。雖然如此,軟件缺陷始終存在,如何實施對開源軟件Bug的跟蹤與管理呢?它與商業(yè)軟件缺陷管理又有什么區(qū)別呢?開源的人們又在使用哪些他們的Bug跟蹤系統(tǒng)呢?帶著疑問與不解,我開始了對開源軟件Bug跟蹤與管理的探討。

  2 Bug跟蹤與開源軟件Bug管理

  2.1缺陷管理一般過程

  軟件不是完美無缺的,正常情況下,出現(xiàn)惹人厭煩的Bug不可能成為軟件工程師們的期待。缺陷跟蹤管理是測試工作的一個重要部分,測試的目的是為了盡早發(fā)現(xiàn)軟件系統(tǒng)中的缺陷,因此,對缺陷進行跟蹤管理,確保每個被發(fā)現(xiàn)的缺陷都能夠及時得到處理是測試工作的一項重要內(nèi)容[[3]]。沒有人希望自己的產(chǎn)品存在太多的缺陷,但既然存在缺陷,應(yīng)該跟蹤和管理它。在介紹開源軟件缺陷跟蹤與管理之前,我們有必要對一般的缺陷管理過程有一個系統(tǒng)的認識。

  軟件存在的錯誤(Bug)一般是在測試過程中發(fā)現(xiàn)出來的,對于如何處理測試中發(fā)現(xiàn)的錯誤,將直接影響到測試的效果。對于測試中發(fā)現(xiàn)的Bug,需要有一個明確的管理流程。首先,測試人員提交新的Bug入庫,錯誤狀態(tài)為New;然后,高級測試人員驗證錯誤,如果確認是錯誤,分配給相應(yīng)的開發(fā)人員,設(shè)置狀態(tài)為Open;如果不是錯誤,則拒絕,設(shè)置為Declined狀態(tài);之后,開發(fā)人員查詢狀態(tài)為Open的Bug,如果不是錯誤,則置狀態(tài)為Declined;如果是Bug則修復(fù)并置狀態(tài)為Fixed。對于不能解決的Bug,要留下文字說明及保持Bug為Open狀態(tài),但對于不能解決和延期解決的Bug,不能由開發(fā)人員自己決定,一般要通過某種會議(評審會)通過才能認可。后,測試人員查詢狀態(tài)為Fixed的Bug,然后驗證Bug是否已解決,如解決置Bug的狀態(tài)為Closed,如沒有解決置狀態(tài)為Reopen[[4]]。這個過程中,我們可以發(fā)現(xiàn)它對測試人員的要求較高,如對于那些可能不是錯誤的問題不應(yīng)該被當(dāng)作Bug處理。

  2.2開源軟件Bug管理

  相對于常規(guī)的Bug管理流程,開源軟件的缺陷跟蹤與管理理所當(dāng)然不能超越它。但是,正如我們所提到的,開源軟件的開發(fā)模式的特殊性對其Bug跟蹤與管理過程也提出了新的更嚴格的過程要求。在此,首先有必要對缺陷跟蹤系統(tǒng)(Bug Tracker)有一個比較正確的認識。缺陷包括產(chǎn)品錯誤,需求和設(shè)計變更,新特性或擴展功能(New Feature, Enhancement)等,它存在于整個軟件開發(fā)生命周期之中[[5]]。那么,一個Bug Tracker 究竟要保存哪些信息呢?Bug跟蹤系統(tǒng)在軟件開發(fā)過程中也常常用來記載新的功能需求、任務(wù)日志、補丁包等,只要是具有明確的開始和結(jié)束狀態(tài)的東西,它們以及在這個過程中的轉(zhuǎn)變以及產(chǎn)生的信息都應(yīng)當(dāng)存儲到系統(tǒng)中。相比于商業(yè)軟件開發(fā)過程,在開源軟件開發(fā)過程中,一個Bug的典型生命周期是這樣的:問題報告者(可能對項目一無所知)總結(jié)出現(xiàn)的問題,給出恰當(dāng)?shù)某跏济枋,將這些信息加以歸檔,然后提交到系統(tǒng);其他用戶或測試者讀到Bug信息,可能給出進一步的注釋,在此過程中可能會通過適當(dāng)?shù)姆绞揭髿w檔者澄清一些問題;問題在其他用戶體驗過程中再次出現(xiàn),多次的重現(xiàn)表明這個問題確實存在,這個過程其實是一個Bug生命期的重要階段,因為一個不真實的Bug可能在這個階段被關(guān)閉或刪除;問題或缺陷得到診斷,并且解決它需要付出的代價也有了估計,這個過程可能由開發(fā)成員完成,但也可能是熱情的用戶;問題解決時間有了初步規(guī)劃,可能在某一個但不一定是下一個版本中,問題會被解決;后,問題得到解決,相關(guān)的更改應(yīng)該被記錄下來后,應(yīng)該關(guān)閉這個問題。

  但是,上面的過程可能會中途停止。那么,為什么一個Bug會中途夭折呢?其實可以想到,Bug報告者可能對項目或軟件產(chǎn)品不熟悉,這樣他可能提交一個錯誤的問題報告。這樣,這個Bug可能很快被關(guān)掉。另一個變化因素是,同樣的問題在系統(tǒng)中已經(jīng)有了記載,甚至可能被解決了。在這種情況下,這個冗余的Bug會被刪除。當(dāng)然,開發(fā)者也許自以為是地認為,某個Bug根本不存在,或者開發(fā)者簡單地改動一些地方后認為Bug不再存在,于是他可能把實際上沒有解決的問題給關(guān)掉了[[6]]。

  2.3Bug報告

  技術(shù)支持被認為是一件可怕的工作,因為有拙劣的bug報告需要處理[[7]]。我們可以看到,當(dāng)出現(xiàn)問題或缺陷后,系統(tǒng)可能得到許多用戶和測試者的報告,那么,如何有效地實施Bug Tracker呢?

  一個開源項目啟動后,Bug跟蹤系統(tǒng)也開始運行,它一般運行于C/S或B/S架構(gòu)的服務(wù)器上。在客戶端,它提供一種或多種用戶接口,如Web表單、郵件等,有些缺陷跟蹤系統(tǒng)還提供一些提交工具,簡化了用戶操作。我們先關(guān)注針對客戶端的接口,比如,一個測試者想要報告一個Bug,他首先進入Bug報告界面,但更多的時候,系統(tǒng)總是提示測試者要注意的事項。實際上,在報告Bug前重要的當(dāng)然是發(fā)現(xiàn)Bug并試圖找出它的原因了。正如linux新手可能會被告知:盡量關(guān)注當(dāng)前出現(xiàn)的問題并且試圖找出原因[[8]]。一個友好的Bug報告者不能是只知道抱怨,在報告中胡亂地描述著:彈出討厭的窗口。這樣的報告會產(chǎn)生歧義,那么,如何提交一個合格的Bug報告呢?Elisabeth Hendrickson在他的一本著作中寫道:當(dāng)你編寫bug報告時,記住你的聽眾,選擇一個好的標(biāo)題,清楚的記錄步驟并解釋錯誤的影響;你的bug report將會因為你花在它上面的格外努力而更好,并且有更多的錯誤被修復(fù);終將達到我們期望的結(jié)果-使錯誤在傷害用戶之前得到修復(fù)[[9]]。的開源軟件質(zhì)量控制與保證平臺Mozilla規(guī)定了一個良好的Bug報告應(yīng)該包含以下信息:軟件版本序列號、運行環(huán)境、錯誤現(xiàn)場信息、調(diào)試與警告信息等[[10]]。實際中,缺陷跟蹤系統(tǒng)有必要提供適當(dāng)?shù)慕涌诮o用戶。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd