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