摘 要: 軟件能力成熟度模型第4級中要求在項目中定量管理,建立組織級過程性能,構成完整的量化管理,采用統計或其它定量方法管理軟件過程,并通過對過程中出現的方法,技術等問題進行因果分析和尋找解決方案[1]。在仔細研究了現有的缺陷度量分類方法和分析指標后,提出了一個基于缺陷度量與分析的軟件過程改進模型。應用該模型可以設計缺陷數據管理系統。
關鍵詞: 軟件缺陷;缺陷度量;軟件過程
1 引言
軟件產品的生產過程決定了所開發出的軟件的質量,提高軟件質量是軟件生產過程中各項活動的共同目標,因此,必須對軟件的生產過程進行有效的質量控制與管理[2]。軟件缺陷是軟件在生命周期各個階段存在的一種不滿足給定需求屬性的問題[3]。目前發布的軟件中,都存在著這樣或那樣的缺陷,某些缺陷可能成為軟件的致命隱患,而導致應用軟件或操作系統崩潰,所以軟件開發公司和個人必須都積極采取有效的方法,盡可能的減少缺陷。
在軟件開發過程中實施缺陷的度量與分析,對于提高軟件開發和測試效率,預防缺陷發生,保證軟件產品質量有著十分重要的作用。缺陷分析是將軟件開發各個階段產生的缺陷信息進行分類和匯總統計,計算分析指標,編寫分析報告的活動。通過軟件缺陷分析可以發現各種類型缺陷發生的概率,掌握缺陷集中的區域、明確缺陷發展趨勢、挖掘缺陷產生的根本原因,便于有針對性地提出遏制缺陷發生的措施、降低缺陷數量[3]。缺陷分析報告中的統計數據及分析指標既是對當前軟件質量狀況的評估,也是判定軟件是否能按期發布或交付使用的重要依據。實施缺陷分析的前提是需要一個符合項目要求的缺陷數據管理系統,通過采集完整的缺陷數據信息,進行缺陷數據分析,來改進軟件過程質量并實施缺陷預防措施。
2 問題描述
目前多數中小型軟件項目的開發對于缺陷信息的控制和管理處一種混亂的狀態中,對測試前期的設計和開發階段的缺陷數據統計和分析的重視程度嚴重不足。基本上是在進入測試階段后才開始報告出大量的缺陷,進行缺陷的修正,再測試,再修正這樣一個無序的過程。由于缺乏缺陷數據的統計與分析,及缺陷的預防機制,使得軟件項目開發周期變得難以控制。
根據缺陷分類方法的目的,觀察角度和復雜度的不同,已經出現了幾種軟件缺陷的分類方法。例如,比較流行的IBM公司制定的缺陷正交分類方法ODC(Orthogonal Defects Classification)。該方法提供了一種從缺陷中提取關鍵信息的測量范例,適用于評價軟件開發過程,提出過程改進方案,其缺點在于分類復雜,難以把握缺陷分類的標準。Thayer軟件錯誤分類方法通過錯誤性質劃分缺陷,適用于指導開發人員消除缺陷。美國電氣和電子工程師協會IEEE(Institute of Electrical and E-lectronics Engineers)制定的軟件異常分類標準提供了一個統一的方法對軟件和文檔中發現的異常進行詳細的分類,具有較高的權威性,不足之處在于沒有考慮軟件工程的過程缺陷,分類過程復雜[5]。軟件生產是以過程為主線的,各種活動都圍繞過程進行,各種工具和方法的使用都和過程緊密聯系,過程由一系列的活動組成,這些活動由開發者使用工具、方法和技術完成。過程之間是相互聯系的。過程結果會影響到相關的以該過程結果為基礎的過程。將分類方法建立在過程基礎上可以更好地理解缺陷形成的過程,把握缺陷的本質,從根本上預防缺陷。
現在市場上的已經開發了幾種缺陷管理系統工具,例如Mercury公司的Quality Center,IBM公司的Rational系列管理工具,微軟公司的VSTS等。類似的商用的缺陷管理系統的特性基本上都大同小異,對于缺陷屬性的分類方法沒有一個統一的標準,現有的缺陷管理工具在缺陷數據的分析方面普遍比較薄弱,通常只是提供一些缺陷屬性數量的簡單統計功能,用戶不得不借助一些其它的統計分析軟件或自行開發缺陷數據分析組件來進行缺陷數據的分析。在實際軟件開發過程中,對于缺陷數據的分析還沒有給予足夠的重視。
本文基于上述思考,提出了一個基于缺陷度量與分析的軟件過程改進模型,如圖1。該模型可根據需要設計缺陷屬性度量分類標準。在軟件開發過程中通過缺陷管理系統采集缺陷數據,運用缺陷分析方法實施缺陷分析,把握缺陷發展趨勢,對軟件項目開發過程進行綜合評價。實施缺陷預防方案,提高軟件產品的開發質量。通過缺陷分析結果的反饋,改進缺陷度量分類標準和分析目標,提高缺陷分析結果的準確性。本文重點研究了缺陷分類方法和缺陷數據的分析方法,并結合某項目中的缺陷數據實例進行了分析。
3 缺陷分類方法研究
3.1 缺陷分類的目的和原則
缺陷分類的目的是通過實施軟件缺陷管理,采集完整的缺陷數據信息。通過缺陷數據分析軟件缺陷產生的原因,改進軟件過程,預防軟件缺陷,提高軟件質量,改善組織的軟件能力成熟度。
缺陷分類方法應滿足以下要求:準確地對發現的缺陷類型進行分類;缺陷分類類型之間應無重疊,并盡可能多的覆蓋開發過程中出現的分類;分類要與軟件生命周期有機結合,從軟件過程的角度對軟件缺陷進行分類。
3.2 缺陷度量屬性分類
實施度量分析的目的是為了發現軟件過程中的問題,并制定過程改進的計劃和目標。過程度量分析的關鍵是對實際工作量、項目進度、項目實際情況與計劃或預計成本的偏離程度過程中存在的缺陷以及在項目中已解決的缺陷進行分析和統計。
在引言中曾提到,軟件缺陷的范圍很廣,不僅僅指在測試過程中發現的缺陷,而是指在整個軟件生命周期中發現的所有缺陷。一個缺陷需要記錄許多相關的度量屬性,如何劃分這些度量屬性也是缺陷分類研究領域的一個熱點。傳統的軟件缺陷分類方法主要目標是消除軟件缺陷,評價軟件的性能和可靠性,不能滿足改進軟件過程的需要。所以需要設計一個較完整的缺陷分類方法,在軟件生命周期各個階段中按照缺陷產生的過程來分類。本文中將缺陷度量屬性設計為描述屬性、統計屬性和控制屬性三類。