本書系統(tǒng)地介紹了軟件測(cè)試的概念,從不同的視角來(lái)探討軟件測(cè)試的本質(zhì)及其內(nèi)涵,重點(diǎn)講解了軟件測(cè)試的各種方法和技術(shù),并將它們應(yīng)用于不同的測(cè)試階段,滿足不同的應(yīng)用系統(tǒng)測(cè)試的需求。本書用了較大篇幅詳細(xì)介紹了自動(dòng)化測(cè)試的原理、方法和工具,通過(guò)一些典型的測(cè)試工具展示了自動(dòng)化測(cè)試的過(guò)程,使讀者更容易掌握自動(dòng)化測(cè)試的技術(shù)和實(shí)踐方法。
第1章 軟件測(cè)試概述 1
1.1 一個(gè)真實(shí)的故事 2
1.2 為什么要進(jìn)行軟件測(cè)試 3
1.3 軟件缺陷的由來(lái) 4
1.4 軟件測(cè)試學(xué)科的發(fā)展歷程 5
1.5 軟件測(cè)試的定義 7
1.5.1 基本定義的正反兩面性 7
1.5.2 服從于用戶需求——V&V 8
1.6 軟件測(cè)試的層次和類型 10
1.6.1 軟件測(cè)試的層次 10
1.6.2 不同類型的軟件測(cè)試 11
1.7 軟件測(cè)試的過(guò)程 12
1.7.1 傳統(tǒng)的軟件測(cè)試過(guò)程 13
1.7.2 敏捷測(cè)試過(guò)程 14
小 結(jié) 16
思考題 17
第2章 需求和設(shè)計(jì)評(píng)審 18
2.1 軟件評(píng)審的方法與技術(shù) 19
2.1.1 什么是評(píng)審 19
2.1.2 評(píng)審的方法 20
2.1.3 評(píng)審會(huì)議 22
2.1.4 評(píng)審的技術(shù) 24
2.2 產(chǎn)品需求評(píng)審 25
2.2.1 需求評(píng)審的重要性 25
2.2.2 如何理解需求 27
2.2.3 傳統(tǒng)軟件需求的評(píng)審標(biāo)準(zhǔn) 29
2.2.4 敏捷開發(fā)中用戶故事評(píng)審標(biāo)準(zhǔn) 30
2.2.5 如何對(duì)需求進(jìn)行評(píng)審 31
2.3 設(shè)計(jì)審查 33
2.3.1 軟件設(shè)計(jì)評(píng)審標(biāo)準(zhǔn) 33
2.3.2 系統(tǒng)架構(gòu)設(shè)計(jì)的評(píng)審 35
2.3.3 組件設(shè)計(jì)的審查 36
2.3.4 界面設(shè)計(jì)的評(píng)審 37
小 結(jié) 37
思考題 38
實(shí)驗(yàn)1 用戶故事評(píng)審 38
第3章 測(cè)試分析與設(shè)計(jì) 40
3.1 如何進(jìn)行測(cè)試需求分析 40
3.2 測(cè)試設(shè)計(jì) 42
3.2.1 測(cè)試設(shè)計(jì)流程 42
3.2.2 框架的設(shè)計(jì) 43
3.2.3 功能測(cè)試設(shè)計(jì) 44
3.3 什么是測(cè)試用例 46
3.3.1 一個(gè)簡(jiǎn)單的測(cè)試用例 46
3.3.2 測(cè)試用例的元素 47
3.4 為什么需要測(cè)試用例 49
3.5 測(cè)試用例的質(zhì)量 49
3.5.1 測(cè)試用例的質(zhì)量要求 50
3.5.2 測(cè)試用例書寫標(biāo)準(zhǔn) 51
3.5.3 測(cè)試用例的評(píng)審 52
3.6 測(cè)試用例的組織和使用 53
3.6.1 測(cè)試集 53
3.6.2 測(cè)試用例的維護(hù) 55
小 結(jié) 55
思考題 56
實(shí)驗(yàn)2 測(cè)試用例結(jié)構(gòu)的設(shè)計(jì) 56
第4章 軟件測(cè)試自動(dòng)化 58
4.1 測(cè)試自動(dòng)化的內(nèi)涵 58
4.1.1 簡(jiǎn)單的實(shí)驗(yàn) 59
4.1.2 自動(dòng)化測(cè)試的例子 60
4.1.3 什么是自動(dòng)化測(cè)試 62
4.1.4 自動(dòng)化測(cè)試的特點(diǎn)和優(yōu)勢(shì) 63
4.2 自動(dòng)化測(cè)試的原理 64
4.2.1 代碼分析 65
4.2.2 GUI對(duì)象識(shí)別 66
4.2.3 DOM對(duì)象識(shí)別 68
4.2.4 自動(dòng)比較技術(shù) 69
4.2.5 腳本技術(shù) 70
4.3 測(cè)試工具的分類和選擇 73
4.3.1 測(cè)試工具的分類 73
4.3.2 測(cè)試工具的選擇 75
4.4 自動(dòng)化測(cè)試的引入 76
4.4.1 普遍存在的問(wèn)題 77
4.4.2 對(duì)策 78
小 結(jié) 80
思考題 80
實(shí)驗(yàn)3 Windows應(yīng)用自動(dòng)化測(cè)試 80
第5章 單元測(cè)試和集成測(cè)試 82
5.1 什么是單元測(cè)試 83
5.2 單元測(cè)試的方法 83
5.2.1 黑盒方法和白盒方法 84
5.2.2 驅(qū)動(dòng)程序和樁程序 85
5.3 白盒測(cè)試方法的用例設(shè)計(jì) 86
5.3.1 分支覆蓋 86
5.3.2 條件覆蓋法 87
5.3.3 基本路徑測(cè)試法 88
5.4 代碼審查 90
5.4.1 代碼審查的范圍和方法 90
5.4.2 代碼規(guī)范性的審查 91
5.4.3 代碼缺陷檢查表 93
5.5 集成測(cè)試 96
5.5.1 集成測(cè)試的模式 96
5.5.2 自頂向下集成測(cè)試 96
5.5.3 自底向上集成測(cè)試 97
5.5.4 混合策略 97
5.5.5 持續(xù)集成測(cè)試 98
5.6 單元測(cè)試工具 101
5.6.1 JUnit介紹 102
5.6.2 用JUnit進(jìn)行單元測(cè)試 103
5.6.3 微軟VSTS的單元測(cè)試 107
5.6.4 開源工具 108
5.6.5 商業(yè)工具 111
小 結(jié) 113
思考題 114
實(shí)驗(yàn)4 單元測(cè)試實(shí)驗(yàn) 114
第6章 系統(tǒng)功能測(cè)試 117
6.1 功能測(cè)試 117
6.1.1 功能測(cè)試范圍分析 118
6.1.2 LOSED模型 119
6.2 功能測(cè)試用例的設(shè)計(jì) 120
6.2.1 等價(jià)類劃分法 120
6.2.2 邊界值分析法 124
6.2.3 循環(huán)結(jié)構(gòu)測(cè)試的綜合方法 126
6.2.4 因果圖法 127
6.2.5 決策表方法 130
6.2.6 功能圖法 133
6.2.7 正交試驗(yàn)設(shè)計(jì)方法 134
6.3 易用性測(cè)試 137
6.3.1 可用性的內(nèi)部測(cè)試 138
6.3.2 易用性的外部測(cè)試 140
6.4 功能測(cè)試執(zhí)行 141
6.4.1 功能測(cè)試套件的創(chuàng)建 142
6.4.2 回歸測(cè)試 143
6.5 功能測(cè)試工具 144
6.5.1 如何使用功能測(cè)試工具 144
6.5.2 開源工具 146
6.5.3 商業(yè)工具 147
小 結(jié) 150
思考題 150
實(shí)驗(yàn)5 系統(tǒng)功能測(cè)試 151
第7章 系統(tǒng)非功能性測(cè)試 153
7.1 非功能性的系統(tǒng)測(cè)試需求 153
7.2 概念:負(fù)載測(cè)試、壓力測(cè)試和性能
測(cè)試 157
7.2.1 背景及其分析 157
7.2.2 定義 158
7.3 負(fù)載測(cè)試技術(shù) 159
7.3.1 負(fù)載測(cè)試過(guò)程 159
7.3.2 輸入?yún)?shù) 160
7.3.3 輸出參數(shù) 163
7.3.4 場(chǎng)景設(shè)置 163
7.3.5 負(fù)載測(cè)試的執(zhí)行 165
7.3.6 負(fù)載測(cè)試的結(jié)果分析 166
7.4 性能測(cè)試 167
7.4.1 如何確定性能需求 167
7.4.2 性能測(cè)試類型 168
7.4.3 性能測(cè)試的步驟 169
7.4.4 一些常見的性能問(wèn)題 171
7.4.5 容量測(cè)試 172
7.5 壓力測(cè)試 173
7.6 性能測(cè)試工具 174
7.6.1 特性及其使用 174
7.6.2 開源工具 176
7.6.3 商業(yè)工具 178
7.7 兼容性測(cè)試 181
7.7.1 兼容性測(cè)試的內(nèi)容 181
7.7.2 系統(tǒng)兼容性測(cè)試 182
7.7.3 數(shù)據(jù)兼容性測(cè)試 183
7.8 安全性測(cè)試 184
7.8.1 安全性測(cè)試的范圍 184
7.8.2 Web安全性的測(cè)試 185
7.8.3 安全性測(cè)試工具 187
7.9 容錯(cuò)性測(cè)試 188
7.9.1 負(fù)面測(cè)試 189
7.9.2 故障轉(zhuǎn)移測(cè)試 189
7.10 可靠性測(cè)試 191
小 結(jié) 192
思考題 193
實(shí)驗(yàn)6 系統(tǒng)性能測(cè)試 193
實(shí)驗(yàn)7 安全性測(cè)試 194
第8章 移動(dòng)應(yīng)用App的測(cè)試 196
8.1 移動(dòng)應(yīng)用測(cè)試的特點(diǎn) 196
8.2 移動(dòng)App功能測(cè)試 198
8.2.1 面向接口的自動(dòng)化測(cè)試 198
8.2.2 Android App UI自動(dòng)化測(cè)試 203
8.2.3 iOS App UI自動(dòng)化測(cè)試 213
8.2.4 跨平臺(tái)的App UI自動(dòng)化測(cè)試 217
8.3 專項(xiàng)測(cè)試 219
8.3.1 耗電量測(cè)試 219
8.3.2 流量測(cè)試 221
8.4 性能測(cè)試 223
8.4.1 Android內(nèi)存分析 224
8.4.2 iOS內(nèi)存分析 226
8.5 移動(dòng)App“閃退”的測(cè)試 228
8.6 安全性測(cè)試 228
8.7 用戶體驗(yàn)測(cè)試 229
小 結(jié) 231
思考題 231
實(shí)驗(yàn)8 系統(tǒng)功能測(cè)試 232
第9章 缺陷報(bào)告 233
9.1 一個(gè)簡(jiǎn)單的缺陷報(bào)告 233
9.2 缺陷報(bào)告的描述 234
9.2.1 缺陷的嚴(yán)重性和優(yōu)先級(jí) 235
9.2.2 缺陷的類型和來(lái)源 236
9.2.3 缺陷附件 236
9.2.4 完整的缺陷信息列表 237
9.3 如何有效地報(bào)告缺陷 238
9.4 軟件缺陷的處理和跟蹤 239
9.4.1 軟件缺陷生命周期 239
9.4.2 缺陷的跟蹤處理 241
9.4.3 缺陷狀態(tài)報(bào)告 241
9.5 缺陷分析 242
9.5.1 實(shí)時(shí)趨勢(shì)分析 242
9.5.2 累計(jì)趨勢(shì)分析 244
9.5.3 缺陷分布分析 246
9.6 缺陷跟蹤系統(tǒng) 247
小 結(jié) 249
思考題 249
第10章 測(cè)試計(jì)劃和管理 250
10.1 測(cè)試的原則 250
10.2 測(cè)試計(jì)劃 253
10.2.1 概述 253
10.2.2 測(cè)試計(jì)劃過(guò)程 254
10.2.3 測(cè)試目標(biāo) 255
10.2.4 測(cè)試策略 256
10.2.5 制訂有效的測(cè)試計(jì)劃 259
10.3 測(cè)試范圍分析和工作量估計(jì) 259
10.3.1 測(cè)試范圍的分析 260
10.3.2 工作量的估計(jì) 261
10.4 測(cè)試資源要求和進(jìn)度管理 263
10.4.1 測(cè)試資源需求 263
10.4.2 測(cè)試進(jìn)度管理 265
10.5 測(cè)試風(fēng)險(xiǎn)的控制 266
10.5.1 主要存在的風(fēng)險(xiǎn) 267
10.5.2 控制風(fēng)險(xiǎn)的對(duì)策 268
10.5.3 測(cè)試策略的執(zhí)行 269
10.6 測(cè)試報(bào)告 271
10.6.1 評(píng)估測(cè)試覆蓋率 271
10.6.2 基于軟件缺陷的質(zhì)量評(píng)估 273
10.6.3 測(cè)試報(bào)告的書寫 274
10.7 測(cè)試管理工具 275
10.7.1 測(cè)試管理系統(tǒng)的構(gòu)成 275
10.7.2 主要工具介紹 277
小 結(jié) 278
思考題 279
附錄 280
附錄A 軟件測(cè)試術(shù)語(yǔ)中英文對(duì)照 280
附錄B 測(cè)試計(jì)劃簡(jiǎn)化模板 285
附錄C 測(cè)試用例設(shè)計(jì)模板 287
附錄D 軟件缺陷模板 289
附錄E 軟件測(cè)試報(bào)告模板 291
附錄F 參考文獻(xiàn)和資源 294