軟件測(cè)試是一門涉及廣泛知識(shí)的學(xué)科, 軟件測(cè)試行業(yè)在國(guó)內(nèi)方興未艾, 測(cè)試工程師們亟須掌握各種測(cè)試技術(shù)和工具, 測(cè)試團(tuán)隊(duì)的管理也亟須完善和提高。本書在編寫過程中考慮到測(cè)試人員的需求, 尤其是測(cè)試新手對(duì)各種知識(shí)的需求, 提供了豐富的測(cè)試知識(shí): 首先介紹了國(guó)內(nèi)外先進(jìn)的測(cè)試技術(shù)和測(cè)試?yán)砟? 如微軟的測(cè)試方法、RUP中的測(cè)試過程、敏捷測(cè)試的理念等; 其次詳細(xì)講述了幾個(gè)主要測(cè)試工具的使用, 如LoadRunner、AppScan等; 然后介紹了各種常用的開源測(cè)試工具, 為期待引入開源測(cè)試工具的團(tuán)隊(duì)提供參考; 最后, 結(jié)合項(xiàng)目實(shí)踐, 介紹了自動(dòng)化測(cè)試框架的開發(fā)。本書在每章的最后, 針對(duì)本章重要內(nèi)容給出習(xí)題, 方便大家進(jìn)行自測(cè)。
本書在介紹各種測(cè)試方法和技術(shù)時(shí),采用了淺顯易懂的例子,在介紹測(cè)試工具時(shí)也使用了大量的例子和代碼,方便讀者自己進(jìn)行實(shí)踐和演練,在介紹測(cè)試工具的開發(fā)時(shí)更是提供了豐富完整的開發(fā)示例代碼,讀者可直接使用,或者根據(jù)自己的實(shí)際情況進(jìn)行調(diào)整。
作者為編寫經(jīng)驗(yàn)豐富的工作室和教學(xué)經(jīng)驗(yàn)豐富的高校老師相結(jié)合,密切緊跟行業(yè)需求,內(nèi)容詳細(xì)實(shí)用。曾經(jīng)出版過一系列暢銷書籍。
第1篇 軟件測(cè)試的理論基礎(chǔ)
第1章 了解軟件測(cè)試行業(yè) 2
1.1 軟件測(cè)試的發(fā)展歷程 2
1.2 軟件測(cè)試的組織形式 4
1.2.1 軟件鼻祖微軟的經(jīng)驗(yàn)教訓(xùn) 4
1.2.2 軟件測(cè)試組織的雛形 4
1.2.3 組織形式的分類 5
1.2.4 綜合型的測(cè)試組織 6
1.3 軟件開發(fā)模式的分類 7
1.3.1 軟件開發(fā)模式的發(fā)展 7
1.3.2 線性模型 8
1.3.3 漸進(jìn)式模型 8
1.3.4 變換模型 9
1.3.5 RUP過程模型 9
1.3.6 敏捷運(yùn)動(dòng) 11
1.3.7 極限編程(XP) 12
1.4 不同軟件開發(fā)模式下的軟件測(cè)試 13
1.4.1 CMMI和ISO中的軟件測(cè)試 13
1.4.2 CMMI與軟件測(cè)試 13
1.4.3 ISO與軟件測(cè)試 14
1.4.4 敏捷開發(fā)中的軟件測(cè)試 15
1.5 小結(jié) 16
1.6 習(xí)題 16
第2章 軟件質(zhì)量與軟件測(cè)試 18
2.1 軟件質(zhì)量屬性 18
2.1.1 質(zhì)量的3個(gè)層次 18
2.1.2 軟件質(zhì)量模型 19
2.1.3 ISO 9000質(zhì)量管理體系與八項(xiàng)質(zhì)量管理原則 20
2.1.4 ISO 9000質(zhì)量管理體系的建立過程 20
2.1.5 CMMI質(zhì)量管理體系與過程改進(jìn) 21
2.1.6 結(jié)合PSP、TSP建立CMMI過程
改進(jìn)體系 21
2.1.7 應(yīng)用PDCA質(zhì)量控制法持續(xù)改進(jìn)軟件質(zhì)量 21
2.2 軟件質(zhì)量保證與軟件測(cè)試 22
2.2.1 SQA與軟件測(cè)試 22
2.2.2 SQA的工作內(nèi)容 22
2.2.3 QA與QC的區(qū)別 23
2.3 小結(jié) 23
2.4 習(xí)題 24
第3章 軟件測(cè)試的目的與原則 25
3.1 軟件測(cè)試的目的 25
3.1.1 測(cè)試是為了建立軟件的信心 25
3.1.2 軟件測(cè)試與軟件信心的關(guān)系 25
3.1.3 軟件測(cè)試的兩面性 26
3.1.4 軟件測(cè)試的驗(yàn)證與確認(rèn) 26
3.1.5 測(cè)試是一種服務(wù) 27
3.2 軟件測(cè)試應(yīng)該遵循的原則 27
3.2.1 Good enough原則 27
3.2.2 Pareto原則 28
3.2.3 盡可能早開展測(cè)試 28
3.2.4 在發(fā)現(xiàn)比較多錯(cuò)誤的地方需要投入更多的測(cè)試 29
3.2.5 同化效應(yīng) 29
3.3 小結(jié) 29
3.4 習(xí)題 30
第4章 軟件測(cè)試的方法論 31
4.1 軟件測(cè)試的5大流派 31
4.1.1 分析學(xué)派 31
4.1.2 標(biāo)準(zhǔn)學(xué)派 32
4.1.3 質(zhì)量學(xué)派 32
4.1.4 上下文驅(qū)動(dòng)學(xué)派 32
4.1.5 敏捷學(xué)派 33
4.1.6 不同流派的測(cè)試定義 33
4.2 軟件測(cè)試的方法應(yīng)用 34
4.2.1 微軟公司的第一類測(cè)試 34
4.2.2 微軟公司的第二類測(cè)試 35
4.2.3 微軟的缺陷管理 35
4.3 IBM公司的軟件測(cè)試方法 35
4.3.1 回歸測(cè)試 35
4.3.2 測(cè)試的度量 36
4.3.3 用例驅(qū)動(dòng) 36
4.3.4 RUP對(duì)軟件測(cè)試的分類 36
4.3.5 RUP對(duì)測(cè)試階段的劃分 38
4.4 自動(dòng)錯(cuò)誤預(yù)防(AEP)方法 38
4.4.1 AEP的基本概念 38
4.4.2 實(shí)現(xiàn)軟件自動(dòng)錯(cuò)誤預(yù)防的5大法則 39
4.5 小結(jié) 41
4.6 習(xí)題 42
第5章 軟件測(cè)試的過程管理 44
5.1 軟件測(cè)試的各個(gè)階段 44
5.2 測(cè)試需求 45
5.2.1 需求規(guī)格說明書的檢查要點(diǎn) 45
5.2.2 需求文檔的檢查步驟 45
5.2.3 通過編寫測(cè)試用例來檢查需求 48
5.3 測(cè)試的計(jì)劃 49
5.3.1 為什么要制定測(cè)試計(jì)劃 49
5.3.2 測(cè)試計(jì)劃是對(duì)測(cè)試過程的整體設(shè)計(jì) 49
5.3.3 確定測(cè)試范圍 50
5.3.4 制定測(cè)試策略 50
5.3.5 安排好測(cè)試資源 51
5.3.6 安排好進(jìn)度 51
5.3.7 計(jì)劃風(fēng)險(xiǎn) 52
5.4 測(cè)試的設(shè)計(jì)及測(cè)試用例 52
5.4.1 基于需求的測(cè)試用例設(shè)計(jì) 52
5.4.2 等價(jià)類劃分法 53
5.4.3 邊界值分析法 54
5.4.4 等價(jià)類+邊界值 56
5.4.5 基本路徑分析法 56
5.4.6 因果圖法 57
5.4.7 場(chǎng)景設(shè)計(jì)法 58
5.4.8 錯(cuò)誤猜測(cè)法 59
5.4.9 正交表與TCG的使用 59
5.4.10 利用均勻試驗(yàn)法設(shè)計(jì)測(cè)試用例 61
5.4.11 組合覆蓋與PICT的使用 62
5.4.12 分類樹與TESTONA的使用 64
5.4.13 測(cè)試用例設(shè)計(jì)的自動(dòng)化 66
5.4.14 敏捷測(cè)試用例設(shè)計(jì) 67
5.4.15 測(cè)試用例的粒度 67
5.4.16 基于需求的測(cè)試用例設(shè)計(jì) 67
5.4.17 測(cè)試用例數(shù)據(jù)生成的自動(dòng)化 68
5.5 測(cè)試的執(zhí)行 68
5.5.1 測(cè)試用例的合理選擇 68
5.5.2 測(cè)試的分工與資源利用 69
5.5.3 測(cè)試環(huán)境的搭建 69
5.5.4 BVT測(cè)試與冒煙測(cè)試 70
5.5.5 每日構(gòu)建的基本流程 70
5.5.6 通過每日構(gòu)建來規(guī)范源代碼管理 71
5.5.7 通過每日構(gòu)建來控制版本風(fēng)險(xiǎn) 71
5.6 測(cè)試的記錄和跟蹤 72
5.6.1 Bug的質(zhì)量衡量 72
5.6.2 如何錄入一個(gè)合格的Bug 72
5.6.3 Bug報(bào)告應(yīng)該注意的幾個(gè)問題 72
5.6.4 基于QC的缺陷管理 73
5.7 回歸測(cè)試 73
5.7.1 為什么會(huì)回歸 73
5.7.2 回歸測(cè)試的難度 74
5.7.3 基于風(fēng)險(xiǎn)的回歸測(cè)試 74
5.8 測(cè)試總結(jié)和報(bào)告 75
5.8.1 缺陷分類報(bào)告 76
5.8.2 缺陷趨勢(shì)報(bào)告 76
5.8.3 典型缺陷與Bug模式 77
5.8.4 測(cè)試中的PDCA循環(huán) 78
5.8.5 客觀全面的測(cè)試報(bào)告 79
5.8.6 實(shí)用測(cè)試經(jīng)驗(yàn)的總結(jié) 79
5.9 小結(jié) 80
5.10 習(xí)題 80
第2篇 軟件測(cè)試的技術(shù)與工具
第6章 軟件測(cè)試技術(shù) 82
6.1 常見的軟件測(cè)試技術(shù) 82
6.1.1 黑盒測(cè)試 82
6.1.2 白盒測(cè)試 83
6.1.3 自動(dòng)化測(cè)試 84
6.1.4 手工測(cè)試 84
6.1.5 單元測(cè)試 84
6.1.6 性能測(cè)試 86
6.1.7 壓力測(cè)試 89
6.1.8 安全測(cè)試 89
6.1.9 安裝測(cè)試 91
6.1.10 環(huán)境測(cè)試 93
6.2 巧用Windows自帶的小工具 95
6.2.1 找到Windows的任務(wù)管理器 95
6.2.2 檢查進(jìn)程駐留 95
6.2.3 檢查內(nèi)存問題 95
6.2.4 檢查網(wǎng)絡(luò)使用情況 95
6.2.5 檢查CPU使用情況 96
6.2.6 Perfmon的性能監(jiān)控 97
6.2.7 NetStat的網(wǎng)絡(luò)監(jiān)視 100
6.3 小結(jié) 101
6.4 習(xí)題 101
第7章 測(cè)試管理工具QC的應(yīng)用 103
7.1 測(cè)試管理平臺(tái) 103
7.1.1 測(cè)試過程管理規(guī)范化 103
7.1.2 測(cè)試管理平臺(tái)—QC簡(jiǎn)介 104
7.1.3 QC安裝 105
7.2 測(cè)試需求管理 110
7.2.1 定義測(cè)試需求 110
7.2.2 把需求項(xiàng)轉(zhuǎn)換成測(cè)試計(jì)劃 111
7.3 測(cè)試計(jì)劃管理 112
7.3.1 測(cè)試用例的管理 112
7.3.2 設(shè)計(jì)測(cè)試步驟 112
7.3.3 測(cè)試用例的重用 113
7.3.4 測(cè)試用例對(duì)需求項(xiàng)的覆蓋 114
7.4 測(cè)試執(zhí)行 115
7.4.1 定義測(cè)試集 115
7.4.2 為測(cè)試集添加測(cè)試用例 115
7.4.3 執(zhí)行測(cè)試 116
7.5 缺陷登記與跟蹤 117
7.5.1 添加新缺陷 117
7.5.2 如何避免錄入冗余的缺陷 117
7.5.3 BUG的生命周期 118
7.5.4 把缺陷鏈接到測(cè)試 119
7.6 在QC中生成測(cè)試報(bào)告的圖表 120
7.7 基于QC的測(cè)試項(xiàng)目管理 121
7.7.1 QC的庫(kù)結(jié)構(gòu) 121
7.7.2 創(chuàng)建QC項(xiàng)目庫(kù) 121
7.7.3 定制項(xiàng)目 121
7.7.4 添加項(xiàng)目組成員 122
7.7.5 自定義QC的數(shù)據(jù)字段 123
7.7.6 配置跟蹤提醒規(guī)則 126
7.7.7 設(shè)置警報(bào)規(guī)則 128
7.7.8 設(shè)置工作流 129
7.7.9 “缺陷模塊”列表自定義 129
7.7.10 腳本編輯器 130
7.7.11 QC項(xiàng)目的導(dǎo)入 導(dǎo)出 131
7.8 小結(jié) 133
7.9 習(xí)題 133
第8章 功能自動(dòng)化測(cè)試工具UFT的
應(yīng)用 135
8.1 如何開展功能自動(dòng)化測(cè)試 135
8.1.1 選取合適的測(cè)試項(xiàng)目來開展自動(dòng)化測(cè)試 135
8.1.2 自動(dòng)化測(cè)試工程師的知識(shí)體系 135
8.1.3 自動(dòng)化測(cè)試工具選型 136
8.1.4 自動(dòng)化測(cè)試項(xiàng)目計(jì)劃 137
8.2 使用UFT開展功能自動(dòng)化測(cè)試 139
8.2.1 UFT的安裝 139
8.2.2 使用UFT錄制腳本 139
8.2.3 使用關(guān)鍵字視圖和專家視圖編輯腳本 142
8.2.4 回放腳本 143
8.2.5 插入檢查點(diǎn) 144
8.3 構(gòu)建功能自動(dòng)化測(cè)試框架 147
8.3.1 模塊化框架 147
8.3.2 函數(shù)庫(kù)結(jié)構(gòu)框架 149
8.3.3 數(shù)據(jù)驅(qū)動(dòng)框架 150
8.4 小結(jié) 152
8.5 習(xí)題 153
第9章 性能測(cè)試工具LoadRunner的應(yīng)用 154
9.1 如何開展性能測(cè)試 154
9.1.1 性能測(cè)試工程師的素質(zhì)要求 154
9.1.2 認(rèn)識(shí)性能測(cè)試 155
9.1.3 性能測(cè)試的類型 156
9.1.4 性能測(cè)試成熟度模型 157
9.1.5 分析和定義性能需求 158
9.1.6 “不成文的”性能需求定義 159
9.1.7 計(jì)劃性能測(cè)試 160
9.2 使用LoadRunner開展性能測(cè)試 160
9.2.1 LoadRunner簡(jiǎn)介 160
9.2.2 LoadRunner基本使用方法和步驟 162
9.2.3 選擇協(xié)議 164
9.2.4 錄制腳本 165
9.2.5 常見腳本回放問題解決 167
9.2.6 修改和完善腳本 168
9.2.7 腳本參數(shù)化 169
9.2.8 添加事務(wù) 170
9.2.9 添加內(nèi)容檢查點(diǎn) 171
9.2.10 性能參數(shù)的選擇和監(jiān)視 172
9.2.11 運(yùn)行場(chǎng)景 173
9.2.12 選擇需要監(jiān)控的性能參數(shù) 173
9.2.13 性能測(cè)試報(bào)告與性能瓶頸分析 173
9.3 小結(jié) 175
9.4 習(xí)題 175
第10章 安全漏洞的分析與測(cè)試 176
10.1 常見安全漏洞分析 176
10.1.1 緩沖區(qū)溢出 176
10.1.2 整數(shù)溢出 178
10.1.3 命令注入 179
10.1.4 SQL注入 179
10.1.5 XSS – 跨站腳本攻擊 181
10.2 使用AppScan進(jìn)行安全測(cè)試 183
10.2.1 AppScan簡(jiǎn)介 183
10.2.2 利用AppScan進(jìn)行Web安全測(cè)試 183
10.2.3 使用AppScan測(cè)試AltoroJ項(xiàng)目 184
10.3 小結(jié) 187
10.4 習(xí)題 188
第11章 單元測(cè)試工具M(jìn)STest的應(yīng)用 189
11.1 單元測(cè)試范圍管理 189
11.1.1 單元測(cè)試的分類 189
11.1.2 靜態(tài)單元測(cè)試 190
11.1.3 動(dòng)態(tài)單元測(cè)試 191
11.1.4 單元測(cè)試的要求 191
11.1.5 單元測(cè)試的效果 191
11.1.6 單元測(cè)試的范圍 191
11.2 單元測(cè)試的過程管理 192
11.2.1 單元測(cè)試的過程策劃 192
11.2.2 單元測(cè)試的組織 192
11.2.3 單元測(cè)試模式的選擇 192
11.2.4 單元測(cè)試的策略 192
11.2.5 單元測(cè)試用例的設(shè)計(jì) 193
11.2.6 代碼標(biāo)準(zhǔn)和規(guī)范 193
11.2.7 代碼審查制度 193
11.2.8 單元測(cè)試的流程 194
11.2.9 單元測(cè)試與每日構(gòu)建的結(jié)合 194
11.2.10 單元測(cè)試的自動(dòng)化方面 195
11.3 單元測(cè)試的質(zhì)量度量 196
11.3.1 單元測(cè)試覆蓋率 196
11.3.2 單元測(cè)試評(píng)審 197
11.4 單元測(cè)試工具M(jìn)STest的應(yīng)用 197
11.4.1 建立單元測(cè)試項(xiàng)目 198
11.4.2 巧用NMock對(duì)象 199
11.4.3 對(duì)缺乏接口實(shí)現(xiàn)的類的方法進(jìn)行測(cè)試 199
11.4.4 使用NMock對(duì)象 200
11.4.5 使用NMock的場(chǎng)合 201
11.4.6 單元測(cè)試的執(zhí)行 201
11.4.7 測(cè)試管理 201
11.4.8 運(yùn)行測(cè)試代碼 201
11.4.9 查看測(cè)試結(jié)果 201
11.5 數(shù)據(jù)驅(qū)動(dòng)的單元測(cè)試 202
11.5.1 為什么要使用數(shù)據(jù)驅(qū)動(dòng)的方式 202
11.5.2 創(chuàng)建數(shù)據(jù)驅(qū)動(dòng)單元測(cè)試 202
11.5.3 使用數(shù)據(jù)源 204
11.5.4 使用配置文件定義數(shù)據(jù)源 204
11.5.5 編寫單元測(cè)試代碼使用配置文件定義的數(shù)據(jù)源 205
11.6 小結(jié) 206
11.7 習(xí)題 206
第12章 開源測(cè)試工具 207
12.1 開源測(cè)試工具簡(jiǎn)介 207
12.1.1 開源的背景 207
12.1.2 開源測(cè)試工具的發(fā)展現(xiàn)狀 207
12.1.3 開源測(cè)試工具的分布 207
12.1.4 開源測(cè)試工具的來源 208
12.1.5 開源測(cè)試工具的優(yōu)勢(shì) 208
12.1.6 開源測(cè)試工具的不足 208
12.2 常用開源測(cè)試工具介紹—測(cè)試管理類 209
12.2.1 Bugzilla 209
12.2.2 Mantis 210
12.2.3 BugFree 211
12.2.4 綜合比較 211
12.3 常用開源測(cè)試工具介紹—單元測(cè)試類 212
12.3.1 NUnit 212
12.3.2 NMock 213
12.3.3 NUnitForms 214
12.4 常用開源測(cè)試工具介紹—性能測(cè)試類 215
12.4.1 JMeter 215
12.4.2 TestMaker 217
12.4.3 DBMonster 217
12.5 常用開源測(cè)試工具介紹—自動(dòng)化功能測(cè)試類 219
12.5.1 Abbot Java GUI Test Framework 220
12.5.2 White 221
12.5.3 Watir 222
12.6 如何在測(cè)試組中引入開源測(cè)試工具 224
12.6.1 開源測(cè)試工具的成本考慮 224
12.6.2 引入開源測(cè)試工具的步驟 224
12.6.3 引入開源測(cè)試工具可能碰到的問題 225
12.7 小結(jié) 226
12.8 習(xí)題 226
第13章 用戶界面測(cè)試管理 227
13.1 用戶界面測(cè)試的必要性 227
13.2 如何進(jìn)行用戶界面測(cè)試 228
13.2.1 用戶界面測(cè)試的時(shí)機(jī) 228
13.2.2 后期修改界面的風(fēng)險(xiǎn) 228
13.2.3 界面測(cè)試遺漏 228
13.2.4 用戶界面測(cè)試的要點(diǎn) 228
13.2.5 減少用戶的工作量 229
13.2.6 “少就是多” 229
13.3 用戶界面測(cè)試原則 229
13.3.1 親和力 230
13.3.2 協(xié)助 231
13.3.3 有效 232
13.3.4 鼓勵(lì) 232
13.3.5 熟悉 233
13.3.6 明顯 233
13.3.7 個(gè)性化 234
13.3.8 安全 234
13.3.9 滿意 235
13.3.10 簡(jiǎn)單 235
13.3.11 支持 235
13.3.12 多樣性 236
13.4 小結(jié) 236
13.5 習(xí)題 237
第14章 自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn) 238
14.1 自動(dòng)化測(cè)試用例設(shè)計(jì) 238
14.1.1 手工測(cè)試用例與自動(dòng)化測(cè)試用例 238
14.1.2 測(cè)試類型 239
14.1.3 自動(dòng)化測(cè)試用例編寫原則 239
14.2 BBS社區(qū)項(xiàng)目實(shí)戰(zhàn) 240
14.2.1 準(zhǔn)備工作 240
14.2.2 項(xiàng)目結(jié)構(gòu)介紹 241
14.2.3 配置文件 241
14.2.4 樣本與執(zhí)行結(jié)果 242
14.2.5 編寫測(cè)試用例 242
14.2.6 執(zhí)行測(cè)試用例 245
14.3 小結(jié) 245
14.4 習(xí)題 245
收起全部↑