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