軟件質量是指與軟件產品滿足規定和隱含的需求的能力和有關的特征的全體,即所有描述計算機軟件優秀程度的特性的組合。
應用軟件的質量依賴于問題需求的描述、解決方案的建模設計、可執行程序的編碼的產生以及為發現錯誤而運行軟件的測試。一個優秀的監理工程師應該能夠使用定量的方法來評估軟件開發過程中產生的分析及設計模型、源代碼和測試用例(use case)的質量。
軟件開發質量的定量監理
為了實現這種實時的質量評估,監理工程師們必須采用技術度量來客觀地評估質量,而不能僅僅采用主觀的方法進行評估。
在評估中,首先要明確的一點是,軟件需求是度量軟件質量的基礎。不符合需求的軟件就不具備質量。
而在定量監理實踐中,通常需要使用一種被稱為尺度度量的方法,這種定量度量適用于一些能夠直接度量的特性,比如,出錯率定義為錯誤數/KLOC/單位時間等。
因而,對質量控制所應該建立的一些定量數據是:
。1)明確性(無二義性)、完全性、正確性、可理解性、可驗證性、內部和外部一致性、可完成性、簡潔性、可追蹤性、可修改性、精確性和可復用性的數據。這些數據可以用來評價分析模型和相應的需求規約質量的特征。
公開的可能缺陷數與報告總缺陷數的對比則可以用來評價測試精確度和測試覆蓋度,同時也可以預測項目發布時間。
。2)產品發布前清除的缺陷數在總缺陷數中所占的百分比,有助于評估產品的質量。
。3)按嚴重缺陷、子系統缺陷來劃分,分類統計出平均修復時間,這樣將有助于規劃糾正缺陷的工作。
。4)利用測試的統計數據,估算可維護性、可靠性、可用性和原有故障總數等數據。這些數據將有助于評估應用軟件的穩定程度和可能產生的失敗。
在上述定量數據的基礎上,就可以開始進行估算。
1、基本的定量估算
基本定量估算示例:
設 F為用功能點描述的軟件規模;
D1為在開發過程(提交之前)中發現的所有缺陷數;
D2為提交后發現的缺陷數;
D為發現的總缺陷數。
因此, D=D1+D2
對于一個應用軟件項目,則有如下計算方程式(可以從不同的角度估算軟件的質量):
質量=D2/F;
缺陷注入率=D/F;
整體缺陷清除率=D1/D;
同樣以上期中的CAD軟件為例,根據上期計算所得結果,功能點F為366,而在開發過程中發現了15個錯誤,提交后又發現了4個錯誤,則:
D1=15,D2=4
D=D1 +D2=15+4=19
質量(每功能點的缺陷數)=D2/F=4/366=0.0109
缺陷注入率=D/F=19/366=0.05191
整體缺陷清除率=D1/D=15/19=0.7895
有資料報告,美國的平均整體缺陷清除率目前只達到大約85%。而像AT&T、IBM、摩托羅拉和惠普這樣一些大公司的頂級項目,通過實施最佳實踐,其缺陷清除率可以超過99%。
眾所周知,清除軟件缺陷的難易程度是不同的。需求錯誤、規格說明、設計問題及錯誤修改是最難清除的。表1給出了美國平均缺陷的情況:
表2反映的是CMM五個等級是如何影響軟件質量的,其數據來源于美國空軍1994年委托SPR(美國一家著名的調查公司)進行的一項研究。
從表中可以看出,CMM級別越高,缺陷清除率也越高。
在監理過程中,可以將這這些標準或指標結合起來使用,用以辨明可能存在的質量問題。
2、對軟件需求的估算
假設在一個規約中有nr個需求,所以
nr=nf+nnf
其中,nf是功能需求的數目,nnf是非功能需求數目(例如性能)。
為了確定需求的確定性(無二義性),一種基于復審者對每個需求解釋的一致性的度量方法為:
Q1=nui/nr
其中,Q1表示需求的確定性,nui是所有復審者都有相同解釋的需求數目。當需求的模糊性越低時,Q1的值越接近1。
在CAD軟件的例子中,假設計算機圖形顯示功能模塊的功能性需求是10個,非功能性需求(響應速度和分辨率)是2個,所有復審者都有相同解釋的需求數目是11個,則:
Q1=11/12=0.916667
而功能需求的完整性Q2則可以通過計算以下比率獲得:
Q2=nu/(ni×ns)
其中,nu是唯一功能需求的數目,ni是由規約定義或包含的輸入(刺激)的個數,ns是被表示的狀態的個數。
Q2只是測度了一個系統所表示的必需的功能百分比,但是它并沒有考慮非功能需求。為了把這些非功能需求結合到整體度量中以求完整,必須考慮已有需求已經被確認的程度。這可以用Q3來表示:
Q3=nc/(nc+nnv)
其中,nc是已經確認為正確的需求的個數,nnv是尚未被確認的需求的個數。
在CAD軟件的例子中,假設數據庫管理功能模塊的唯一功能需求是10個,由規約定義或包含的輸入個數也是10個,表示的狀態的個數是1個,已經被確認的需求是8個,未被確認的需求是2個,則:
Q2=10/(10×1)=1.0
Q3=8 /(8+2)=0.8
3、估算驗收測試階段預期發現的缺陷數
。1)如果使用類似項目的數據,那么可以估計當前項目在驗收測試時發現缺陷數,它等于在類似項目的驗收測試階段發現的缺陷數和這個項目估計的工作量與類似的總工作量比率的乘積。用如下公式表示:
驗收測試缺陷的估計=驗收測試缺陷數×工作量估計/實際工作量
文章來源于領測軟件測試網 http://www.kjueaiud.com/