缺陷管理貫穿于整個軟件開發生命周期中, 是不可缺少的環節,但在國內一些中小型開發商中沒有得到足夠得重視。本文結合實際應用,系統地介紹了缺陷跟蹤開源軟件 Buggit 和 Mantis, 以期拋磚引玉,引起重視。
在您的項目中,是否有遇到過這樣的問題:測試人員報的缺陷被遺忘掉;延期項目終于發布,卻遭遇用戶頻頻抱怨,管理人員將矛頭指向測試人員;書寫不規范的錯誤報告,使得開發人員不得不一次次找到測試人員來重現;地域分散的開發團隊,通過email和文檔交流,缺陷狀態混亂,相關人員無法及時獲得有關的變更信息……
那么,讓測試組織使用數據庫來部署產品缺陷的記錄和跟蹤吧!對于中小軟件開發組織,或許不太可能使用動則幾千美金一個許可證的商業軟件,但免費而又易于維護的軟件完全可以滿足您80%以上的需要。如果您的組織還陷于無窮無盡的混亂不堪的缺陷之中,不要猶豫,馬上行動,免費軟件可以很好地管理這個過程,但在實施中對管理上提出的要求則是您應該自我提高的。下面我們看看一個中小型開發組織兩年多的實施過程,或許對您有些啟發。
一、項目背景、組織架構
某公司在全球航運業信息化,在全球設有四個研發中心,主要為公司開發航運和物流軟件,大多給公司內部和業務有關的客戶使用,有些成熟的軟件銷售給同行或作為中立的平臺提供給同行使用。該公司的上海的研發中心使用的是免費或開源的軟件跟蹤缺陷,有獨立的測試小組,工作包括功能測試、壓力測試、質量保證和過程改進,使用的是免費軟件Buggit。
后來為了解決異地開發過程中的缺陷跟蹤問題, 開始使用Mantis 0.17.5版本(開源軟件,PHP/MySQL/Web Based),開始用一個實際的項目作試點,并根據項目組不同角色成員的反饋,測試組對系統進行配置和代碼的修改加以提高;由于效果很不錯,幾個月后推廣到其他多個項目。
二、缺陷跟蹤流程
缺陷包括產品錯誤,需求和設計變更,新特性或擴展功能(New Feature, Enhancement)等,它存在于整個軟件開發生命周期之中。使用中心數據庫便于項目組和管理人員獲取正確、足夠的信息,簡化了地域分散的組織的信息共享流程,它還可以實現工作流程的自動化,大限度減少重復工作。
不同的組織,缺陷跟蹤流程會有所不同,下圖是一個典型的缺陷生命周期圖。
在alpha/beta測試期間,測試人員將發現的Bug 提交到缺陷跟蹤系統,該系統至少應包含:
失敗描述:摘要、重建步驟、隔離信息;
識別信息:順序的ID號、報告作者、報告歸檔日期。
一個好的系統還需要:
嚴重性等級,以評估在測試條件下,錯誤在系統中的影響;
優先級,評估顧客實際使用中發生事件的可能性,或對目標顧客的后續影響;
環境:系統軟、硬件配置,測試版本號;
附件,錯誤信息或屏幕截圖。
提交之后,Bug為"Submitted"狀態,變更控制委員會(Change Control Board,視項目規模組織,可以是不同角色的幾個人組成或一個人擔當)評審決定:
是Bug,分配給相關開發人員修復,狀態為"Assigned";
不是Bug或其他原因,關閉,狀態為"Closed",解決方式(Resolution)根據實際情況選擇;
是Bug,但延遲到下一個版本修復,狀態為"Postponed"。
開發人員將Bug修復后,其狀態改為"Resolved",他們應發布到下一個測試版本(Test Build)中,測試人員測試所有"Resolved" Bug,沒有問題應關閉("Closed"狀態),未修復則要重新打開("Opened"狀態)。
對于用戶提交的Bug,有些系統會增加"Confirmed"的狀態,表示經測試Bug確實存在。
對其他變更(如需求改變或新增),以上流程同樣適用,但可能需要多次分配(assign),如需求變更,業務分析員要更新需求文檔,系統分析員要更新設計文檔,然后程序員改代碼。
系統好還有以下功能:
Root Cause:根本原因分析,這需開發人員的幫助;
Close Date和Resolution:系統生成關閉日期,可選擇或輸入問題是如何解決的;
系統自動跟蹤記錄缺陷歷史,可輸入注釋;
方便的查詢功能;
可定制的報表,缺陷趨勢圖表;
Email提醒。
三、缺陷跟蹤過程實施
流程制定并評審通過后,應該選擇合適的工具,對一個新組建的組織,也可以先選擇工具,再結合特定的工具制定流程。正式實施前應對項目組所有成員進行培訓,以提高工具使用效率和成員間的溝通效率。
初我們選擇了一個十分簡單而又易于維護的工具Buggit,用于項目組內部的Bug跟蹤;隨著跨地域開發項目的出現,溝通交流復雜性凸現,我們適時選擇了Web Based系統。下面看看兩個系統的具體實施。