內容簡介
本書從軟體質量管理的流程和技術方法等方面對軟體質量管理體系進行了詳盡的講述,並對 日常工作中的案例進行剖析,使廣大軟體質量管理人員能夠更加清楚地了解和掌握軟體質量管理 的精髓。
本書以CMMI軟體能力成熟度模型為主線,穿插了PMP項目管理和軟體測試技術的相關知識,從而形成了一套完整的軟體質量管理理論。因此,本書是軟體企業進行過程改進或CMMI認證的輔導資料,同樣也可以作為PMP和“信息類項目管理師”考試的補充材料。
前言
軟體質量管理是個全組織、多角色共同參與的、複雜的系統過程,好的軟體質量是各級軟體管理人員孜孜追求的最高夢想。
軟體質量管理體系的知識涵蓋了軟體工程、CMMI軟體能力成熟度模型、PMP項目管理以及軟體測試技術的理論。其中,軟體工程主要介紹了各種生命周期模型,這是軟體研發和質量管理的基礎,也是CMMI軟體能力成熟度模型和PMP項目管理理論中非重點介紹的內容;PMP項目管理理論適用於任何行業的項目管理工作,它詳細介紹了制定項目估算、預算的方法,以及制定項目進度計畫的各種技術,這些是CMMI軟體能力成熟度模型和軟體工程的重要補充;CMMI軟體能力成熟度模型是當今最流行的一種對軟體企業成熟度的評判標準,它所涵蓋的內容之廣及體系之完整都是前所未有的。CMMI將軟體的管理過程拆分為多個PA(過程域),並詳細介紹了每個PA所需要完成的工作、流程以及流程中必備的產出物,它是軟體質量管理中的核心部分。但CMMI軟體能力成熟度模型著重於過程的定義,有些具體的操作方法和技術就必須參考PMP項目管理理論或軟體測試理論的相關知識。軟體測試一直以來都被很多人誤解為等同於軟體質量管理,多樣的軟體測試技術正是CMMI軟體能力成熟度模型VER(驗證)的重要補充內容。總的來說,軟體工程中生命周期模型好比蓋房子時打下的地基,CMMI軟體能力成熟度模型就是房子的框架結構,PMP項目管理以及軟體測試技術的理論就是填充房子的磚石,而蓋好的這座房子就是軟體質量管理體系。
本書以CMMI軟體能力成熟度模型為主線,第1章對軟體質量管理體系進行了概述,第2~4章介紹了軟體質量管理所必備的常用技術“驗證”、“確認”和“同行評審”;第5~8章介紹軟體質量管理的基礎管理流程“質量保證”、“配置管理”、“度量管理”和“風險管理”的知識;第9~11章介紹軟體項目管理相關的“項目集成管理”、“項目計畫”和“項目監控”的知識;第12~14章介紹了軟體質量管理體系的“需求工程”、“決策分析”和“產品集成”的理論;第15章重點介紹了如何進行持續的質量改進,第16章為廣大讀者講解了微軟最新的軟體項目工具“Team Foundation Server”的基本使用方法。
為了讓廣大讀者更好地理解軟體質量管理的理論,本書在每章的結束都針對軟體項目研發過程中的常見問題進行案例分析,目的是為了將軟體質量管理體系的知識與實際項目進行聯繫,更好地讓軟體各級管理人員進行理解和套用。
本書總結了當今軟體質量管理所需要的全部知識,其中重點介紹的CMMI軟體能力成熟度模型可以為軟體公司高層管理人員和過程改進小組(EPG)的工作提供幫助;PMP項目管理的相關技術可以為軟體公司的項目管理人員提供日常的項目指導並作為PMP考試的參考資料;每章的案例分析也採取了“信息類項目管理師”的考試形式,希望可以為參加“信息類項目管理師”考試的朋友提供幫助。
這些年來我一直希望可以將總結的軟體質量管理的知識和理論與大家分享,本書能夠順利出版首先要感謝51Testing所提供的機會,也要感謝各位編輯的辛勤勞動。同時還要感謝長期以來支持我的朋友和我的妻子蔡覓女士,你們是我成長的最大動力!
作 者
2009年5月28日於蘇州
目錄
第1章 軟體質量管理體系概述 1
1.1 軟體質量複雜度的來源 2
1.2 “過程”在軟體研發中的重要性 3
1.3 小結 7
1.4 思考題 7
第2章 軟體質量管理的檢查方式——驗證 8
2.1 軟體驗證的最佳實踐 9
2.2 軟體質量大師的觀點 13
2.3 常用的驗證方法 15
2.3.1 邊界值測試 16
2.3.2 白盒測試 17
2.3.3 等價類分法 23
2.3.4 壓力測試 24
2.4 案例分析——如何計算系統的並發用戶數31
2.5 小結 32
2.6 思考題 32
第3章 軟體質量管理的信任機制——確認 33
3.1 軟體確認管理的概述 34
3.2 軟體確認流程及最佳實踐 35
3.2.1 確認的準備工作 35
3.2.2 執行確認 41
3.3 軟體確認過程中常見問題及案例分析 41
3.3.1 為什麼開發和測試之間總是反覆 42
3.3.2 確認是對需求變更的約束 43
3.4 小結 44
3.5 思考題 44
第4章 軟體質量管理的預防手段——同行評審 45
4.1 軟體同行評審的概述 45
4.2 軟體同行評審流程及最佳實踐 47
4.2.1 同行評審計畫階段 47
4.2.2 同行評審啟動階段 52
4.2.3 同行評審執行階段 55
4.2.4 同行評審收尾階段 56
4.2.5 同行評審流程裁剪指南 56
4.2.6 同行評審最佳實踐 58
4.3 軟體同行評審常見問題及案例分析 59
4.3.1 案例1——如何提高同行評審的效果 59
4.3.2 案例2——如何計算同行評審的投資回報率 61
4.3.3 案例3——如何更好地執行同行評審 62
4.4 小結 62
4.5 思考題 62
第5章 軟體質量管理的審計體系——質量保證 63
5.1 軟體質量保證概述 64
5.1.1 PPQA與SQC的區別 65
5.1.2 軟體質量保證人員的素質和責任 68
5.1.3 軟體質量保證人員與其他崗位的關係 70
5.2 軟體質量保證流程及最佳實踐 71
5.2.1 對軟體研發過程的審計 71
5.2.2 對軟體工作產品的審計 73
5.3 軟體質量保證常見問題及案例分析 76
5.4 小結 79
5.5 思考題 79
第6章 軟體質量管理的基石——配置管理 80
6.1 軟體配置管理概述 81
6.2 軟體配置管理流程及最佳實踐 82
6.2.1 建立基線 83
6.2.2 配置庫及工具 91
6.2.3 跟蹤和控制變更 104
6.2.4 建立基線完整性 107
6.3 利用分支與合併進行軟體配置管理工作 111
6.4 小結 112
6.5 思考題 113
第7章 軟體質量管理的客觀洞察力——度量管理 114
7.1軟體度量管理概述 115
7.1.1 測量的基礎知識 115
7.1.2 度量的基礎知識 116
7.2 軟體度量管理流程及最佳實踐 117
7.2.1 軟體度量的目標 117
7.2.2 軟體度量的實體與屬性 120
7.2.3 軟體度量的方法 121
7.2.4 軟體度量的指示器 123
7.2.5 軟體度量管理的流程 126
7.3 軟體度量管理常見問題及案例分析 126
7.3.1 如何提高軟體度量的準確性 126
7.3.2 從哪裡可以收集到度量所需的數據 128
7.4 小結 129
7.5 思考題 129
第8章 軟體質量管理的預警措施——風險管理 130
8.1軟體風險管理的概述 131
8.1.1 風險的類型 131
8.1.2 風險的來源 132
8.1.3 風險的應對策略 134
8.2 軟體風險管理流程及最佳實踐 134
8.2.1 建立組織級風險庫 135
8.2.2 識別項目風險、定義風險的屬性 137
8.2.3 分析風險並對風險進行排序 138
8.2.4 風險的跟蹤 141
8.3 軟體風險管理常見問題及案例分析 142
8.3.1 為什麼風險識別總不準確 142
8.3.2 為什麼項目計畫總是不準確 143
8.3.3 如何在項目中進行風險跟蹤143
8.4 小結 144
8.5 思考題 144
第9章 軟體質量管理的統籌規劃——
第9章 項目集成管理 145
9.1 項目整體策劃的流程及最佳實踐 147
9.2 XP極限式開發模型與CMMI的比較 154
9.3 小結 155
9.4 思考題 155
第10章 軟體質量管理的策劃——項目計畫 156
10.1軟體項目計畫概述 159
10.2 軟體計畫的流程及最佳實踐 161
10.2.1 對項目進行整體估算 161
10.2.2 對項目範圍進行管理 166
10.2.3 建立時間進度計畫 190
10.2.4 建立項目費用預算 200
10.2.5 計畫項目的其他內容 203
10.2.6 建立項目計畫的基準 204
10.3 軟體計畫的常見問題及案例分析 204
10.3.1 假設是項目計畫的根本條件 204
10.3.2 關鍵路徑的計算之案例1 205
10.3.3 關鍵路徑的計算之案例2 206
10.4 小結 206
10.5 思考題 206
第11章 軟體質量管理的監督手段——項目監控 207
11.1 軟體監控管理流程及最佳實踐 208
11.1.1 監控項目的主要參數 208
11.1.2 監控項目的次要參數 211
11.1.3 監控項目的方法 214
11.2 軟體監控管理常見問題及案例分析 218
11.2.1 項目參數之間存在相互的影響和依賴 218
11.2.2 掙值法在軟體項目中的套用 219
11.3 小結 221
11.4 思考題 221
第12章 軟體質量管理的根源——需求工程 222
12.1 軟體需求工程概述 223
12.2 軟體需求開發的流程及最佳實踐 224
12.2.1 需求調研的方法 225
12.2.2 軟體需求分析的概述 228
12.2.3 軟體需求規格化 231
12.2.4 需求驗證及確認方法 238
12.3軟體需求管理的流程及最佳實踐 244
12.4 軟體需求工程常見問題及案例分析 248
12.4.1 對需求關鍵干係人分析的重要性 248
12.4.2 調研時需求關鍵干係人不能被代替 249
12.4.3 需求文檔規範化與XP極限式開發的理念
12.4.3 是否矛盾 249
12.4.4 利用需求跟蹤矩陣來應對項目變更 250
12.5 小結 251
12.6 思考題 251
第13章 軟體質量管理的群體決議機制——
第13章 決策分析 252
13.1 軟體決策分析概述 253
13.2 軟體決策分析流程及最佳實踐 254
13.3 軟體決策分析常見問題及案例分析 259
13.3.1 決策樹的使用方法 259
13.3.2 加權打分的決策方法 261
13.4 小結 263
13.5 思考題 263
第14章 軟體質量管理的構建機制——產品集成 264
14.1 軟體產品集成管理概述 265
14.2 軟體產品構建的流程及最佳實踐 266
14.2.1 軟體產品集成的準備工作 266
14.2.2 確保軟體產品接口的完整性 272
14.2.3 集成並交付產品 276
14.2.4 通過日構建來實現持續集成 279
14.2.5 日構建工具NAnt的使用 283
14.3 軟體產品集成管理常見問題及案例分析 295
14.3.1 在配置管理下如何開展產品集成 295
14.3.2 產品集成的順序與項目進度計畫的關係 296
14.4 小結 296
14.5 思考題 297
第15章 軟體質量的持續改進 298
15.1 組織過程改進的焦點 299
15.1.1 確定過程改進的需要 299
15.1.2 計畫和執行過程改進 304
15.2 定義組織標準過程的最佳實踐 309
15.2.1 建立組織級標準過程和組織財富庫309
15.2.2 定義生命周期模型 311
15.2.3 定義裁剪指南 319
15.2.4 建立組織級度量庫和工作環境 326
15.3 組織培訓的最佳實踐 328
15.3.1 建立組織培訓的能力 328
15.3.2 實施培訓 332
15.4 案例分析在實際工作中如何把握質量改進的時機 334
15.5 小結 334
15.6 思考題 334
第16章 TFS在軟體研發中的套用 335
16.1 TFS的拓撲結構 336
16.2 TFS團隊項目功能簡介 340
16.2.1 創建工作項 341
16.2.2 添加查詢視圖 345
16.2.3 原始碼管理 347
16.2.4 項目門戶 351
16.3 Team Build 358
16.4 小結 360
附錄A 思考題答案 361