本書全面講述了軟件質(zhì)量保證與測試的發(fā)展過程、基本概念、核心思想、基本原理、基本方法、主要過程、常用技術(shù)和工具。內(nèi)容包括緒論、軟件測試策略、黑盒測試、白盒測試、軟件測試過程、面向?qū)ο鬁y試、自動化測試、軟件評審、軟件質(zhì)量與質(zhì)量保證、測試的組織和管理及軟件測試熱點等。
本書以大量源程序代碼和測試代碼作為示例來進行講解,結(jié)合軟件開發(fā),培養(yǎng)學(xué)生的測試分析、測試設(shè)計和測試開發(fā)能力。本書以基于“學(xué)習(xí)產(chǎn)出”的教育模式為指導(dǎo),提供豐富新穎的習(xí)題,加強對學(xué)生“能力產(chǎn)出”的度量和考核,適應(yīng)工程教育認(rèn)證的要求。本書為慕課(MOOC)教材,可以提供全套網(wǎng)絡(luò)教學(xué)資源,讓暫不具備這些數(shù)字化資源的學(xué)校和老師能快速開設(shè)《軟件質(zhì)量保證與測試》《軟件測試》慕課/微課課程。
本書可作為應(yīng)用型本科軟件工程、計算機等專業(yè)“軟件質(zhì)量保證與測試”、“軟件測試”課程的教材,也可作為軟件測試工程師的參考書。
1.結(jié)合軟件項目代碼實例講授軟件測試。
2.MOOC資源完善,實現(xiàn)立體化教學(xué)。
3.注重軟件質(zhì)量保證、測試分析設(shè)計能力和長信能力的培養(yǎng)。
4.適應(yīng)現(xiàn)代碎片化學(xué)習(xí)需要,將知識體系分解為相對獨立的知識點。
王智鋼,男,碩士,副教授,主要從事軟件測試教學(xué)和數(shù)據(jù)挖掘算法研究及應(yīng)用。發(fā)表論文20余篇,承擔(dān)省級及以上科研項目5項,所在團隊獲得2017年江蘇省教學(xué)成果二等獎和2018年江蘇省優(yōu)秀教學(xué)團隊稱號。主持的《軟件質(zhì)量保證與測試》在線課程,獲得教育部與優(yōu)課在線協(xié)同育人MOOC建設(shè)項目立項,被列為江蘇省2018-2019在線開放課程建設(shè)項目,目前同時在中國大學(xué)慕課和優(yōu)課在線開展網(wǎng)絡(luò)教學(xué)。
第1章 緒論 1
1.1 軟件測試的產(chǎn)生與發(fā)展 2
1.1.1 軟件測試的產(chǎn)生 2
1.1.2 軟件測試的第一類測試方法 2
1.1.3 軟件測試的第二類測試方法 2
1.1.4 軟件測試與軟件質(zhì)量 3
1.1.5 軟件測試及軟件測試觀念的發(fā)展過程 4
1.2 軟件缺陷、軟件錯誤、軟件失敗 4
1.2.1 第一個Bug 4
1.2.2 軟件缺陷 5
1.2.3 缺陷產(chǎn)生的原因 5
1.2.4 PIE模型 7
1.3 軟件測試的意義、原則和挑戰(zhàn) 9
1.3.1 軟件發(fā)展特點對軟件測試的
影響 9
1.3.2 軟件缺陷導(dǎo)致的事故案例 10
1.3.3 軟件測試的意義 11
1.3.4 軟件測試的基本原則 13
1.3.5 關(guān)于測試的錯誤認(rèn)識 14
1.3.6 軟件測試面臨的挑戰(zhàn) 14
習(xí)題 14
第2章 軟件測試策略 18
2.1 軟件測試的模型、過程和
生命周期 19
2.1.1 軟件測試的模型 19
2.1.2 軟件測試的過程 21
2.1.3 軟件測試的生命周期 21
2.2 軟件測試的方法和技術(shù) 24
2.2.1 靜態(tài)測試與動態(tài)測試 24
2.2.2 黑盒測試和白盒測試 25
2.2.3 手工測試與自動化測試 27
2.2.4 軟件測試的基本策略 27
習(xí)題 27
第3章 黑盒測試 29
3.1 黑盒測試簡介 30
3.2 等價類劃分測試法 31
3.2.1 等價類劃分 31
3.2.2 等價類劃分測試 34
3.2.3 等價類的組合 35
3.3 邊界值測試法 36
3.3.1 邊界值 37
3.3.2 邊界值測試用例設(shè)計 38
3.3.3 邊界值的組合 38
3.4 錯誤推測法 39
3.4.1 錯誤推測法簡介 39
3.4.2 登錄測試錯誤推測法應(yīng)用 40
3.4.3 數(shù)據(jù)表操作測試錯誤推測法
應(yīng)用及示例 41
3.5 判定表驅(qū)動法 41
3.5.1 判定表 41
3.5.2 判定表的建立 43
3.5.3 判定表驅(qū)動測試示例 43
3.6 因果圖法 44
3.6.1 因果圖介紹 45
3.6.2 因果圖法設(shè)計測試用例的步驟 46
3.6.3 因果圖法設(shè)計測試用例示例 46
3.7 場景法 48
3.7.1 事件流 48
3.7.2 場景法設(shè)計測試用例的步驟 48
3.7.3 場景法應(yīng)用示例 49
3.8 正交實驗法 50
3.8.1 正交實驗法應(yīng)用背景 50
3.8.2 正交實驗法簡介 51
3.8.3 正交實驗法應(yīng)用步驟和原則 52
3.8.4 正交實驗法應(yīng)用示例 52
習(xí)題 54
第4章 白盒測試 57
4.1 白盒測試簡介 58
4.2 靜態(tài)白盒測試 58
4.2.1 代碼檢查 58
4.2.2 靜態(tài)結(jié)構(gòu)分析 60
4.2.3 程序流程分析 60
4.2.4 編程規(guī)范 62
4.2.5 靜態(tài)測試掃描工具 65
4.2.6 靜態(tài)測試掃描工具安裝與使用 68
4.3 邏輯覆蓋 71
4.3.1 邏輯覆蓋簡介 71
4.3.2 語句覆蓋 72
4.3.3 判定覆蓋 73
4.3.4 條件覆蓋 74
4.3.5 條件/判定覆蓋 74
4.3.6 條件組合覆蓋 75
4.3.7 修正條件/判定覆蓋 76
4.3.8 覆蓋標(biāo)準(zhǔn) 76
4.4 基本路徑覆蓋 77
4.4.1 控制流圖 77
4.4.2 環(huán)路復(fù)雜度 79
4.4.3 基本路徑覆蓋及實例 80
4.5 測試覆蓋分析工具 84
4.5.1 JaCoCo 84
4.5.2 JCov 84
4.5.3 Cobertura 85
4.6 循環(huán)測試 85
4.6.1 基本循環(huán)結(jié)構(gòu)測試 85
4.6.2 復(fù)合循環(huán)結(jié)構(gòu)測試 86
4.7 程序變異測試 87
4.7.1 程序變異 88
4.7.2 變異測試 89
4.7.3 變異測試的優(yōu)缺點 91
4.8 符號執(zhí)行 91
4.8.1 符號執(zhí)行簡介 91
4.8.2 符號執(zhí)行示例 92
4.8.3 符號執(zhí)行的特點和作用 93
4.9 程序插樁和調(diào)試 93
4.9.1 斷言 93
4.9.2 設(shè)計插樁 94
4.9.3 程序調(diào)試 96
習(xí)題 98
第5章 軟件測試過程 103
5.1 單元測試 104
5.1.1 單元測試簡介 104
5.1.2 單元測試的任務(wù) 107
5.1.3 JUnit單元測試入門 111
5.2 集成測試 114
5.2.1 集成測試簡介 114
5.2.2 一次性集成與增量式集成 119
5.2.3 自頂向下集成與自底
向上集成 120
5.2.4 基于調(diào)用圖的集成 122
5.2.5 其他集成測試方法 124
5.3 系統(tǒng)測試 128
5.3.1 系統(tǒng)測試簡介 128
5.3.2 系統(tǒng)測試項目 129
5.4 驗收測試 138
5.4.1 驗收測試簡介 138
5.4.2 驗收測試的分類 139
5.5 回歸測試 140
5.5.1 回歸測試簡介 140
5.5.2 實施回歸測試 141
習(xí)題 142
第6章 面向?qū)ο鬁y試 146
6.1 面向?qū)ο筇攸c對測試的影響 147
6.1.1 封裝對測試的影響 147
6.1.2 繼承對測試的影響 147
6.1.3 多態(tài)對測試的影響 148
6.1.4 復(fù)雜的依賴關(guān)系對
測試的影響 148
6.2 面向?qū)ο鬁y試技術(shù) 149
6.2.1 面向?qū)ο鬁y試技術(shù)簡介 149
6.2.2 類測試 149
習(xí)題 150
第7章 自動化測試 151
7.1 自動化測試技術(shù)和工具 152
7.1.1 自動化測試簡介 152
7.1.2 自動化測試的優(yōu)點、
局限性和適用情況 152
7.1.3 自動化測試工具 154
7.2 自動化黑盒測試 155
7.2.1 自動化黑盒測試的基本原理 155
7.2.2 自動化黑盒測試的相關(guān)技術(shù) 156
7.3 自動化白盒測試 158
7.3.1 自動化白盒測試工具
Logiscope 158
7.3.2 Logiscope的功能 159
習(xí)題 160
第8章 軟件評審 162
8.1 軟件評審簡介 163
8.1.1 軟件評審的概念 163
8.1.2 軟件評審的作用 163
8.1.3 軟件評審的特點 164
8.2 軟件評審活動 164
8.2.1 需求評審 165
8.2.2 概要設(shè)計評審 166
8.2.3 詳細(xì)設(shè)計評審 167
8.2.4 數(shù)據(jù)庫設(shè)計評審 168
8.2.5 測試評審 170
8.2.6 驗收評審 170
8.3 軟件評審技術(shù)和工具 171
8.4 軟件評審的組織和相關(guān)因素 171
8.4.1 軟件評審的組織 171
8.4.2 軟件評審的相關(guān)因素 172
習(xí)題 173
第9章 軟件質(zhì)量與質(zhì)量保證 174
9.1 軟件錯誤及分類 175
9.1.1 各種軟件錯誤 175
9.1.2 程序正確性的標(biāo)準(zhǔn) 176
9.1.3 軟件錯誤的分類 176
9.2 程序中隱藏錯誤數(shù)量估計 177
9.2.1 種子模型法 177
9.2.2 Hyman估算法 178
9.2.3 回歸分析 179
9.3 軟件質(zhì)量 180
9.3.1 軟件質(zhì)量基本概念 180
9.3.2 相關(guān)概念 181
9.3.3 軟件質(zhì)量特性 181
9.4 軟件質(zhì)量模型和質(zhì)量度量 182
9.4.1 軟件質(zhì)量模型 182
9.4.2 軟件質(zhì)量的度量 184
9.4.3 不同質(zhì)量之間的關(guān)系 185
9.5 軟件質(zhì)量管理與質(zhì)量保證 186
9.5.1 軟件質(zhì)量管理 186
9.5.2 軟件質(zhì)量保證 187
9.5.3 軟件質(zhì)量保證體系 188
習(xí)題 190
第10章 測試的組織和管理 192
10.1 人員和資源組織 193
10.1.1 軟件測試工作的特點 193
10.1.2 軟件測試人員組織 193
10.1.3 軟件測試資源組織 195
10.2 過程和進度管理 195
10.2.1 軟件測試項目的生命周期 195
10.2.2 測試進度管理 199
10.3 測試文檔、測試用例和
缺陷管理 199
10.3.1 測試文檔管理 199
10.3.2 測試用例管理 200
10.3.3 缺陷管理 202
習(xí)題 203
第11章 軟件測試熱點 204
11.1 安全測試 205
11.1.1 安全測試簡介 205
11.1.2 安全測試方法 206
11.1.3 安全測試示例 211
11.2 移動應(yīng)用測試 218
11.2.1 移動應(yīng)用測試簡介 218
11.2.2 移動應(yīng)用自動化測試
工具簡介 219
11.2.3 移動應(yīng)用測試示例 221
習(xí)題 228
參考文獻 231