本書在內(nèi)容上較為全面地、系統(tǒng)地涵蓋了當(dāng)前軟件測試領(lǐng)域的理論和實踐知識,反映了當(dāng)前最新的軟件測試?yán)碚、?biāo)準(zhǔn)、技術(shù)和工具。全書共14章,包括:軟件測試概述、軟件測試模型、靜態(tài)測試與動態(tài)測試、白盒測試、黑盒測試、單元測試、集成測試、系統(tǒng)測試、驗收測試、軟件測試管理、面向?qū)ο蟮能浖䴗y試、軟件測試自動化、缺陷跟蹤管理、單元測試工具JUnit、接口測試工具、負(fù)載測試工具LoadRunner、網(wǎng)上書店系統(tǒng)測試、生活小工具微服務(wù)測試和手機(jī)視頻播放軟件測試。每章內(nèi)容均有實際案例做補(bǔ)充,以加深讀者對軟件測試技術(shù)和過程的理解,做到理論與實踐相結(jié)合。
本書可作為高等院校相關(guān)專業(yè)軟件測試的教材或教學(xué)參考書,也可以供從事計算機(jī)應(yīng)用開發(fā)的各類技術(shù)人員參考。
作者在高校從事計算機(jī)教學(xué)多年,有過在高校教書、留學(xué)和企業(yè)工作的經(jīng)驗,目前已出版的書籍有多本。相信本書無論是在內(nèi)容上及渠道上都比競爭對手更具有優(yōu)勢。
本書涵蓋了當(dāng)前軟件測試領(lǐng)域的理論和實踐知識,反映了當(dāng)前最新的軟件測試?yán)碚、?biāo)準(zhǔn)、技術(shù)和工具。
呂云翔,北京航空航天大學(xué)軟件學(xué)院副教授 有多年的教學(xué)工作經(jīng)驗,出版過軟件工程、計算機(jī)專業(yè)英語等計算機(jī)領(lǐng)域教材。
前言 1
目錄 3
第 一部分 理論基礎(chǔ) 1
第 1章 軟件測試概述 2
1.1 軟件測試的背景意義 2
1.1.1 著名軟件錯誤案例 2
1.1.2 軟件的定義及分類方法 3
1.1.3 軟件工程 4
1.1.4 軟件質(zhì)量 6
1.2 軟件測試的基本概念 6
1.2.1 軟件缺陷的定義 6
1.2.2 軟件缺陷出現(xiàn)的原因 7
1.2.3 軟件測試的定義 8
1.3 軟件測試的目的原則 9
1.3.1 軟件測試的目的 9
1.3.2 軟件測試的原則 10
1.4 軟件測試的分類 11
1.4.1 按測試階段 11
1.4.2 按是否需要執(zhí)行被測試軟件 12
1.4.3 按是否需要查看代碼 13
1.4.4 按測試執(zhí)行時是否需要人工干預(yù) 14
1.4.5 按測試實施組織 15
1.4.6 其他測試類型 16
1.5 軟件測試行業(yè)的發(fā)展 16
1.5.1 軟件測試的歷史回顧 16
1.5.2 軟件測試的現(xiàn)狀 17
1.5.3 軟件測試的前景 18
1.6 本章小結(jié) 19
習(xí)題1 19
第 2章 軟件測試模型 20
2.1 軟件開發(fā)過程模型 20
2.1.1 軟件開發(fā)基本過程 20
2.1.2 常見軟件開發(fā)過程模型 24
2.2 軟件項目中的測試流程 31
2.2.1 軟件生命周期中的測試 31
2.2.2 軟件測試的基本流程 32
2.2.3 軟件測試的組織 32
2.3 軟件測試過程模型 32
2.3.1 V模型 33
2.3.2 W模型 33
2.3.3 H模型 34
2.3.4 X模型 34
2.3.5 前置測試模型 35
2.4 軟件測試過程改進(jìn)模型 37
2.4.1 TMM測試成熟度模型 37
2.4.2 TPI模型 38
2.4.3 其他測試過程改進(jìn)模型 39
2.5 本章小結(jié) 40
習(xí)題2 41
第3章 軟件測試方法 42
3.1 靜態(tài)測試 42
3.1.1 代碼檢查 42
3.1.2 靜態(tài)結(jié)構(gòu)分析 51
3.2 動態(tài)測試 53
3.2.1 主動測試 53
3.2.2 被動測試 54
3.3 白盒測試 54
3.3.1 程序插樁法 54
3.3.2 邏輯覆蓋法 57
3.3.3 基本路徑法 62
3.3.4 白盒測試方法選擇 64
3.4 黑盒測試 64
3.4.1 黑盒測試方法 65
3.4.2 黑盒測試方法選擇 75
3.4.3 白盒測試和黑盒測試比較 75
3.5 本章小結(jié) 76
習(xí)題3 76
第4章 軟件測試過程 78
4.1 單元測試 78
4.1.1 單元測試的定義 78
4.1.2 單元測試的原則 79
4.1.3 單元測試的內(nèi)容 79
4.1.4 單元測試的過程 81
4.1.5 單元測試中的覆蓋率 81
4.1.6 單元測試相關(guān)案例 84
4.2 集成測試 91
4.2.1 集成測試的定義 91
4.2.2 集成測試的原則 92
4.2.3 集成測試的內(nèi)容 92
4.2.4 集成測試的過程 93
4.2.5 集成測試相關(guān)策略 93
4.2.6 集成測試常用方法 95
4.2.7 集成測試相關(guān)案例 99
4.3 系統(tǒng)測試 103
4.3.1 系統(tǒng)測試的定義 103
4.3.2 系統(tǒng)測試的原則 104
4.3.3 系統(tǒng)測試的內(nèi)容 104
4.3.4 系統(tǒng)測試相關(guān)案例 114
4.4 驗收測試 121
4.4.1 驗收測試的定義 121
4.4.2 驗收測試的原則 121
4.4.3 驗收測試的內(nèi)容 122
4.4.4 驗收測試的過程 124
4.4.5 驗收測試的深度與廣度 125
4.4.6 驗收測試的階段 126
4.4.7 驗收測試相關(guān)案例 128
4.5 本章小結(jié) 129
習(xí)題 4 130
第5章 軟件測試管理 131
5.1 軟件測試管理概述 131
5.1.1 軟件測試項目 131
5.1.2 軟件測試項目管理 132
5.1.3 軟件測試項目范圍管理 133
5.2 軟件測試管理計劃 133
5.2.1 軟件測試計劃制定 133
5.2.2 軟件測試計劃執(zhí)行 136
5.3 軟件測試文檔 136
5.3.1 軟件測試文檔的作用 137
5.3.2 主要的軟件測試文檔 138
5.4 測試組織和人員管理 140
5.4.1 測試人員及組織結(jié)構(gòu) 140
5.4.2 測試人員的溝通和激勵 141
5.4.3 測試人員的培訓(xùn) 142
5.5 軟件測試過程控制 142
5.5.1 測試項目的過程管理 143
5.5.2 軟件測試的配置管理 144
5.5.3 軟件測試的風(fēng)險管理 145
5.5.4 軟件測試的成本管理 146
5.6 本章小結(jié) 147
習(xí)題 5 148
第6章 面向?qū)ο筌浖䴗y試 149
6.1 面向?qū)ο蠹夹g(shù)概述 149
6.1.1 面向?qū)ο蟮幕靖拍睢?49
6.1.2 面向?qū)ο蟮拈_發(fā)方法 152
6.1.3 面向?qū)ο蟮姆治鲈O(shè)計 153
6.1.4 面向?qū)ο蟮哪P图夹g(shù) 154
6.2 面向?qū)ο筌浖臏y試策略 155
6.2.1 面向?qū)ο蟮膯卧獪y試 156
6.2.2 面向?qū)ο蟮募蓽y試 156
6.2.3 面向?qū)ο蟮南到y(tǒng)測試 157
6.2.4 面向?qū)ο蟮幕貧w測試 158
6.3 面向?qū)ο筌浖臏y試用例設(shè)計 158
6.3.1 面向?qū)ο鬁y試用例設(shè)計的基本概念 158
6.3.2 面向?qū)ο缶幊虒y試的影響 159
6.3.3 基于故障的測試 159
6.3.4 基于場景的測試 160
6.3.5 表層結(jié)構(gòu)和深層結(jié)構(gòu)的測試 160
6.4 面向?qū)ο蟮能浖䴗y試案例 160
6.4.1 HelloWorld類的測試 160
6.4.2 Date.increment方法的測試 161
6.5 本章小結(jié) 163
習(xí)題 6 164
第二部分 工具應(yīng)用 165
第7章 軟件測試自動化 166
7.1 軟件測試自動化概述 166
7.1.1 手工測試與自動測試 166
7.1.2 自動測試的優(yōu)缺點 167
7.2 自動化測試的原理方法 168
7.2.1 代碼分析 168
7.2.2 捕獲回放 168
7.2.3 錄制回放 168
7.2.4 腳本技術(shù) 169
7.2.5 自動比較 170
7.3 自動化測試的開展 170
7.3.1 自動化測試的引入原則 171
7.3.2 自動化測試的生命周期 171
7.3.3 自動化測試的成本 173
7.3.4 自動化測試的導(dǎo)入時機(jī) 173
7.3.5 自動化測試的人員要求 173
7.3.6 自動化測試存在的問題 174
7.4 自動化測試的方案選擇 174
7.4.1 自動化測試對象分析 174
7.4.2 確定自動化測試方案 175
7.5 自動化測試的工具 177
7.5.1 自動化測試工具的特征 177
7.5.2 自動化測試工具的作用和優(yōu)勢 178
7.5.3 自動化測試工具的分類 179
7.5.4 自動化測試工具的選擇 181
7.5.5 自動化測試工具的局限性 182
7.6 本章小結(jié) 182
習(xí)題 7 182
第8章 缺陷跟蹤管理 183
8.1 缺陷管理工具概述 183
8.1.1 缺陷管理的目的與意義 183
8.1.2 缺陷管理工具的分類 183
8.1.3 缺陷管理工具的選擇 184
8.2 項目管理工具Redmine 184
8.2.1 Redmine的特點 184
8.2.2 Redmine的缺陷跟蹤 185
8.3 缺陷管理工具Bugzilla 190
8.3.1 Bugzilla的特點 191
8.3.2 Bugzilla的缺陷跟蹤 191
8.4 問題跟蹤工具JIRA 193
8.4.1 JIRA的特點 193
8.4.2 JIRA的缺陷跟蹤 194
8.5 本章小結(jié) 198
習(xí)題 8 198
第9章 JUnit單元測試 199
9.1 JUnit概述 199
9.1.1 JUnit簡介 199
9.1.2 JUnit組成 200
9.2 JUnit測試過程 203
9.2.1 JUnit測試用例編寫 204
9.3 JUnit安裝與集成 205
9.3.1 JUnit簡單安裝 205
9.3.2 JUnit與IDE集成 206
9.4 JUnit使用案例 209
9.4.1 案例介紹 209
9.4.2 常規(guī)測試 210
9.4.3 使用JUnit測試 211
9.5 本章小結(jié) 220
習(xí)題 9 220
第 10章 接口測試工具 222
10.1 接口測試概述 222
10.1.1 接口測試工具的分類 222
10.1.2 接口測試工具的選擇 223
10.2 SoapUI 223
10.2.1 SoapUI的特點 223
10.2.2 SoapUI的使用 223
10.3 Jmeter 224
10.3.1 Jmeter的特點 225
10.3.2 Jmeter的使用 225
10.4 Postman 227
10.4.1 Postman的特點 227
10.4.2 Postman的使用 227
10.5 本章小結(jié) 229
習(xí)題 10 229
第 11章 LoadRunner性能測試 230
11.1 LoadRunner概述 230
11.1.1 LoadRunner簡介 230
11.1.2 LoadRunner主要特性 231
11.1.3 LoadRunner組件和術(shù)語 232
11.1.4 LoadRunner工作流程 232
11.2 制定性能測試計劃 233
11.2.1 分析應(yīng)用程序 233
11.2.2 定制執(zhí)行計劃 234
11.3 創(chuàng)建測試腳本 234
11.3.1 創(chuàng)建空白腳本 235
11.3.2 VuGen界面介紹 236
11.3.3 錄制腳本 239
11.4 設(shè)計運(yùn)行場景 243
11.4.1 新建場景 243
11.4.2 負(fù)載生成器管理 246
11.4.3 虛擬用戶管理 247
11.4.4 運(yùn)行設(shè)置 248
11.5 運(yùn)行測試并分析結(jié)果 248
11.5.1 運(yùn)行測試場景 248
11.5.2 監(jiān)視場景 249
11.5.3 結(jié)果分析 250
11.6 LoadRunner綜合應(yīng)用 251
11.6.1 案例介紹 251
11.6.2 測試過程 252
11.7 本章小結(jié) 255
習(xí)題 11 255
第三部分 案例實踐 256
第 12章 網(wǎng)上書店系統(tǒng)測試 257
12.1 網(wǎng)站測試概述 257
12.1.1 網(wǎng)站測試概念 257
12.1.2 網(wǎng)站測試過程 258
12.1.3 數(shù)據(jù)庫測試 259
12.1.4 用戶界面測試 261
12.1.5 構(gòu)件級測試 262
12.1.6 配置測試 262
12.1.7 安全性測試 263
12.1.8 系統(tǒng)性能測試 264
12.2 案例概述 265
12.2.1 用戶簡介 265
12.2.2 項目的目的與目標(biāo) 266
12.2.3 目標(biāo)系統(tǒng)功能需求 266
12.2.4 目標(biāo)系統(tǒng)性能需求 276
12.2.5 目標(biāo)系統(tǒng)界面需求 277
12.2.6 目標(biāo)系統(tǒng)的其他需求 277
12.2.7 目標(biāo)系統(tǒng)的假設(shè)與約束條件 277
12.3 項目測試計劃 277
12.3.1 測試項目 277
12.3.2 測試方案 277
12.3.3 測試資源 277
12.4 測試用例設(shè)計 278
12.4.1 單元測試用例 278
12.4.2 功能測試用例 283
12.4.3 性能測試用例 284
12.5 測試進(jìn)度 286
12.5.1 單元測試 286
12.5.2 集成測試 287
12.5.3 系統(tǒng)測試 287
12.5.4 驗收測試 287
12.6 評價 288
12.6.1 范圍 288
12.6.2 數(shù)據(jù)整理 288
12.6.3 量度 288
12.7 測試分析報告 288
12.7.1 引言 288
12.7.2 測試計劃實施 289
12.7.3 評價 290
12.8 本章小結(jié) 290
習(xí)題 13 290
第 13章 生活小工具微服務(wù)測試 291
13.1 微服務(wù)架構(gòu)概述 291
13.1.1 微服務(wù)架構(gòu)的出現(xiàn)和發(fā)展 291
13.1.2 微服務(wù)的優(yōu)缺點 295
13.2 接口測試技術(shù) 296
13.2.1 接口類型 297
13.2.2 接口測試類型和流程 298
13.3 案例概述 298
13.3.1 項目概述 299
13.3.2 功能需求 299
13.3.3 性能需求 299
13.4 測試計劃 299
13.4.1 測試目標(biāo) 299
13.4.2 測試方案 299
13.4.3 測試資源 300
13.5 測試用例 300
13.5.1 功能測試用例 300
13.5.2 性能測試用例 301
13.6 測試分析報告 301
13.6.1 引言 301
13.6.2 測試概要 302
13.6.3 測試結(jié)果及發(fā)現(xiàn) 302
13.6.4 分析摘要 302
13.7 本章小結(jié) 302
習(xí)題 14 302
第 14章 手機(jī)視頻播放APP測試 303
14.1 手機(jī)軟件測試概述 303
14.1.1 移動終端介紹 303
14.1.2 手機(jī)軟件測試用例設(shè)計 304
14.1.3 手機(jī)軟件測試基本流程 305
14.1.4 測試環(huán)境搭建實例 307
14.2 案例概述 308
14.2.1 項目概述 308
14.2.2 功能需求 308
14.2.3 性能需求 311
14.3 測試計劃 311
14.3.1 測試目標(biāo) 311
14.3.2 測試方案 311
14.3.3 測試資源 311
14.4 測試用例 312
14.4.1 功能測試用例 312
14.4.2 性能測試用例 320
14.5 測試過程 320
14.5.1 單元測試 320
14.5.2 集成測試 321
14.5.3 系統(tǒng)測試 321
14.5.4 驗收測試 323
14.6 測試分析報告 323
14.6.1 引言 323
14.6.2 測試概要 324
14.6.3 測試結(jié)果及發(fā)現(xiàn) 324
14.6.4 分析摘要 325
14.6.5 測試資源消耗 325
14.7 本章小結(jié) 326
習(xí)題 15 326
附錄 327
軟件測試文檔模板 327
A.1測試計劃(GB8567——88) 327
A.2測試報告(GB8567——88) 328
參考文獻(xiàn) 331