軟體質量保證與測試(秦航第二版)筆記 第三章
軟體質量度量和配置管理
3.1 概述
軟體度量
在軟體開發中,==軟體質量度量的根本目的是為了管理的需要。利用度量來改進軟體過程。人們是無法管理不能度量的事物。
對於未知的事物,度量用於預測。(軟體度量的成果是非常初步的,還需要大量工作才可能真正地做到實用化,但它的實用化成就將對軟體的高質量和告訴發展有不可估量的影響。
3.1.1 度量
Measure:度量(名詞),是根據一定的規則賦予軟體過程或產品屬性的數值或類別。數值時對軟體產品、軟體過程的特徵的量化技術的結果,類別是特徵的定性表示。
Measure:度量(動詞),按照度量過程定義,對軟體過程或軟體產品實施度量,表示實際的動作。
Measurement:測量,是按照一定的尺度用度量(名詞)給軟體質量實體屬性賦值的過程。它強調對軟體實體屬性進行量化的過程性,是提取軟體過程或軟體產品屬性的度量(名詞)的過程。它所蘊含的內容是度量的過程,度量過程可分為評估度量的過程和直接度量的過程,評估度量的過程是對計劃實施度量的過程,直接度量的過程是在實施專案過程中收集資料和分析資料的過程。
Indicator:指示器,或稱為指標。是用於評價或預測其他度量的度量。指示器是一個或多個度量的綜合,是對軟體產品或軟體過程某一方面特徵的反映。不同的度量目的,有不同的度量指示器選擇。在具體的實施過程中,可操作的度量成千上萬,應選擇最能反映當時度量環境的指標作為度量指示器。
3.1.2 軟體度量
軟體度量或者說軟體工程度量領域是一個在過去30多年研究非常活躍的軟體工程領域。
同態對映包括所有關係和結構對映。
軟體品質和軟體度量成直對關係。這是度量和軟體度量的根本理念。
3.1.3 軟體度量的作用
可度量性是學科是否高度成熟的一大標誌,度量使軟體開發逐漸趨向專業、標準和科學。
儘管人們覺得軟體度量比較難操作,且不願意在度量上花費時間和精力,甚至對其持懷疑態度,但是這無法否認軟體度量的作用。
軟體工程研究所在《軟體度量指南》中認為,軟體度量在軟體工程中的作用有三:
通過軟體度量增加理解;
通過軟體度量管理軟體專案,主要是計劃和估算、跟蹤和確認;
通過軟體度量指導軟體過程改善,主要是理解、評估和包裝。軟體度量對於不同的實施物件,具有不同的效用。
3.2 軟體質量度量
角色 | 度量效果 |
---|---|
軟體公司 | 改善產品質量;改善產品交付;提高產品交付;提高生產能力;降低生產成本;建立專案估算的基線;瞭解使用心得軟體工程方法和工作的效果和效率;提高客戶滿意度;創造更多利潤; |
專案經理 | 分析產品的錯誤和缺陷;評估現狀;建立估算的基礎;確立產品的複雜度;建立基線;從實際上確定最佳實踐 |
軟體開發人員 | 可建立更加明確的作業目標;可作為具體作業中的判斷標準;便於有效把握自身的軟體開發專案;便於在具體作業中實施漸進性軟體開發改善活動 |
3.2.1 軟體質量和軟體質量要素
對於軟體質量,CMM的定義是:
一個系統、元件或過程符合特定需求的程式;
一個系統、元件或過程符合客戶或使用者的要求或期望的程度。
3.2.2 影響軟體質量的因素
軟體業通過多年的實踐,總結出軟體質量是人、過程和技術的函式,即Q={M,P,T}。其中,Q表示軟體質量,M表示人,P表示過程,T表示技術。
軟體複雜性隨軟體需求和軟體質量的提升而提升,軟體技術的提升又隨時間變化與軟體需求的提升有著差距。
3.2.3 質量保證模型
McCall模型
Boehm模型
FURPS模型
ISO9126
McCall模型
正確性 | 一個程式滿足她的需求規約和實現使用者任務目標的程度。 |
可靠性 | 一個程式滿足一所需的精確度完成它的預期功能的程度。 |
效率 | 一個程式完成其功能所需的計算資源和程式碼的度量。 |
完整性 | 對未授權人員訪問軟體或資料的可控制程度。 |
可用性 | 學習、操作。準備輸入和解釋程式輸出所需的工作量。 |
可維護性 | 定位和修復程式中一個錯誤所需的工作量。 |
靈活性 | 修改一個執行的程式所需的工作量 |
可測試性 | 測試一個程式以確保她完成所期望的功能所需的工作量 |
可移植性 | 把一個程式從一個硬體和或軟體系統環境移植到另一個環境所需要的工作量 |
可複用 | 一個程式可以在另外一個應用程式中複用的程度 |
互連性 | 連線一個系統和另一個系統所需的工作量 |
產品修正:可維護性、可測試性、靈活性。
產品轉移:互聯性、可移植性、可複用性。
產品執行:正確性、可使用性、完整性、可靠性、效率。
使用者 管理員 開發者三方面聯絡。
Boehm模型
Boehm模型著手於軟體總體的功效。
總功效可以被分解成可移植性、有效性、可維護性。
有效性可以細分為可靠性、效率,執行工程可維護性可以細分為測試性,可理解性,可修改性。
FURPS模型
功能性 | 通過評價特徵集和程式的能力、交付函式的通用性和整體系統的安全性來評估 |
可用性 | 通過考慮人的因素、整體美學、一致性和文件來評估 |
可靠性 | 通過度量錯誤的頻率和嚴重程度、輸出結果的準確度、平均失效時間間隔、從失效恢復的能力、程式的可預測性來評估 |
效能 | 通過側度處理速度、響應時間、資源消耗、吞吐量和效率來評估 |
支援度 | 包括擴充套件程式的能力可擴充套件性、可適應性和服務型這三個屬性代表了一個更一般的概念——可維護性、以及可測試性、相容度、可配置型組織和控制軟體配置的元素的能力、一個系統可以被安裝的容易程度、問題可以被區域性化的容易程度 |
ISO9126
功能性 | 適合性、準確性、互操作性、依從性、安全性 |
可靠性 | 成熟性、容錯性、可恢復性 |
可用性 | 可理解性、易學性、可操作性 |
效率 | 時間特性、資源特性 |
可維護性 | 可分析性、可改變性、穩定性、可測試性 |
可移植性 | 適應性、可安裝性、一致性、可替換性 |
3.2.4 缺陷排除效率
==缺陷排除效率(DRE)==在專案級和過程級中都能提供有益的質量度量。
當把一個專案作為一個整體來考慮時。DRE=E/(E+D)
E:軟體交付給終端使用者之前所發現的錯誤數。
D:軟體交付之後所發現的缺陷數。
3.3 軟體過程度量
3.3.1 軟體過程度量概念
軟體過程度量是對軟體過程進行度量的定義、方法、活動和結果的集合。
~軟體過程度量不是單一的活動而是一組活動的集合,它本身也是一個系統的過程。
與任何系統的過程一樣,它包括確定需求、制定計劃、執行和結果分析等一系列完整的步驟。
軟體過程度量通常包括如下的活動:
選擇和定義度量、制定度量計劃、收集資料、執行度量分析、評估過程效能、根據評估結果採取相應措施等。
軟體過程度量包括如下的活動:選擇和定義度量、制定度量計劃、收集資料、執行度量分析、評估過程效能、根據評估結果採取相應措施
軟體過程度量概念
軟體過程度量的目標
軟體過程度量的物件
軟體過程度量的方法
軟體過程度量的結果
產品度量內容,可以是過程度量內容的一部分,因為對產品的度量結果是對產品的評價,而產品又是過程的結果,產品的好壞,體現了過程的好壞。
3.3.2 軟體過程度量常見問題
度量的太多、太頻繁
度量的太少、太遲
度量了不正確的事物或屬性
度量的定義不正確
收集了資料卻沒有利用
錯誤的解釋度量資料
自動化工具欠缺
3.3.3 基於目標的軟體過程度量方法
GQM模型是一種層次狀結構,最上層,是一個目標,對該目標細化就得到幾個問題,構成問題層。
這幾個問題,將關注的方面分解為幾個部分。
ISSUES:度量物件的質量重點
VIEWPIONT:資訊使用者
OBJECT:要度量物件
PURPOSES:一般是理解、控制和改進要度量的物件。
獲得問題,從以下幾個方面來考慮
對於特定目標陳述中的物件,應該抓住那些可以量化的特徵?
結合模型中的側重點,這些特徵應該怎麼來描述?
結合模型中的側重點,應該如何評價度量物件的這些特徵?
選擇資料項時,至少要考慮一下幾個方面
現有資料的有效性,儘量利用現有資料,實在沒有相關資料積累或者現有資料的可靠性太差,也要少選、精選需要進行採集的資料項。
度量物件的穩定性,對於成熟、穩定的物件,多應用客觀度量。
GQM建模的漸進性GQM建模是一個持續改進的過程。
GQM分解樣例
||GQM||
|目標|用途|控制、改進|
||物件|同行評審過程|
||側重點|能力|
||需求方|過程改進人員|
||環境|符合CMMI4要求的研發規範|
3.4 軟體配置管理
軟體配置管理作為CMM 2級的一個關鍵域(KPA)
軟體配置管理是貫穿於整個軟體過程中的保護性活動,它被設計來:
標識變化;
控制變化;
保證變化被適當地實現;
向其他可能有興趣的人員報告變化。
3.4.1 軟體配置管理的目標
軟體配置管理是貫穿整個軟體生命週期中建立和維護專案產品的完整性
基本目標包括:
軟體配置管理的各項工作是有計劃進行的。
被選擇的專案產品得到識別,控制並且可以被相關人員獲取、已識別出的專案產品的更改得到控制
使相關組別和個人及時瞭解軟體基準的狀態和內容
3.4.2 軟體配置管理角色職責
專案經理(PM)
配置控制委員會(CCB)
配置管理員(CMO)
系統整合員(SIO)
開發人員(DEV)
3.4.3 軟體配置管理過程描述
專案計劃階段
CCB根據專案的開發計劃確定各個里程碑和開發策略;
CMO根據CCB的規劃,指定詳細的配置管理計劃,交CCB稽核;
CCB通過配置管理計劃後交專案經理批准,釋出實施。
專案開發階段
主要由CMO完成的管理和維護工作;
由SIO和DEV具體執行軟體配置管理策略;
變更流程。
3.4.4 軟體配置管理的關鍵活動
SCM任務的定義
配置項識別
工作空間管理
版本控制
變更控制
配置審計
狀態報告
3.4.5 常用的軟體配置管理工具
VSS的主要方法
新增專案
瀏覽Source Safe Server中的檔案
設定工作資料夾
下載最新版本檔案到本地機
上傳檔案到伺服器操作
undo check out操作
edit操作
檢視檔案的歷史內容
關於source safe的許可權
關於password的更改
VSS的使用
目前,使用配置管理工具,可以分為3個級別:
- 簡單的版本控制工具,是入門級的工具:CVS,VSS
- 第二級別,即專案級配置管理工具,適合管理中小型的專案:PVCS,MKS;
- 第三級別,即企業級配置管理工具,具有強大的過程管理功能,如CCC、Harvest ClearCase;
3.5 小結
測量使得管理者和開發者能夠改善軟體過程;輔助軟體專案的計劃、跟蹤及控制;評估產生的產品的質量。
~對過程、專案以及產品的特定屬性的測量被用於計算軟體度量。
~分析這些度量可產生知道軟體及技術行為的指標。
過程度量使得一個組織能夠從戰略級洞悉一個軟體過程的功效。
~專案度量是戰術的,是的專案管理者能夠以實時的方式改進專案的工作流程及技術方法。
軟體配置管理涵蓋了整個軟體的開發過程,因此是改進我們的軟體過程,提高過程能力成熟度的理想的切入點。