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