內容簡介
隨著軟體套用越來越廣泛,如何提高軟體的質量和可靠性成為軟體工作者必須應對的挑戰。而軟體本身具有“看不見摸不著”的特點,使對軟體的驗證和測試與對其他產品的驗證和測試大相逕庭。書中涉及的項目實例多為作者及所在團隊參與的課題,具有很強的指導和借鑑意義。希望讀者能夠從這本書中獲取足夠的軟體測試知識,成為合格的軟體測試工作者。
目錄
第1篇 入門篇
第1章 軟體測試的基本概念 1
1.1 軟體測試的定義 1
1.1.1 軟體測試定義的發展 1
1.1.2 對軟體測試的正確認識 2
1.1.3 軟體測試概念的深入理解 9
1.1.4 軟體測試定義的再討論 13
1.2 軟體測試的概念模型 14
1.2.1 測試目標 14
1.2.2 測試對象 20
1.2.3 測試依據 21
1.2.4 缺陷定義 21
1.2.5 測試解決方案 24
1.2.6 測試結果 25
1.3 軟體測試的分類 25
1.3.1 測試目標的實例化 25
1.3.2 測試對象的實例化 26
1.3.3 測試依據的實例化 26
1.3.4 測試方案的實例化 26
第2章 軟體測試的基本方法 28
2.1 審查技術概論 29
2.2 代碼審查技術 30
2.2.1 幾個基本概念 30
2.2.2 代碼審查的依據 31
2.2.3 代碼審查的要求 32
2.2.4 代碼審查的結果 33
2.2.5 代碼審查的文檔 36
2.2.6 代碼審查的策略 38
2.3 文檔審查技術 41
2.3.1 目的與內容 41
2.3.2 文檔審查的流程 43
2.3.3 文檔審查的策略 44
2.4 自動化靜態測試技術 47
2.4.1 基於模式(規則)的靜態代碼分析 47
2.4.2 程式的靜態結構分析 49
2.4.3 代碼度量計算 51
2.4.4 自動化靜態測試技術的使用策略 52
2.4.5 使用自動化工具進行靜態測試 53
2.5 白盒測試技術 54
2.5.1 邏輯覆蓋測試 54
2.5.2 基本路徑測試 57
2.5.3 循環結構測試 59
2.5.4 程式插樁測試 60
2.5.5 白盒測試方法的綜合使用策略 60
2.6 黑盒測試技術 61
2.6.1 功能分解法 61
2.6.2 等價類劃分法 61
2.6.3 邊界值分析法 62
2.6.4 因果圖方法 62
2.6.5 隨機測試方法 66
2.6.6 猜錯法 66
2.6.7 黑盒測試方法的綜合使用策略 66
第3章 軟體測試的框架表示 67
3.1 測試框架的概念 67
3.2 測試框架的表述 69
3.2.1 原則層 69
3.2.2 結構層 70
3.2.3 細節層 70
3.3 測試框架的特徵與優勢 70
3.4 測試框架的質量 71
3.5 基於測試框架的軟體測試 72
3.5.1 基於測試框架的軟體測試過程 72
3.5.2 測試框架的擴展 73
3.5.3 測試框架的實例化 74
3.6 測試框架的設計 74
3.6.1 設計原則 74
3.6.2 測試框架的設計方法 75
第2篇 提高篇
第4章 軟體測試過程 77
4.1 軟體的生命周期模型 77
4.1.1 瀑布模型 77
4.1.2 V模型 78
4.1.3 螺旋模型 79
4.1.4 統一的軟體開發過程 80
4.2 軟體開發與軟體測試 84
4.2.1 軟體測試的生存周期模型 84
4.2.2 軟體測試的分級 84
4.2.3 全生命周期測試的基本原則 85
4.3 軟體測試過程模型 86
4.3.1 測試策劃 86
4.3.2 測試設計與實現 90
4.3.3 測試執行 93
4.3.4 測試總結 94
第5章 軟體單元測試及實踐 96
5.1 基本概念 96
5.2 單元測試的目標 96
5.2.1 單元測試的要求 96
5.2.2 單元測試的內容 96
5.3 單元測試的策略 98
5.3.1 靜態與動態結合的測試 98
5.3.2 單元測試中的覆蓋率 98
5.3.3 單元測試的自動化意義 100
5.3.4 單元測試與項目開發 100
5.3.5 單元測試中的功能測試 101
5.3.6 嵌入式軟體單元測試 101
5.4 單元測試的過程 104
5.4.1 單元測試的計畫 104
5.4.2 單元測試的設計 106
5.4.3 單元測試的執行 107
5.4.4 單元測試的結果分析 107
5.5 單元測試環境 108
5.5.1 單元測試自動化 108
5.5.2 單元測試工具概論 109
5.6 單元測試的實踐 109
5.6.1 一段實例代碼 110
5.6.2 單元測試策劃 113
5.6.3 單元測試設計 115
5.6.4 單元測試報告 118
第6章 軟體集成測試及實踐 119
6.1 集成測試的要求與內容 119
6.1.1 集成測試的要求 119
6.1.2 集成測試的內容 119
6.2 集成測試的策略 121
6.2.1 基於分解的集成策略 121
6.2.2 分層式集成測試 123
6.2.3 集成的McCabe基本路徑 124
6.2.4 調用流的集成 125
6.3 集成測試的過程 127
6.3.1 集成測試的計畫 127
6.3.2 集成測試的設計 128
6.3.3 集成測試的執行 130
6.3.4 集成測試的結果分析 130
6.4 集成測試的實踐 131
第7章 軟體系統測試及實踐 134
7.1 系統測試的基本概念 134
7.2 系統測試的要求 135
7.3 系統測試的策略 135
7.3.1 功能測試 135
7.3.2 性能測試 136
7.3.3 接口測試 136
7.3.4 人機互動界面測試 136
7.3.5 強度測試 137
7.3.6 安全性測試 138
7.3.7 餘量測試 139
7.3.8 恢復性測試 139
7.3.9 安裝性測試 140
7.3.10 邊界測試 140
7.3.11 敏感性測試 140
7.3.12 互操作性測試 140
7.3.13 容量測試 141
7.3.14 數據處理測試 141
7.3.15 可靠性測試 141
7.4 系統測試的過程 141
7.4.1 系統測試的策劃 141
7.4.2 系統測試的設計 144
7.4.3 系統測試的執行 145
7.5 系統測試環境 147
7.6 系統測試的實踐 148
7.6.1 一個需求實例的介紹 148
7.6.2 系統測試需求的分析 148
7.6.3 系統測試設計 149
第8章 軟體驗收測試 152
8.1 驗收測試的基本概念 152
8.2 驗收測試的內容 152
8.3 驗收測試的策略 153
8.3.1 驗收測試的類型 153
8.3.2 驗收測試的進入條件 153
8.3.3 網路軟體的驗收測試 153
8.3.4 軟體驗收測試的充分性 154
8.3.5 驗收測試的執行 154
8.4 軟體驗收的過程 154
8.4.1 軟體驗收申請 154
8.4.2 制定軟體驗收計畫 155
8.4.3 成立軟體驗收組織 155
8.4.4 軟體驗收測試和配置審核 156
8.4.5 軟體驗收評審 157
8.4.6 軟體驗收報告 158
8.4.7 軟體產品交付 158
第9章 軟體測試管理 159
9.1 測試項目管理概述 159
9.1.1 測試項目概述 159
9.1.2 測試項目管理 160
9.1.3 測試項目管理的三維模型 162
9.2 軟體測試的全過程管理 163
9.2.1 測試計畫管理 163
9.2.2 測試設計與分析管理 170
9.2.3 測試執行過程管理 173
9.2.4 測試結果的管理 173
9.3 軟體測試的全方位管理 174
9.3.1 軟體缺陷的管理 174
9.3.2 回歸測試的管理 176
9.3.3 測試文檔的管理 176
9.3.4 測試評審的管理 177
9.3.5 測試的配置管理 181
9.3.6 測試質量的管理 182
9.4 測試人員的管理 184
9.4.1 測試人員的基本素質 184
9.4.2 測試小組的管理 185
9.4.3 測試組織的管理 187
第3篇 精通篇
第10章 軟體測試的抽象模型及數學描述 191
10.1 測試目標 191
10.2 測試對象 191
10.2.1 基本概念 191
10.2.2 數學描述① 192
10.3 測試依據 194
10.3.1 基本概念 194
10.3.2 數學描述 195
10.4 缺陷定義 195
10.4.1 基本概念 195
10.4.2 數學描述 196
10.5 測試解決方案 197
10.5.1 基本概念 197
10.5.2 數學描述 198
10.6 測試結果 202
10.6.1 基本概念 202
10.6.2 數學描述 202
10.7 書中數學符號的說明 203
第11章 基於需求的軟體測試 204
11.1 軟體測試過程概述 204
11.2 測試環境 205
11.3 基於需求的測試用例的選擇 205
11.3.1 正常範圍測試用例 205
11.3.2 健壯測試用例 205
11.4 基於需求的測試方法 206
11.4.1 基於需求的硬體/軟體綜合測試 206
11.4.2 基於需求的軟體綜合測試 206
11.4.3 基於需求的低級測試 207
11.5 測試覆蓋分析 207
11.5.1 基於需求的測試覆蓋分析 208
11.5.2 結構覆蓋分析 208
11.5.3 結構覆蓋分析方法 208
11.6 MC/DC覆蓋率 208
11.6.1 對C/DC和MC/DC的描述 208
11.6.2 C/DC和MC/DC之間的差異 209
第12章 嵌入式軟體的仿真測試框架 212
12.1 仿真測試框架的提出 212
12.1.1 嵌入式軟體的特點 212
12.1.2 嵌入式軟體的測試 213
12.1.3 解決方案的抽象 214
12.1.4 仿真測試框架 214
12.2 仿真測試框架的測試域原則 215
12.3 仿真測試框架的基本原理 215
12.3.1 仿真測試框架的基本原理 215
12.3.2 仿真測試原理 216
12.3.3 模型驅動測試的原理 221
12.4 仿真測試框架的使用原則 226
12.5 測試框架體系結構描述 226
12.6 仿真測試框架的體系結構 227
12.6.1 測試組件視圖 227
12.6.2 測試過程視圖 228
12.6.3 測試組織管理視圖 230
12.6.4 測試工具視圖 231
12.6.5 測試文檔視圖 232
12.7 仿真測試框架的細節層 234
12.8 仿真測試框架的文檔體系 234
第13章 典型工程套用 238
13.1 項目背景 238
13.2 仿真測試框架的實例化 238
13.3 基於仿真測試框架的測試 239
13.3.1 需求分析 239
13.3.2 測試設計 243
13.3.3 測試執行 248
13.3.4 測試分析 248
附錄A 軟體測試常用術語 250
附錄B 系統測試需求規格說明模板 270
附錄C 系統測試計畫模板 273
附錄D 系統測試說明 279
附錄E 系統測試報告模板 282
參考文獻 287