《軟體測試與持續質量改進》(第二版)一書是一本專門提供給軟體測試人員的指導書目,書中詳細列舉基本的軟體測試技巧,方便技術工作人員的操作。
基本介紹
- 書名:軟體測試與持續質量改進
- 作者:WilliamE.Lewis
- ISBN:9787115171610
- 定價:55.00元
- 出版社:人民郵電出版社
- 出版時間:2008年
- 開本:16
內容提要,圖書目錄,
內容提要
本書旨在為軟體測試過程提供一個質量框架,其目的是提出一個持續改進軟體質量的途徑,以提高測試效率。書中詳細列舉基本的軟體測試技巧,並基於一種持續改進過程介紹Deming的質量概念,將“計畫、執行、檢查、改進”(Plan,Do,Check,Act,PDCA)這樣一個“質量輪”引入軟體測試過程,闡述現代質量保證理論及最佳實踐方法。本書共分5個部分,分別從軟體質量、生命周期測試、軟體測試方法、測試項目管理、現代軟體測試工具的角度展開。此外,附錄中提供軟體測試過程中可能涉及的各種文檔的格式樣本,非常便於查閱和參考。
本書適合作為計算機及相關專業軟體測試課程的教材,也適合軟體測試領域的專業技術人員作為參考手冊。
圖書目錄
第一部分 軟體質量透視
第1章 質量保證框架 2
1.1 什麼是質量 2
1.2 預防與檢測 2
1.3 驗證與確認 3
1.4 軟體質量保證 4
1.5 質量保證的組成 5
1.6 軟體測試 5
1.7 質量控制 5
1.8 軟體配置管理 6
1.9 軟體配置管理的要素 6
1.10 組件確定 7
1.11 版本控制 7
1.12 配置構建 8
1.13 變更控制 8
1.14 軟體質量保證計畫 8
1.15 開發和實施軟體質量保證計畫的步驟 9
1.15.1 步驟1:編寫計畫 9
1.15.2 步驟2:獲得管理層認可 10
1.15.3 步驟3:獲得開發人員認可 10
1.15.4 步驟4:準備編寫SQA計畫 10
1.15.5 步驟5:執行SQA計畫 10
1.16 質量標準 10
1.16.1 ISO9000 11
1.16.2 能力成熟度模型 11
1.16.3 PCMM 13
1.16.4 CMMI 14
1.16.5 美國波多里奇國家質量獎 14
第2章 測試技術概述 16
2.1 黑盒測試(功能測試) 16
2.2 白盒測試(結構測試) 16
2.3 灰盒測試(功能與結構測試) 17
2.3.1 手工測試與自動測試 17
2.3.2 靜態測試與動態測試 17
2.4 軟體測試技術的分類 18
第3章 質量的持續改進過程 22
3.1 EdwardDeming的貢獻 22
3.2 統計方法的角色 22
3.2.1 因果圖 22
3.2.2 流程圖 23
3.2.3 帕累托圖 23
3.2.4 運行圖 23
3.2.5 直方圖 23
3.2.6 散布圖 23
3.2.7 控制圖 23
3.3 Deming的14條質量原則 23
3.3.1 第1條:樹立始終如一的目標 23
3.3.2 第2條:採用新的質量觀念 24
3.3.3 第3條:停止對大量檢查的依賴 24
3.3.4 第4條:結束僅靠價簽來激勵企業的實踐活動 24
3.3.5 第5條:堅持不懈地、永久地改進生產和服務系統 24
3.3.6 第6條:組織培訓及再培訓 25
3.3.7 第7條:確立領導職責 25
3.3.8 第8條:驅除恐懼 25
3.3.9 第9條:打破員工區域之間的柵欄 25
3.3.10 第10條:為員工解除口號、訓詞及目標 26
3.3.11 第11條:去除數位化目標 26
3.3.12 第12條:消除員工自豪感的障礙 26
3.3.13 第13條:組織有關教育和再培訓方面的強有力的課程 26
3.3.14 第14條:採取行動完成轉變 26
3.4 通過“計畫、執行、檢查、改進”實現持續改進 27
3.5 遵循PDCA循環 27
第二部分 生命周期測試概述
第4章 概述 30
4.1 瀑布式開發方法 30
4.2 “階段化”持續改進方法 31
4.3 生命周期測試的心理學 31
4.4 將軟體測試作為持續改進過程 31
4.5 測試的聖經:軟體測試計畫 33
4.6 制定測試計畫的主要步驟 34
4.6.1 步驟1:定義測試目標 35
4.6.2 步驟2:確定測試方法 35
4.6.3 步驟3:定義測試環境 35
4.6.4 步驟4:制定測試規約 35
4.6.5 確定測試日程表 35
4.6.6 評審及批准測試計畫 35
4.7 測試計畫的組成 35
4.8 將技術評審作為持續改進過程 37
4.9 技術評審的動機 38
4.10 評審的類型 38
4.11 結構化走查 38
4.12 審查 38
4.13 參與者角色 40
4.14 有效評審的步驟 40
4.14.1 步驟1:規劃評審過程 40
4.14.2 步驟2:安排評審進度 41
4.14.3 步驟3:制定評審議程 41
4.14.4 步驟4:創建評審報告 41
第5章 驗證需求階段 42
5.1 通過技術評審測試需求 43
5.2 審查和走查 43
5.3 檢查表 43
5.4 方法檢查表 43
5.5 需求可追溯性矩陣 44
5.6 制定系統/驗收測試計畫 44
第6章 驗證邏輯設計階段 46
6.1 數據模型、過程模型及其聯繫 46
6.2 通過技術評審測試邏輯設計 47
6.3 細化系統/驗收測試計畫 48
第7章 驗證物理設計階段 49
7.1 通過技術評審測試物理設計 49
7.2 創建集成測試用例 50
7.3 集成測試方法 50
7.3.1 步驟1:標識出單元接口 50
7.3.2 步驟2:全面協調接口 50
7.3.3 步驟3:創建集成測試條件 51
7.3.4 步驟4:評估集成測試條件的完整性 51
第8章 驗證程式單元設計階段 52
8.1 通過技術評審測試程式單元設計 52
8.2 順序結構 52
8.3 選擇結構 52
8.4 循環結構 52
8.5 編寫單元測試用例 53
第9章 代碼編寫階段的檢驗 54
9.1 用技術評審對代碼編寫進行測試 54
9.2 執行測試計畫 55
9.3 單元測試 55
9.4 集成測試 55
9.5 系統測試 56
9.6 驗收測試 56
9.7 缺陷記錄 56
第三部分 軟體測試方法
第10章 開發方法概述 60
10.1 生命周期開發的局限性 60
10.2 客戶端/伺服器架構的挑戰 60
10.3 客戶端/伺服器架構中螺旋測試的心理學 61
10.3.1 新思想 61
10.3.2 對測試人員/開發人員的理解 62
10.3.3 項目的目標:把質量保證和開發結合起來 62
10.3.4 疊代/螺旋式開發方法 63
10.4 JAD的角色 64
10.5 原型的角色 65
10.6 開發原型的方法 66
10.6.1 開發原型 66
10.6.2 向管理層演示原型 67
10.6.3 向用戶演示原型 67
10.6.4 修訂並定稿規約 67
10.6.5 開發產品系統 68
10.7 持續改進螺旋測試方法 68
第11章 信息收集(計畫) 71
11.1 步驟1:準備訪談 72
11.1.1 任務1:確定參加訪談的人 72
11.1.2 任務2:確定議程 72
11.2 步驟2:執行訪談 73
11.2.1 任務1:理解項目 73
11.2.2 任務2:理解項目的目標 73
11.2.3 任務3:理解項目的狀態 74
11.2.4 任務4:理解項目的計畫 75
11.2.5 任務5:理解項目的開發方法 75
11.2.6 任務6:確定高級業務需求 75
11.2.7 任務7:進行風險分析 76
11.3 步驟3:總結訪談成果 77
11.3.1 任務1:總結訪談 77
11.3.2 任務2:確認訪談成果 78
第12章 測試計畫(計畫) 79
12.1 步驟1:建立測試計畫 80
12.1.1 任務1:準備引言部分 80
12.1.2 任務2:定義總體的功能需求 81
12.1.3 任務3:確定手動/自動測試的種類 82
12.1.4 任務4:確定測試結束標準 82
12.1.5 任務5:制定回歸測試策略 83
12.1.6 任務6:定義測試交付物 84
12.1.7 任務7:組建測試團隊 85
12.1.8 任務8:建立測試環境 86
12.1.9 任務9:定義依賴關係 86
12.1.10 任務10:創建測試進度表 87
12.1.11 任務11:選擇測試工具 89
12.1.12 任務12:建立缺陷報告/跟蹤規程 89
12.1.13 任務13:建立變更請求規程 90
12.1.14 任務14:建立版本控制規程 91
12.1.15 任務15:定義配置構建規程 91
12.1.16 任務16:定義項目問題解決規程 91
12.1.17 任務17:建立報告規程 92
12.1.18 任務18:定義批准規程 92
12.2 步驟2:定義度量目標 92
12.2.1 任務1:定義度量標準 93
12.2.2 任務2:定義度量要點 93
12.3 步驟3:評審與批准測試計畫 95
12.3.1 任務1:評審的日程安排/執行 95
12.3.2 任務2:獲得批准 96
第13章 測試用例設計(執行) 97
13.1 步驟1:設計功能測試 97
13.1.1 任務1:完善功能測試需求 97
13.1.2 任務2:建立功能/測試矩陣 102
13.2 步驟2:設計圖形用戶界面測試 103
13.2.1 任務1:確定應用程式圖形用戶界面組件 103
13.2.2 任務2:定義圖形用戶界面測試 104
13.3 步驟3:定義系統/驗收測試 105
13.3.1 任務1:確定可能的系統測試 105
13.3.2 任務2:設計階段性系統測試 105
13.3.3 任務3:確定潛在的驗收測試 107
13.4 步驟4:測試設計的評審和批准 107
13.4.1 任務1:評審的日程安排/準備 107
13.4.2 任務2:獲得批准 107
第14章 測試開發(執行) 108
14.1 步驟1:開發測試腳本 108
14.1.1 任務1:開發自動/手動圖形用戶界面測試和功能測試腳本 108
14.1.2 任務2:開發自動/手動的階段性系統測試的腳本 109
14.2 步驟2:測試開發的評審和批准 109
14.2.1 任務1:評審的日程安排/準備 109
14.2.2 任務2:獲得批准 109
第15章 通過可追溯性實現測試覆蓋 111
15.1 用例和可追溯性 112
15.2 小結 113
第16章 測試執行/評價(執行/檢查) 114
16.1 步驟1:組織測試內容並進行測試 114
16.1.1 任務1:回歸測試上次螺旋過程中的缺陷 114
16.1.2 任務2:執行新螺旋測試中的手動/自動測試 115
16.1.3 任務3:記錄螺旋測試中發現的缺陷 115
16.2 步驟2:測試評價 115
16.3 步驟3:發布中期報告 116
16.3.1 任務1:重新安排測試進度表 116
16.3.2 任務2:確定需求變更 116
第17章 準備下次螺旋測試(改進) 118
17.1 步驟1:更新測試內容 119
17.1.1 任務1:更新功能/圖形用戶界面測試內容 119
17.1.2 任務2:更新階段性系統測試內容 119
17.1.3 任務3:更新驗收測試內容 119
17.2 步驟2:重新評價測試隊伍、規程、環境 119
17.2.1 任務1:評價測試隊伍 119
17.2.2 任務2:評審測試控制規程 120
17.2.3 任務3:更新測試環境 120
17.3 步驟3:發布中期測試報告 121
第18章 進行系統測試 123
18.1 步驟1:完成系統測試計畫 123
18.1.1 任務1:確定系統測試的類型 123
18.1.2 任務2:確定系統測試的日程安排 124
18.1.3 任務3:組建系統測試團隊 126
18.1.4 任務4:建立系統測試環境 126
18.1.5 任務5:安裝系統測試工具 127
18.2 步驟2:完成系統測試用例 127
18.2.1 任務1:設計/腳本化性能測試 127
18.2.2 任務2:設計/腳本化安全性測試 129
18.2.3 任務3:設計/腳本化容量測試 130
18.2.4 任務4:設計/腳本化壓力測試 130
18.2.5 任務5:設計/腳本化兼容性測試 131
18.2.6 任務6:設計/腳本化轉換測試 131
18.2.7 任務7:設計/腳本化易用性測試 131
18.2.8 任務8:設計/腳本化文檔測試 132
18.2.9 任務9:設計/腳本化備份測試 133
18.2.10 任務10:設計/腳本化恢復性測試 133
18.2.11 任務11:設計/腳本化安裝測試 133
18.2.12 任務12:設計/腳本化其他類型的系統測試 134
18.3 步驟3:系統測試的評審和批准 135
18.3.1 任務1:評審的日程安排/執行 135
18.3.2 任務2:獲得批准 135
18.4 步驟4:執行系統測試 135
18.4.1 任務1:對系統測試中的修正進行回歸測試 135
18.4.2 任務2:執行新的系統測試 135
18.4.3 任務3:記錄系統測試中發現的缺陷 136
第19章 進行驗收測試 137
19.1 步驟1:完成驗收測試計畫 138
19.1.1 任務1:確定驗收測試的類型 138
19.1.2 任務2:確定驗收測試的日程安排 138
19.1.3 任務3:組建驗收測試團隊 138
19.1.4 任務4:建立驗收測試環境 139
19.1.5 任務5:安裝驗收測試工具 139
19.2 步驟2:完成驗收測試用例 139
19.2.1 任務1:系統級別測試用例的子集 139
19.2.2 任務2:設計/腳本化附加的驗收測試 140
19.3 步驟3:驗收測試計畫的評審和批准 140
19.3.1 任務1:評審的日程安排/執行 140
19.3.2 任務2:獲得批准 140
19.4 步驟4:執行驗收測試 140
19.4.1 任務1:對驗收測試中的修正進行回歸測試 140
19.4.2 任務2:執行新的驗收測試 141
19.4.3 任務3:記錄驗收測試中發現的缺陷 141
第20章 總結/報告螺旋測試結果 142
20.1 步驟1:執行數據精簡 142
20.1.1 任務1:確保所有的測試均已執行/解決 142
20.1.2 任務2:通過測試編號整理測試缺陷 143
20.1.3 任務3:將剩餘的缺陷寫入一個矩陣 143
20.2 步驟2:準備最終的測試報告 143
20.2.1 任務1:準備項目概述 143
20.2.2 任務2:總結測試活動 143
20.2.3 任務3:分析/創建度量圖 144
20.2.4 任務4:總結測試成果/建議 148
20.3 步驟3:最終測試報告的評審和批准 149
20.3.1 任務1:評審的日程安排/執行 149
20.3.2 任務2:獲得批准 150
20.3.3 任務3:發布最終的測試報告 150
第四部分 測試項目管理
第21章 項目管理概述 152
21.1 定義目標 152
21.2 定義項目範圍 152
21.3 識別關鍵活動 153
21.4 正確地估算 153
21.5 設計 153
21.6 人員管理 153
21.6.1 領導力 153
21.6.2 溝通 154
21.6.3 解決問題 154
21.6.4 持續監控 154
21.6.5 變更管理 155
第22章 測試項目管理 156
22.1 理解需求 156
22.2 測試規劃 157
22.3 測試執行 157
22.4 識別及改進過程 157
22.5 測試項目經理的基本特質 158
22.5.1 需求分析 158
22.5.2 差距分析 158
22.5.3 開發測試用例時要進行橫向思考 158
22.5.4 避免重複 158
22.5.5 測試數據生成 158
22.5.6 確認測試環境 159
22.5.7 帶著破壞目的去測試 159
22.5.8 分析測試結果 159
22.5.9 毫不猶豫地接受別人的幫助 159
22.5.10 出現問題時將它們轉移 159
22.5.11 增強溝通 159
22.5.12 不斷更新自身的業務知識 159
22.5.13 學習新的測試技術和工具 160
22.5.14 提交質量 160
22.5.15 過程改進 160
22.5.16 創建知識庫 160
22.5.17 重獲成功 160
第23章 測試評估 161
23.1 測試評估中的關鍵活動 163
23.1.1 測試範圍文檔 163
23.1.2 測試策略 163
23.1.3 測試條件 163
23.1.4 測試用例 164
23.1.5 測試腳本 164
23.1.6 執行/運行計畫 164
23.2 影響測試評估的因素 164
23.3 測試計畫評估 164
23.4 測試執行與控制工作量 165
23.5 測試結果分析 165
23.6 工作量估算——項目模型 166
第24章 缺陷監控及管理過程 169
24.1 缺陷報告 170
24.2 缺陷會議 170
24.3 缺陷分類 170
24.4 缺陷的優先權 171
24.5 缺陷的種類 171
第25章 測試與開發方法的整合 173
25.1 步驟1:組建測試團隊 173
25.2 步驟2:確定將要整合的測試步驟及任務 174
25.3 步驟3:自定義測試步驟及任務 174
25.4 步驟4:選擇整合要點 174
25.5 步驟5:修改開發方法 174
25.6 步驟6:合併缺陷記錄 174
25.7 步驟7:對測試方法的使用進行培訓 175
第26章 本土/離岸模型 176
26.1 步驟1:分析 176
26.2 步驟2:確定經濟上的得失 176
26.3 步驟3:確定選擇標準 177
26.4 項目管理和監控 177
26.5 外包方法 177
26.5.1 本土活動 178
26.5.2 離岸活動 178
26.6 實現本土/離岸模型 179
26.6.1 知識轉移 179
26.6.2 詳細設計 179
26.6.3 基於里程碑的轉移過程 179
26.6.4 穩定狀態 179
26.6.5 套用管理 179
26.6.6 關係模型 180
26.7 本土/離岸方法的收益 181
26.8 本土/離岸模型的未來 183
第五部分 現代軟體測試工具
第27章 軟體測試簡史 186
27.1 自動測試工具的發展 188
27.1.1 靜態錄製/回放工具(不附帶腳本語言) 189
27.1.2 靜態錄製/回放工具(具有腳本語言) 189
27.1.3 可變的錄製/回放工具 189
27.2 軟體測試和開發的歷史比較 191
第28章 軟體測試趨勢 193
28.1 自動錄製/回放測試工具 193
28.2 測試用例建立工具 193
28.3 領先的自動測試工具 194
28.4 領先的測試用例生成工具 195
28.5 必要條件和充分條件 195
28.6 測試數據/測試用例的生成 195
28.6.1 生產數據抽樣 196
28.6.2 從零開始 196
28.6.3 數據播種 196
28.6.4 根據資料庫生成數據 197
28.6.5 根據需求生成測試數據/測試用例 197
第29章 測試工具的分類 199
29.1 測試工具選擇檢查表 199
29.2 廠商工具描述 199
29.3 需要使用測試自動化的情況 205
29.4 不需要使用測試自動化的情況 205
第30章 自動測試工具的評價方法 207
30.1 步驟1:定義你的測試需求 207
30.2 步驟2:設定工具的目標 207
30.3 步驟3a:非正式採購模式下的選擇活動 207
30.3.1 任務1:制定採購計畫 207
30.3.2 任務2:定義選擇標準 208
30.3.3 任務3:確定候選工具 208
30.3.4 任務4:進行候選工具評審 208
30.3.5 任務5:為候選工具打分 208
30.3.6 任務6:選擇工具 208
30.4 步驟3b:正式採購模式下的選擇活動 209
30.4.1 任務1:制定採購計畫 209
30.4.2 任務2:創建技術需求文檔 209
30.4.3 任務3:評審需求 209
30.4.4 任務4:生成請求建議 209
30.4.5 任務5:簡化建議 209
30.4.6 任務6:進行技術評估 209
30.4.7 任務7:選擇工具源 209
30.5 步驟4:採購測試工具 210
30.6 步驟5:制定評價計畫 210
30.7 步驟6:制定工具經理計畫 210
30.8 步驟7:創建培訓計畫 210
30.9 步驟8:接收工具 210
30.10 步驟9:執行驗收測試 211
30.11 步驟10:召開推介會議 211
30.12 步驟11:實施修改 211
30.13 步驟12:培訓工具的用戶 211
30.14 步驟13:在操作環境中使用工具 211
30.15 步驟14:撰寫評價報告 212
30.16 步驟15:確定目標是否實現 212
附錄A 螺旋測試法 213
附錄B 軟體質量保證計畫 221
附錄C 需求規約 222
附錄D 變更請求表 224
附錄E 測試模板 225
附錄F 檢查表 251
附錄G 軟體測試技術 281
參考文獻 325
術語表 331
索引 334
……