葛艷 韓梅
摘要:為了提高軟件項目的質(zhì)量,該文探討分析軟件項目過程中的缺陷管理和過程控制方法。重點分析了項目過程缺陷管理的步驟和缺陷統(tǒng)計分類方法。通過對缺陷的收集、統(tǒng)計和分析,識別出軟件項目過程中存在的問題。經(jīng)過在實際項目中的實踐,能夠達(dá)到過程改進(jìn)和項目質(zhì)量提高的效果。
關(guān)鍵詞:軟件測試;缺陷管理;過程控制
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)05-0181-03
Abstract: In order to improve the quality of software project, this paper focuses on the defeat management and process control in the process of software project. The process of defeat management and the methods of statistical classification of the software project are discussed in this paper. The problems in the process of software project can be identified by the collection, statistics and analysis of the defects. The effect of process and the project quality in the actual software project can be improved based on the methods in this paper.
Key words: Software test; Defeat management; Process control
1概述
隨著各類軟件的廣泛應(yīng)用,人們對軟件的質(zhì)量要求也越來越嚴(yán)格[1]。軟件開發(fā)不再是軟件開發(fā)人員的個人行為而是團(tuán)隊行為。對軟件開發(fā)機構(gòu)來說,如何在有限的投資下按期交付高質(zhì)量的軟件產(chǎn)品是一個巨大的挑戰(zhàn)。軟件項目管理涉及方方面面的人員,產(chǎn)生大量的中間產(chǎn)品,每個環(huán)節(jié)都可能存在產(chǎn)品質(zhì)量問題;而軟件項目管理除了涵蓋需求、設(shè)計、開發(fā)、測試等過程管理,還包括進(jìn)度、風(fēng)險、資源(人、軟/硬件)、成本、溝通等管理,這些都與軟件的質(zhì)量、效率、最終成果息息相關(guān)[2]。
本文從軟件項目缺陷管理入手,通過收集軟件項目過程中缺陷分類,統(tǒng)計分析缺陷產(chǎn)生的原因和變化趨勢等,驅(qū)動相關(guān)軟件項目過程的控制和改進(jìn),從而達(dá)到提高軟件項目質(zhì)量的目的。
2 項目過程缺陷管理
缺陷(Bug)是軟件固有屬性,不僅是代碼級別的錯誤,還包含設(shè)計、編碼、測試各階段收集的缺陷[3]。任何有助于改善產(chǎn)品質(zhì)量的提議,值得跟蹤的潛在問題都應(yīng)作為一個缺陷來對待。有計劃、有目標(biāo)地收集缺陷,有步驟地修改缺陷,全面地統(tǒng)計缺陷、有針對地分析缺陷、不斷歸納缺陷發(fā)生和消亡規(guī)律的一整套規(guī)范性的行為過程,稱為缺陷管理[4]。
缺陷管理分為缺陷收集、分析、修改和統(tǒng)計四個步驟,是不斷循環(huán)和改進(jìn)的過程。
2.1 缺陷收集
缺陷收集是缺陷管理的前提,是有計劃、有目標(biāo)地去發(fā)現(xiàn),而不是簡單的偶然發(fā)現(xiàn)。在項目過程中,評審和測試均是缺陷收集的主要表現(xiàn)形式。在缺陷收集之前,必須按質(zhì)量目標(biāo)預(yù)測收集的數(shù)量[5]。
2.1.1 缺陷收集的主要手段
缺陷收集的主要手段如下:
1)評審(適用于設(shè)計書等文檔類及代碼缺陷):對設(shè)計代碼進(jìn)行審查寫成文件,以評定設(shè)計代碼是否滿足要求,識別其中的問題并提出解決辦法。在項目過程中通常進(jìn)行多次設(shè)計代碼評審。
2)白盒測試(適用于單元測試):檢查每個測試用例的數(shù)據(jù)處理,覆蓋可能處理路徑和代碼行,存在的方法有[6]:代碼行覆蓋(覆蓋所有程序代碼),路徑覆蓋(覆蓋所有可能的邏輯、業(yè)務(wù)等路徑)以及條件覆蓋(覆蓋所有可能的邏輯條件分支)。
3)黑盒測試(適用于功能測試、系統(tǒng)測試等測試階段):忽略系統(tǒng)或構(gòu)件的內(nèi)部結(jié)構(gòu),用以評價系統(tǒng)或構(gòu)件對規(guī)定的功能需求的符合性。
2.1.2 缺陷的收集目標(biāo)
根據(jù)項目數(shù)據(jù)積累,對項目整體摘出缺陷數(shù)、各個階段摘出缺陷數(shù)量做出明確的預(yù)定收集目標(biāo)。
2.1.3 缺陷收集偏離率
缺陷收集應(yīng)注意實際收集到的缺陷量和預(yù)定收集量是否有較大的偏離[7]。偏離率計算公式如下:
偏離率=(實際數(shù)量-預(yù)定數(shù)量)/預(yù)定數(shù)量 (1)
如果偏離率大于20%,說明缺陷收集或軟件系統(tǒng)的代碼可能出現(xiàn)問題,應(yīng)立即找出問題所在。
2.2 缺陷的分析
缺陷修改之前需要分析缺陷發(fā)生原因,提出修改對策,歸納缺陷類別以及確定修改緊急度等。
2.3 缺陷的修改
通過修改設(shè)計書,代碼和測試確認(rèn)消除缺陷。
2.4 缺陷的統(tǒng)計
科學(xué)地預(yù)測缺陷發(fā)生的時機、數(shù)量、場所等也是缺陷統(tǒng)計分析的重要成果之一[8-9]。 缺陷統(tǒng)計分類如表1所示。其中序號5-12可作為缺陷屬性或特征進(jìn)行管理。還有幾項說明如下:
第4項可以預(yù)測出未來來自該客戶項目的較精確的設(shè)計變更工作量,準(zhǔn)確地估計對交付后由于設(shè)計變更而引發(fā)的工作量,便于安排項目跟蹤人員。
第7項統(tǒng)計分類為第本文3節(jié)過程控制舉例用。在實際項目管理中還可進(jìn)一步細(xì)化分類標(biāo)注。
第12項中缺陷應(yīng)摘出階段是通過分析后認(rèn)定該缺陷應(yīng)在哪一階段被摘出。例如:在功能測試時發(fā)現(xiàn)一個功能遺漏缺陷,如果前期工作做得好,該缺陷應(yīng)在設(shè)計評審或編碼階段被發(fā)現(xiàn)。
3 過程控制
通過對軟件項目過程缺陷的管理和分析,識別存在問題,可以有針對性的進(jìn)行過程控制和改進(jìn)。
3.1 軟件項目過程中缺陷數(shù)據(jù)統(tǒng)計分析和過程控制
根據(jù)每天對缺陷進(jìn)行統(tǒng)計和分析,可發(fā)現(xiàn)本階段的項目質(zhì)量薄弱環(huán)節(jié),及時改進(jìn),對下階段進(jìn)行預(yù)防??蓮囊韵聨讉€方面關(guān)注統(tǒng)計結(jié)果:
1)重點關(guān)注每天摘出、修改、關(guān)閉的缺陷,本階段摘出、修改、關(guān)閉的總?cè)毕?,把握質(zhì)量狀況。
2)缺陷曲線圖如果起伏很大,說明本階段項目的質(zhì)量有一定的問題。
3)缺陷誤報如果過多,說明測試人員對系統(tǒng)設(shè)計的理解不夠深刻。
4)設(shè)計錯誤如果過多,說明設(shè)計存在較多問題,應(yīng)盡快修復(fù)設(shè)計錯誤,避免后期發(fā)生不必要的設(shè)計變更,降低項目后期壓力。
5)某一類型的缺陷如果過多,說明項目存在共通的問題,在修改時沒有很好的進(jìn)行橫向展開。應(yīng)對此問題進(jìn)行專項檢查,甚至?xí)和m椖浚枰蕴幚怼?/p>
6)如果存在長時間沒有關(guān)閉的缺陷,說明該缺陷存在設(shè)計或技術(shù)問題,應(yīng)謹(jǐn)防延誤項目進(jìn)度。
7)按“重要度”和“摘出難易度”評估項目質(zhì)量。兩者組合關(guān)系如表2所示。
按每天的缺陷統(tǒng)計數(shù)據(jù)評估和預(yù)測項目質(zhì)量可以得到如圖1所示的設(shè)計階段缺陷曲線圖。如果每天摘出的缺陷數(shù)量沒有較大波動, 缺陷偏差率不大,則缺陷曲線圖比較平滑無較大波動,項目質(zhì)量風(fēng)險可控。如果缺陷未修改曲線無較大波動,最終趨于0,則說明缺陷修改進(jìn)度延遲風(fēng)險較小。
3.2 里程碑結(jié)束時的缺陷數(shù)據(jù)統(tǒng)計分析與過程控制
在里程碑結(jié)束時,如果缺陷偏離率超過基準(zhǔn)值閾值范圍,應(yīng)調(diào)查原因并提出對策:
1)針對缺陷實際數(shù)量小于預(yù)定數(shù)量的情況,應(yīng)比較缺陷分類統(tǒng)計發(fā)生率是否與歷史數(shù)據(jù)有較大偏差。如果有較大偏差,應(yīng)抽取樣本對該指標(biāo)進(jìn)行重點檢查。如果發(fā)現(xiàn)問題較多,說明該指標(biāo)質(zhì)量異常,對該指標(biāo)應(yīng)重新進(jìn)行評審或測試。
2)針對缺陷實際數(shù)量大于預(yù)定數(shù)量的情況:首先從項目規(guī)模、時間、類型、難易度、開發(fā)人員技能水平、過程控制等方面分析查找超標(biāo)原因,提出有效措施。其次,分析典型缺陷和特性,判定該類缺陷是否具有普遍意義和后續(xù)危害。再次,把超標(biāo)的缺陷類型做成質(zhì)量MAP,追加測試,確保該類型缺陷被盡可能地摘出。最后,當(dāng)不易摘出的缺陷較多時,如果分析原因能證明合理則正常。例如摘出了較多經(jīng)評估應(yīng)在下一工程階段摘出的缺陷。
4 結(jié)束語
本文從軟件項目缺陷管理的角度,通過對缺陷的收集、統(tǒng)計和分析,盡可能早的發(fā)現(xiàn)軟件項目過程中的問題,從而實現(xiàn)問題的早發(fā)現(xiàn)、早干預(yù)、早解決。通過有針對性的對軟件項目過程控制和改進(jìn),能有效的預(yù)估項目中的質(zhì)量發(fā)展趨勢,使項目人員有更多的時間和精力為下一步工作做準(zhǔn)備。本文系統(tǒng)的介紹了缺陷管理和過程控制,闡明了兩者之間的關(guān)系和發(fā)現(xiàn)、解決問題的思路,在實際項目過程中可以根據(jù)情況靈活運用。
參考文獻(xiàn):
[1] 楊翠蓉, 尹平林, 王明哲. ERP 環(huán)境下的倉庫管理信息系統(tǒng)設(shè)計[J]. 計算機與現(xiàn)代化, 2001(5): 95-98.
[2] 張向宏, 張翠然. 基于CMMI4的軟件缺陷管理體系研究及應(yīng)用[J]. 山西財經(jīng)大學(xué)學(xué)報, 2011, 33(3): 291-292.
[3] Lewis W E,Dobbs D, Veerapillai G. 軟件測試與持續(xù)質(zhì)量改進(jìn)[M]. 陳紹英, 張河濤, 劉建華,等,譯. 3版.北京: 人民郵電出版社, 2011: 39-50.
[4] Hassan A E.Holt R Guest editors'introduction: Spec- ial issue on mining software repositories[J]. IEEE trans on software engineering, 2005, 31(6): 426-428.
[5] 王維, 鄒燕飛, 龐金葉. 缺陷管理系統(tǒng)的研究與實現(xiàn)[J]. 電腦編程技巧與維護(hù), 2014(23): 49-50.
[6] 王賀. 基于ODC的軟件缺陷管理方法的研究與應(yīng)用[D]. 北京: 北京郵電大學(xué), 2010.
[7] 黃靜旋, 李和平. 缺陷管理與分析系統(tǒng)的研究與開發(fā)[J]. 電腦知識與技術(shù), 2013, 9(5): 1052-1068.
[8] 張創(chuàng)基. 軟件缺陷管理系統(tǒng)的分析與設(shè)計[J]. 教育教學(xué)論壇, 2012(8).
[9] 林璐. 對軟件測試中的缺陷管理的研究和實踐[D]. 上海: 復(fù)旦大學(xué), 2011.