第1篇 入門篇
第1章 軟件測試的基本概念 1
1.1 軟件測試的定義 1
1.1.1 軟件測試定義的發(fā)展 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 自動化靜態(tài)測試技術 47
2.4.1 基于模式(規(guī)則)的靜態(tài)代碼分析 47
2.4.2 程序的靜態(tài)結構分析 49
2.4.3 代碼度量計算 51
2.4.4 自動化靜態(tài)測試技術的使用策略 52
2.4.5 使用自動化工具進行靜態(tài)測試 53
2.5 白盒測試技術 54
2.5.1 邏輯覆蓋測試 54
2.5.2 基本路徑測試 57
2.5.3 循環(huán)結構測試 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 細節(jié)層 70
3.3 測試框架的特征與優(yōu)勢 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 統(tǒng)一的軟件開發(fā)過程 80
4.2 軟件開發(fā)與軟件測試 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 測試執(zhí)行 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 靜態(tài)與動態(tài)結合的測試 98
5.3.2 單元測試中的覆蓋率 98
5.3.3 單元測試的自動化意義 100
5.3.4 單元測試與項目開發(fā) 100
5.3.5 單元測試中的功能測試 101
5.3.6 嵌入式軟件單元測試 101
5.4 單元測試的過程 104
5.4.1 單元測試的計劃 104
5.4.2 單元測試的設計 106
5.4.3 單元測試的執(zhí)行 107
5.4.4 單元測試的結果分析 107
5.5 單元測試環(huán)境 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 集成測試的執(zhí)行 130
6.3.4 集成測試的結果分析 130
6.4 集成測試的實踐 131
第7章 軟件系統(tǒng)測試及實踐 134
7.1 系統(tǒng)測試的基本概念 134
7.2 系統(tǒng)測試的要求 135
7.3 系統(tǒng)測試的策略 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 系統(tǒng)測試的過程 141
7.4.1 系統(tǒng)測試的策劃 141
7.4.2 系統(tǒng)測試的設計 144
7.4.3 系統(tǒng)測試的執(zhí)行 145
7.5 系統(tǒng)測試環(huán)境 147
7.6 系統(tǒng)測試的實踐 148
7.6.1 一個需求實例的介紹 148
7.6.2 系統(tǒng)測試需求的分析 148
7.6.3 系統(tǒng)測試設計 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 驗收測試的執(zhí)行 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 測試執(zhí)行過程管理 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 測試環(huán)境 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 仿真測試框架的細節(jié)層 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 測試執(zhí)行 248
13.3.4 測試分析 248
附錄A 軟件測試常用術語 250
附錄B 系統(tǒng)測試需求規(guī)格說明模板 270
附錄C 系統(tǒng)測試計劃模板 273
附錄D 系統(tǒng)測試說明 279
附錄E 系統(tǒng)測試報告模板 282
參考文獻 287