王秀娟
摘 要:軟件產(chǎn)品已經(jīng)步入千家萬(wàn)戶(hù),如何最大限度地從開(kāi)發(fā)階段避免缺陷的發(fā)生,實(shí)現(xiàn)缺陷預(yù)防成為許多學(xué)者研究重點(diǎn)內(nèi)容。本文主要闡述了缺陷預(yù)防的概念、目的及常用的缺陷預(yù)防分析技術(shù);從缺陷預(yù)防幾個(gè)重要階段提出具體的改進(jìn)措施,并對(duì)測(cè)試過(guò)程缺陷進(jìn)行有效跟蹤和度量,驗(yàn)證缺陷預(yù)防措施的有效性。
關(guān)鍵詞:缺陷預(yù)防 度量 缺陷分析
隨著軟件技術(shù)不斷發(fā)展,人們對(duì)缺陷的管理越來(lái)越嚴(yán)格,缺陷管理工具的運(yùn)用,缺陷分析和度量技術(shù)越來(lái)越純熟,很多研究學(xué)者提出新的研究方向,比如缺陷預(yù)防與缺陷漏測(cè)。
一、缺陷預(yù)防概述
缺陷預(yù)防是從需求開(kāi)發(fā)與管理、配置管理以及變更管理等各個(gè)軟件開(kāi)發(fā)的關(guān)鍵過(guò)程進(jìn)行預(yù)防和控制,并采用復(fù)用、各種模式確保過(guò)程的有效和成果的合格[1]。為了避免軟件的各種錯(cuò)誤遺留到后續(xù)開(kāi)發(fā)階段,運(yùn)用各種技術(shù)和過(guò)程來(lái)發(fā)現(xiàn)這些問(wèn)題,從需求開(kāi)發(fā)管理、配置管理以及變更管理等關(guān)鍵過(guò)程進(jìn)行缺陷預(yù)防和控制,并采用有效的復(fù)用、分析和處理缺陷的共性原因,來(lái)實(shí)施缺陷預(yù)防。缺陷預(yù)防是一個(gè)持續(xù)改進(jìn)的流程。
缺陷預(yù)防目的是識(shí)別缺陷產(chǎn)生的原因,從而避免再次發(fā)生。測(cè)試人員需從項(xiàng)目生命周期之初介入,準(zhǔn)確地理解測(cè)試對(duì)象并生成可測(cè)試的需求。軟件組織應(yīng)需量化的理解其過(guò)程能力,并持續(xù)地改進(jìn)組織級(jí)的開(kāi)發(fā)過(guò)程、缺陷發(fā)現(xiàn)過(guò)程,同時(shí)引入新方法、新工具,加強(qiáng)彼此經(jīng)驗(yàn)交流,從而實(shí)現(xiàn)缺陷預(yù)防。
所謂漏測(cè),是指軟件產(chǎn)品的缺陷沒(méi)有被測(cè)試組發(fā)現(xiàn)而遺漏到了用戶(hù)那里,卻最終被用戶(hù)所發(fā)現(xiàn)。在軟件開(kāi)發(fā)過(guò)程中,缺陷越早被發(fā)現(xiàn),那么發(fā)現(xiàn)和解決缺陷所花費(fèi)的成本就越小。因此進(jìn)行漏測(cè)分析、預(yù)防缺陷漏測(cè)是非常有意義的,利于降低軟件產(chǎn)品成本,提高軟件產(chǎn)品質(zhì)量,提高客戶(hù)滿意度。進(jìn)行漏測(cè)分析的目的是為了促進(jìn)軟件質(zhì)量提升和開(kāi)發(fā)測(cè)試過(guò)程得到持續(xù)改進(jìn)。
二、缺陷預(yù)防常用分析方法
因?yàn)殄e(cuò)誤是不可避免的,所以需要討論如何盡可能地把缺陷排除在軟件開(kāi)發(fā)周期之外,以便盡量減少錯(cuò)誤并提高軟件質(zhì)量。缺陷分析是軟件缺陷管理常用的方法,可幫助項(xiàng)目組定位和解決問(wèn)題,實(shí)現(xiàn)缺陷預(yù)防。根據(jù)LM公司電子銀行軟件項(xiàng)目缺陷情況提出幾點(diǎn)常用的分析技術(shù):
(1)模塊缺陷分析:一般采用柱狀圖或是餅狀圖分析,統(tǒng)計(jì)每一個(gè)功能模塊發(fā)現(xiàn)的BUG比例;參考每次迭代發(fā)布的統(tǒng)計(jì)情況,分析前后的度量數(shù)據(jù)。
(2)缺陷起因分析:采用柱狀圖或是餅狀圖統(tǒng)計(jì),一般可分析架構(gòu)缺陷、需求、功能缺陷、易用性缺陷、安全性缺陷、性能缺陷。
(3)缺陷優(yōu)先級(jí)分析:一般分為一級(jí)缺陷、二級(jí)缺陷、三級(jí)缺陷、輕微及建議類(lèi)缺陷、業(yè)務(wù)調(diào)整等類(lèi)型,根據(jù)缺陷優(yōu)先級(jí)可以判斷系統(tǒng)質(zhì)量情況。
(4)缺陷類(lèi)型錯(cuò)誤:一般分為需求問(wèn)題、設(shè)計(jì)問(wèn)題、代碼問(wèn)題、接口問(wèn)題、數(shù)據(jù)問(wèn)題、程序邏輯問(wèn)題、文檔問(wèn)題等類(lèi)型,根據(jù)錯(cuò)誤類(lèi)型定位缺陷發(fā)生階段。
(5)度量指標(biāo):運(yùn)用度量技術(shù),統(tǒng)計(jì)缺陷的概況,分析項(xiàng)目中缺陷情況,比如缺陷逃逸率,缺陷回退率情況;分析組內(nèi)成員編碼熟練程度和測(cè)試效率。
(6)缺陷預(yù)測(cè)模型:采用預(yù)測(cè)模型分析測(cè)試有效性和充分性,分析遺留的缺陷數(shù)量,進(jìn)行缺陷預(yù)防。
(7)缺陷漏測(cè)分析:對(duì)已經(jīng)發(fā)生的缺陷進(jìn)行漏測(cè)分析,歸納漏測(cè)缺陷類(lèi)別,對(duì)組內(nèi)成員共享經(jīng)驗(yàn),避免類(lèi)似問(wèn)題的遺漏。目前項(xiàng)目組根據(jù)歷史經(jīng)驗(yàn)和缺陷屬性對(duì)漏測(cè)的缺陷進(jìn)行分類(lèi),主要分為五大類(lèi)包括多法人分析類(lèi)、數(shù)據(jù)腳本類(lèi)、測(cè)試規(guī)范類(lèi)、業(yè)務(wù)配置類(lèi)和測(cè)試規(guī)范類(lèi)。
三、基于缺陷預(yù)防的軟件開(kāi)發(fā)流程改進(jìn)的應(yīng)用
缺陷預(yù)防一般分為事前預(yù)防和事后預(yù)防,事前預(yù)防常用的幾個(gè)階段分為需求階段、設(shè)計(jì)階段和編碼階段;事后預(yù)防主要是驗(yàn)證即測(cè)試階段,測(cè)試階段可進(jìn)行缺陷分析,進(jìn)行下一迭代的缺陷預(yù)防。結(jié)合本文第二章節(jié)缺陷預(yù)防階段和缺陷分析技術(shù),提出以下幾點(diǎn)措施:
(1)需求階段
①進(jìn)行需求跟蹤,制定詳細(xì)的需求跟蹤矩陣;
②需求范圍要明確,囊括系統(tǒng)安全性、系統(tǒng)性能、兼容性等;
③需求可執(zhí)行性,現(xiàn)有技術(shù)或框架可實(shí)現(xiàn),需求描述步驟詳細(xì)具體,盡量做到一步了然;
④對(duì)需求變更管理進(jìn)行控制,嚴(yán)格把控需求變更流程;
⑤用戶(hù)需求文檔避免技術(shù)語(yǔ)言,運(yùn)用通俗易懂語(yǔ)言描述且用戶(hù)確認(rèn);
⑥需要考慮易用性和界面問(wèn)題,分析漏測(cè)分類(lèi)點(diǎn)。
(2)設(shè)計(jì)階段
①增加技術(shù)評(píng)審環(huán)節(jié),概要設(shè)計(jì)評(píng)審、詳細(xì)設(shè)計(jì)評(píng)審;
②設(shè)計(jì)文檔規(guī)范可執(zhí)行,包含詳細(xì)的業(yè)務(wù)邏輯覆蓋;
③每個(gè)功能或模塊有明確的輸入、輸出和過(guò)程功能,并輔助數(shù)據(jù)測(cè)試;
④包含用戶(hù)界面UI設(shè)計(jì)描述,接口設(shè)計(jì)說(shuō)明以及結(jié)果圖。
(3)編碼階段
①統(tǒng)一編碼規(guī)范,制定詳盡的編碼規(guī)范文檔;
②增加代碼評(píng)審環(huán)節(jié),提高代碼評(píng)審力度;
③開(kāi)發(fā)必須執(zhí)行單元測(cè)試,規(guī)定單元測(cè)試覆蓋率;
④增加代碼走查環(huán)節(jié),靜態(tài)檢查一般采用工具完成;
⑤每次迭代注意上一階段缺陷類(lèi)型分析,并著重進(jìn)行代碼評(píng)審。
(4)測(cè)試階段
①缺陷模塊統(tǒng)計(jì),計(jì)算各個(gè)模塊的缺陷比例,比例越高模塊功能開(kāi)發(fā)質(zhì)量越差,開(kāi)發(fā)人員需要重點(diǎn)關(guān)注;
②缺陷類(lèi)型統(tǒng)計(jì),查看缺陷集中分布情況,集中的則反映了軟件問(wèn)題發(fā)生的階段,比如易用性問(wèn)題、界面問(wèn)題則說(shuō)明需求確認(rèn)環(huán)節(jié)需要重新跟蹤;
③缺陷起因統(tǒng)計(jì),根據(jù)缺陷發(fā)生的原因制定規(guī)避措施;
④運(yùn)用缺陷預(yù)測(cè)模型比如Gompertz模型進(jìn)行缺陷的預(yù)測(cè),估算遺留的缺陷數(shù)量和測(cè)試時(shí)間,并分析測(cè)試有效性和充分性,調(diào)整測(cè)試進(jìn)度。
⑤根據(jù)漏測(cè)缺陷分類(lèi),在測(cè)試階段進(jìn)行漏測(cè)分析的經(jīng)驗(yàn)共享,將漏測(cè)分類(lèi)的五大類(lèi)加入測(cè)試案例中,在測(cè)試執(zhí)行過(guò)程中避免類(lèi)似缺陷發(fā)生,同時(shí)重點(diǎn)關(guān)注該類(lèi)問(wèn)題測(cè)試案例覆蓋點(diǎn)。
⑥常用度量指標(biāo)統(tǒng)計(jì),度量指標(biāo)值可反映開(kāi)發(fā)階段組內(nèi)成員情況和開(kāi)發(fā)質(zhì)量,針對(duì)性進(jìn)行組內(nèi)培訓(xùn)或提升技能。
缺陷預(yù)防是保證軟件質(zhì)量其中一項(xiàng)最重要的活動(dòng),直接影響到項(xiàng)目成本的控制和高質(zhì)量的軟件成果,因此實(shí)現(xiàn)軟件缺陷預(yù)防勢(shì)在必行。
參考文獻(xiàn):
[1]雷挺.基于缺陷分類(lèi)和缺陷預(yù)測(cè)的軟件缺陷預(yù)防[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(01):215-220.
[2]褚洪波.靜態(tài)軟件缺陷預(yù)測(cè)分析[J].農(nóng)家參謀,2018(03):207.
現(xiàn)代營(yíng)銷(xiāo)·理論2019年2期