本書在內容上較為全面地、系統(tǒng)地涵蓋了當前軟件測試領域的理論和實踐知識,反映了當前最新的軟件測試理論、標準、技術和工具。全書共14章,包括:軟件測試概述、軟件測試模型、靜態(tài)測試與動態(tài)測試、白盒測試、黑盒測試、單元測試、集成測試、系統(tǒng)測試、驗收測試、軟件測試管理、面向對象的軟件測試、軟件測試自動化、缺陷跟蹤管理、單元測試工具JUnit、接口測試工具、負載測試工具LoadRunner、網(wǎng)上書店系統(tǒng)測試、生活小工具微服務測試和手機視頻播放軟件測試。每章內容均有實際案例做補充,以加深讀者對軟件測試技術和過程的理解,做到理論與實踐相結合。
本書可作為高等院校相關專業(yè)軟件測試的教材或教學參考書,也可以供從事計算機應用開發(fā)的各類技術人員參考。
作者在高校從事計算機教學多年,有過在高校教書、留學和企業(yè)工作的經(jīng)驗,目前已出版的書籍有多本。相信本書無論是在內容上及渠道上都比競爭對手更具有優(yōu)勢。
本書涵蓋了當前軟件測試領域的理論和實踐知識,反映了當前最新的軟件測試理論、標準、技術和工具。
呂云翔,北京航空航天大學軟件學院副教授 有多年的教學工作經(jīng)驗,出版過軟件工程、計算機專業(yè)英語等計算機領域教材。
前言 1
目錄 3
第 一部分 理論基礎 1
第 1章 軟件測試概述 2
1.1 軟件測試的背景意義 2
1.1.1 著名軟件錯誤案例 2
1.1.2 軟件的定義及分類方法 3
1.1.3 軟件工程 4
1.1.4 軟件質量 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í)行時是否需要人工干預 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 本章小結 19
習題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 軟件測試過程改進模型 37
2.4.1 TMM測試成熟度模型 37
2.4.2 TPI模型 38
2.4.3 其他測試過程改進模型 39
2.5 本章小結 40
習題2 41
第3章 軟件測試方法 42
3.1 靜態(tài)測試 42
3.1.1 代碼檢查 42
3.1.2 靜態(tài)結構分析 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 本章小結 76
習題3 76
第4章 軟件測試過程 78
4.1 單元測試 78
4.1.1 單元測試的定義 78
4.1.2 單元測試的原則 79
4.1.3 單元測試的內容 79
4.1.4 單元測試的過程 81
4.1.5 單元測試中的覆蓋率 81
4.1.6 單元測試相關案例 84
4.2 集成測試 91
4.2.1 集成測試的定義 91
4.2.2 集成測試的原則 92
4.2.3 集成測試的內容 92
4.2.4 集成測試的過程 93
4.2.5 集成測試相關策略 93
4.2.6 集成測試常用方法 95
4.2.7 集成測試相關案例 99
4.3 系統(tǒng)測試 103
4.3.1 系統(tǒng)測試的定義 103
4.3.2 系統(tǒng)測試的原則 104
4.3.3 系統(tǒng)測試的內容 104
4.3.4 系統(tǒng)測試相關案例 114
4.4 驗收測試 121
4.4.1 驗收測試的定義 121
4.4.2 驗收測試的原則 121
4.4.3 驗收測試的內容 122
4.4.4 驗收測試的過程 124
4.4.5 驗收測試的深度與廣度 125
4.4.6 驗收測試的階段 126
4.4.7 驗收測試相關案例 128
4.5 本章小結 129
習題 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 測試人員及組織結構 140
5.4.2 測試人員的溝通和激勵 141
5.4.3 測試人員的培訓 142
5.5 軟件測試過程控制 142
5.5.1 測試項目的過程管理 143
5.5.2 軟件測試的配置管理 144
5.5.3 軟件測試的風險管理 145
5.5.4 軟件測試的成本管理 146
5.6 本章小結 147
習題 5 148
第6章 面向對象軟件測試 149
6.1 面向對象技術概述 149
6.1.1 面向對象的基本概念 149
6.1.2 面向對象的開發(fā)方法 152
6.1.3 面向對象的分析設計 153
6.1.4 面向對象的模型技術 154
6.2 面向對象軟件的測試策略 155
6.2.1 面向對象的單元測試 156
6.2.2 面向對象的集成測試 156
6.2.3 面向對象的系統(tǒng)測試 157
6.2.4 面向對象的回歸測試 158
6.3 面向對象軟件的測試用例設計 158
6.3.1 面向對象測試用例設計的基本概念 158
6.3.2 面向對象編程對測試的影響 159
6.3.3 基于故障的測試 159
6.3.4 基于場景的測試 160
6.3.5 表層結構和深層結構的測試 160
6.4 面向對象的軟件測試案例 160
6.4.1 HelloWorld類的測試 160
6.4.2 Date.increment方法的測試 161
6.5 本章小結 163
習題 6 164
第二部分 工具應用 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 腳本技術 169
7.2.5 自動比較 170
7.3 自動化測試的開展 170
7.3.1 自動化測試的引入原則 171
7.3.2 自動化測試的生命周期 171
7.3.3 自動化測試的成本 173
7.3.4 自動化測試的導入時機 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 本章小結 182
習題 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 本章小結 198
習題 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 本章小結 220
習題 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 本章小結 229
習題 10 229
第 11章 LoadRunner性能測試 230
11.1 LoadRunner概述 230
11.1.1 LoadRunner簡介 230
11.1.2 LoadRunner主要特性 231
11.1.3 LoadRunner組件和術語 232
11.1.4 LoadRunner工作流程 232
11.2 制定性能測試計劃 233
11.2.1 分析應用程序 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 設計運行場景 243
11.4.1 新建場景 243
11.4.2 負載生成器管理 246
11.4.3 虛擬用戶管理 247
11.4.4 運行設置 248
11.5 運行測試并分析結果 248
11.5.1 運行測試場景 248
11.5.2 監(jiān)視場景 249
11.5.3 結果分析 250
11.6 LoadRunner綜合應用 251
11.6.1 案例介紹 251
11.6.2 測試過程 252
11.7 本章小結 255
習題 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 構件級測試 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 項目的目的與目標 266
12.2.3 目標系統(tǒng)功能需求 266
12.2.4 目標系統(tǒng)性能需求 276
12.2.5 目標系統(tǒng)界面需求 277
12.2.6 目標系統(tǒng)的其他需求 277
12.2.7 目標系統(tǒng)的假設與約束條件 277
12.3 項目測試計劃 277
12.3.1 測試項目 277
12.3.2 測試方案 277
12.3.3 測試資源 277
12.4 測試用例設計 278
12.4.1 單元測試用例 278
12.4.2 功能測試用例 283
12.4.3 性能測試用例 284
12.5 測試進度 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 本章小結 290
習題 13 290
第 13章 生活小工具微服務測試 291
13.1 微服務架構概述 291
13.1.1 微服務架構的出現(xiàn)和發(fā)展 291
13.1.2 微服務的優(yōu)缺點 295
13.2 接口測試技術 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 測試目標 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 測試結果及發(fā)現(xiàn) 302
13.6.4 分析摘要 302
13.7 本章小結 302
習題 14 302
第 14章 手機視頻播放APP測試 303
14.1 手機軟件測試概述 303
14.1.1 移動終端介紹 303
14.1.2 手機軟件測試用例設計 304
14.1.3 手機軟件測試基本流程 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 測試目標 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 測試結果及發(fā)現(xiàn) 324
14.6.4 分析摘要 325
14.6.5 測試資源消耗 325
14.7 本章小結 326
習題 15 326
附錄 327
軟件測試文檔模板 327
A.1測試計劃(GB8567——88) 327
A.2測試報告(GB8567——88) 328
參考文獻 331