軟件質(zhì)量是指與軟件產(chǎn)品滿足規(guī)定和隱含的需求的能力和有關(guān)的特征的全體,即所有描述計算機軟件優(yōu)秀程度的特性的組合。
應(yīng)用軟件的質(zhì)量依賴于問題需求的描述、解決方案的建模設(shè)計、可執(zhí)行程序的編碼的產(chǎn)生以及為發(fā)現(xiàn)錯誤而運行軟件的測試。一個優(yōu)秀的監(jiān)理工程師應(yīng)該能夠使用定量的方法來評估軟件開發(fā)過程中產(chǎn)生的分析及設(shè)計模型、源代碼和測試用例(use case)的質(zhì)量。
軟件開發(fā)質(zhì)量的定量監(jiān)理
為了實現(xiàn)這種實時的質(zhì)量評估,監(jiān)理工程師們必須采用技術(shù)度量來客觀地評估質(zhì)量,而不能僅僅采用主觀的方法進行評估。
在評估中,首先要明確的一點是,軟件需求是度量軟件質(zhì)量的基礎(chǔ)。不符合需求的軟件就不具備質(zhì)量。
而在定量監(jiān)理實踐中,通常需要使用一種被稱為尺度度量的方法,這種定量度量適用于一些能夠直接度量的特性,比如,出錯率定義為錯誤數(shù)/KLOC/單位時間等。
因而,對質(zhì)量控制所應(yīng)該建立的一些定量數(shù)據(jù)是:
?。?)明確性(無二義性)、完全性、正確性、可理解性、可驗證性、內(nèi)部和外部一致性、可完成性、簡潔性、可追蹤性、可修改性、精確性和可復(fù)用性的數(shù)據(jù)。這些數(shù)據(jù)可以用來評價分析模型和相應(yīng)的需求規(guī)約質(zhì)量的特征。
公開的可能缺陷數(shù)與報告總?cè)毕輸?shù)的對比則可以用來評價測試精確度和測試覆蓋度,同時也可以預(yù)測項目發(fā)布時間。
(2)產(chǎn)品發(fā)布前清除的缺陷數(shù)在總?cè)毕輸?shù)中所占的百分比,有助于評估產(chǎn)品的質(zhì)量。
(3)按嚴重缺陷、子系統(tǒng)缺陷來劃分,分類統(tǒng)計出平均修復(fù)時間,這樣將有助于規(guī)劃糾正缺陷的工作。
?。?)利用測試的統(tǒng)計數(shù)據(jù),估算可維護性、可靠性、可用性和原有故障總數(shù)等數(shù)據(jù)。這些數(shù)據(jù)將有助于評估應(yīng)用軟件的穩(wěn)定程度和可能產(chǎn)生的失敗。
在上述定量數(shù)據(jù)的基礎(chǔ)上,就可以開始進行估算。
1、基本的定量估算
基本定量估算示例:
設(shè)
F為用功能點描述的軟件規(guī)模;
D1為在開發(fā)過程(提交之前)中發(fā)現(xiàn)的所有缺陷數(shù);
D2為提交后發(fā)現(xiàn)的缺陷數(shù);
D為發(fā)現(xiàn)的總?cè)毕輸?shù)。
因此, D=D1+D2
對于一個應(yīng)用軟件項目,則有如下計算方程式(可以從不同的角度估算軟件的質(zhì)量):
質(zhì)量=D2/F;
缺陷注入率=D/F;
整體缺陷清除率=D1/D;
同樣以上期中的CAD軟件為例,根據(jù)上期計算所得結(jié)果,功能點F為366,而在開發(fā)過程中發(fā)現(xiàn)了15個錯誤,提交后又發(fā)現(xiàn)了4個錯誤,則:
D1=15,D2=4
D=D1 +D2=15+4=19
質(zhì)量(每功能點的缺陷數(shù))=D2/F=4/366=0.0109
缺陷注入率=D/F=19/366=0.05191
整體缺陷清除率=D1/D=15/19=0.7895
有資料報告,美國的平均整體缺陷清除率目前只達到大約85%。而像AT&T、IBM、摩托羅拉和惠普這樣一些大公司的頂級項目,通過實施最佳實踐,其缺陷清除率可以超過99%。
眾所周知,清除軟件缺陷的難易程度是不同的。需求錯誤、規(guī)格說明、設(shè)計問題及錯誤修改是最難清除的。表1給出了美國平均缺陷的情況:
表2反映的是CMM五個等級是如何影響軟件質(zhì)量的,其數(shù)據(jù)來源于美國空軍1994年委托SPR(美國一家著名的調(diào)查公司)進行的一項研究。
從表中可以看出,CMM級別越高,缺陷清除率也越高。
在監(jiān)理過程中,可以將這這些標準或指標結(jié)合起來使用,用以辨明可能存在的質(zhì)量問題。
2、對軟件需求的估算
假設(shè)在一個規(guī)約中有nr個需求,所以
nr=nf+n