《軟件質量保證與測試》共分10章,涵蓋了軟件質量保證與測試基礎、軟件測試策略、白盒測試、黑盒測試、單元測試、性能測試、自動化測試、軟件評審、軟件質量與質量保證、測試的組織和管理等內容。全書詳細介紹了軟件質量保證與測試的基礎知識,講解了軟件測試涉及的所有流程,并介紹了多款軟件測試工具,將理論知識與實踐操作技能有機結合,有助于學生完整、系統(tǒng)地掌握軟件質量保證與測試技術,提高實踐創(chuàng)新能力。
《軟件質量保證與測試》可作為軟件工程、計算機科學與技術等相關本科專業(yè)教材,也可供相關的專業(yè)人員參考使用。
第1章 軟件質量保證與測試基礎
1.1 軟件 001
1.1.1 軟件生命周期 001
1.1.2 軟件開發(fā)模型 002
1.1.3 軟件質量概述 008
1.2 軟件缺陷管理 012
1.2.1 軟件缺陷產生的原因 012
1.2.2 軟件缺陷分類 013
1.2.3 軟件缺陷的處理流程 014
1.2.4 常見的軟件缺陷管理工具 015
1.3 軟件測試與軟件開發(fā) 018
1.4 軟件測試概述 018
1.4.1 軟件測試簡述 019
1.4.2 軟件測試+AI 020
1.4.3 軟件測試的目的 021
1.5 軟件測試流程 022
1.5.1 分析測試需求 022
1.5.2 制訂測試計劃 023
1.5.3 設計測試用例 023
1.5.4 執(zhí)行測試 023
1.5.5 編寫測試報告 024
本章小結 024
本章習題 025
第2章 軟件測試策略
2.1 軟件測試模型 027
2.1.1 V模型 028
2.1.2 W模型 029
2.1.3 X模型 030
2.1.4 H模型 031
2.2 軟件測試的方法和技術 032
2.2.1 靜態(tài)測試和動態(tài)測試 032
2.2.2 黑盒測試和白盒測試 034
2.2.3 手工測試和自動化測試 035
2.3 軟件測試的基本策略 036
2.3.1 單元測試 036
2.3.2 集成測試 037
2.4 軟件測試的原則 037
本章小結 039
本章習題 039
第3章 白盒測試
3.1 引言 041
3.1.1 白盒測試的定義與重要性 041
3.1.2 白盒測試與黑盒測試的區(qū)別 041
3.1.3 白盒測試的應用場景 042
3.2 邏輯覆蓋法 043
3.2.1 語句覆蓋 043
3.2.2 分支覆蓋 045
3.2.3 條件覆蓋 045
3.2.4 判定-條件覆蓋 046
3.2.5 條件組合覆蓋 047
3.2.6 實例:三角形的邏輯覆蓋 048
3.2.7 循環(huán)測試技術 050
3.3 基本路徑測試覆蓋 051
3.3.1 控制流圖 051
3.3.2 環(huán)路復雜度 052
3.3.3 基本路徑覆蓋及實例 053
3.4 測試覆蓋分析工具 056
3.4.1 JaCoCo 056
3.4.2 JCov 057
3.4.3 Cobertura 057
3.4.4 EclEmma 057
3.5 程序插樁法 066
3.5.1 目標代碼插樁 066
3.5.2 源代碼插樁 069
3.5.3 實例:對學生類插入代碼 070
3.6 靜態(tài)測試工具 071
3.6.1 FindBugs 072
3.6.2 PMD 074
3.6.3 CheckStyle 077
3.6.4 其他靜態(tài)測試工具 078
本章小結 079
本章習題 079
第4章 黑盒測試
4.1 黑盒測試基礎 081
4.1.1 黑盒測試的應用場景 081
4.1.2 測試需求分析與規(guī)格說明書 081
4.2 等價類劃分法 081
4.2.1 等價類劃分法的概念 082
4.2.2 實例:三角形問題的等價類劃分 083
4.3 邊界值分析法 085
4.3.1 邊界值分析法的概念 085
4.3.2 實例:三角形問題的邊界值分析 086
4.4 因果圖與決策表法 087
4.4.1 因果圖法 087
4.4.2 決策表的構建 090
4.5 錯誤推測法 093
4.5.1 基于經驗的錯誤預測 093
4.5.2 錯誤推測法的應用示例 094
4.6 正交實驗設計方法 094
4.6.1 正交實驗設計方法概述 094
4.6.2 實例:微信Web頁面運行環(huán)境正交實驗設計 097
4.6.3 工具:正交設計助手的使用 098
4.7 組合測試方法 102
4.7.1 基本概念 102
4.7.2 詳細方法 103
4.8 場景法 105
本章小結 106
本章習題 106
第5章 單元測試
5.1 單元測試的目的和任務 108
5.1.1 單元測試的目的 108
5.1.2 單元測試的目標和要求 109
5.1.3 單元測試的任務 110
5.2 單元測試的原則 112
5.3 JUnit框架介紹 113
5.3.1 JUnit的歷史與發(fā)展 113
5.3.2 JUnit的關鍵注解 122
5.3.3 斷言 124
5.3.4 參數化測試 130
5.3.5 測試套件 131
本章小結 132
本章習題 132
第6章 性能測試
6.1 性能測試概述 135
6.1.1 性能測試基礎 135
6.1.2 性能測試失敗案例 136
6.1.3 性能測試分類 137
6.1.4 性能測試指標 140
6.2 搭建性能測試環(huán)境 144
6.2.1 搭建基礎環(huán)境 144
6.2.2 JMeter安裝方法 148
6.2.3 JMeter包含目錄 149
6.3 JMeter測試案例 152
6.3.1 新建測試計劃 152
6.3.2 添加線程組 153
6.3.3 添加HTTP請求 155
6.3.4 添加查看結果樹 157
6.3.5 測試執(zhí)行 157
6.4 JMeter的核心組件 159
6.4.1 取樣器 159
6.4.2 監(jiān)聽器 163
6.4.3 配置元件 169
6.4.4 斷言 180
6.4.5 前置處理器 188
6.4.6 后置處理器 190
6.4.7 邏輯控制器 199
6.4.8 定時器 207
6.5 實例:Badboy結合JMeter測試飛機購票系統(tǒng) 213
6.5.1 Badboy簡介 213
6.5.2 搭建測試環(huán)境 213
6.5.3 編寫測試腳本 217
本章小結 225
本章習題 225
第7章 自動化測試
7.1 自動化測試概述 227
7.1.1 什么是自動化測試 227
7.1.2 自動化測試的基本流程 228
7.1.3 自動化測試的實施策略 229
7.1.4 自動化測試的優(yōu)勢和劣勢 230
7.2 自動化測試常見技術 231
7.2.1 錄制回放技術 231
7.2.2 數據驅動測試 231
7.2.3 關鍵字驅動測試 232
7.2.4 行為驅動測試 232
7.2.5 接口測試技術 232
7.2.6 性能測試技術 232
7.3 自動化測試常見工具 233
7.4 QTP自動化工具 233
7.4.1 搭建自動化測試QTP環(huán)境 234
7.4.2 QTP工具的基本應用 235
7.4.3 QTP常用的操作方法 236
7.4.4 QTP操作界面 238
7.4.5 QTP工作流程 239
7.4.6 Action知識 243
7.4.7 QTP參數化 246
7.4.8 QTP同步點 262
7.4.9 QTP檢查點 265
7.4.10 QTP多Action操作 271
7.4.11 不同的Action中傳遞參數 292
本章小結 302
本章習題 303
第8章 軟件評審
8.1 軟件評審基礎知識 305
8.1.1 軟件評審的概念 305
8.1.2 軟件評審的作用 306
8.1.3 軟件評審的特點 306
8.2 軟件評審活動 307
8.3 軟件評審技術和工具 308
8.3.1 常用技術和工具 308
8.3.2 SourceMonitor工具 308
8.4 軟件評審的組織 315
本章小結 316
本章習題 316
第9章 軟件質量與質量保證
9.1 相關概念 318
9.1.1 軟件質量保證(SQA) 318
9.1.2 軟件質量控制(SQC) 318
9.1.3 SQC與SQA的區(qū)別 318
9.2 軟件質量模型和質量度量 319
9.2.1 軟件質量模型 319
9.2.2 軟件質量的度量 320
9.3 軟件質量管理與質量保證 321
9.3.1 軟件質量管理 321
9.3.2 軟件質量保證的活動 322
9.3.3 軟件質量保證體系的構成 323
9.4 程序正確性軟件質量 323
9.4.1 程序正確性的標準 323
9.4.2 軟件錯誤的分類 324
9.5 程序中隱藏錯誤數量估計 324
9.5.1 種子模型法 325
9.5.2 Hyman估算法 325
9.5.3 回歸分析 326
本章小結 326
本章習題 327
第10章 測試的組織和管理
10.1 人員和資源組織 328
10.1.1 軟件測試工作的特點 328
10.1.2 軟件測試人員組織 329
10.1.3 軟件測試資源組織 331
10.2 過程和進度管理 331
10.2.1 軟件測試項目的過程 331
10.2.2 測試進度管理 335
10.3 測試文檔、測試用例和缺陷管理 336
10.3.1 測試文檔管理 336
10.3.2 測試用例管理 337
10.3.3 缺陷管理 339
本章小結 340
本章習題 340
參考文獻