第一部分 軟件測試能力和資格的評估
第1章 評估軟件測試的能力和人員資格 3
1.1 軟件測試涉及的人員 3
1.2 軟件測試的多種角色 4
1.2.1 制造 4
1.2.2 創(chuàng)作車間 4
1.2.3 專業(yè)化過程 4
1.3 什么是缺陷 5
1.3.1 缺陷與故障 5
1.3.2 過程問題與缺陷率 5
1.4 軟件測試的商業(yè)前景 6
1.5 現(xiàn)有的測試過程和測試人員的狀況如何 6
1.5.1 評估現(xiàn)有測試過程的質(zhì)量 7
1.5.2 評估測試人員的素質(zhì) 11
1.6 小結(jié) 14
第二部分 搭建軟件測試環(huán)境
第2章 制定軟件測試策略 23
2.1 計算機系統(tǒng)的策略風(fēng)險 23
2.2 經(jīng)濟(jì)學(xué)測試 24
2.3 常見的計算機問題 25
2.3.1 軟件問題 25
2.3.2 數(shù)據(jù)問題 26
2.4 系統(tǒng)開發(fā)生命周期的經(jīng)濟(jì)學(xué)測試 26
2.5 測試是一個組織問題 26
2.6 建立測試原則 28
2.7 測試的結(jié)構(gòu)化方法 29
2.7.1 需求 31
2.7.2 設(shè)計 31
2.7.3 編程(創(chuàng)建/構(gòu)建) 31
2.7.4 測試過程 31
2.7.5 安裝 32
2.7.6 維護(hù) 32
2.8 測試策略 32
2.8.1 測試因素 32
2.8.2 制定測試策略 35
2.8.3 創(chuàng)建測試策略樣例 36
2.9 測試方法論 37
2.10 軟件測試的狀況 38
2.11 小結(jié) 39
第3章 建立軟件測試方法論 41
3.1 需要測試什么 41
3.2 為什么缺陷難以發(fā)現(xiàn) 41
3.3 減少測試費用 42
3.4 什么是驗證和確認(rèn) 44
3.5 功能和結(jié)構(gòu)測試 45
3.5.1 為什么使用兩種測試方法 46
3.5.2 使用驗證和確認(rèn)技術(shù)進(jìn)行的結(jié)構(gòu)和功能測試 46
3.6 工作流程的概念 46
3.7 開發(fā)測試方法論中要考慮的8個問題 48
3.7.1 獲取和研究測試策略 48
3.7.2 確定開發(fā)項目的類型 49
3.7.3 確定軟件系統(tǒng)的類型 49
3.7.4 確定項目的范圍 50
3.7.5 確定戰(zhàn)術(shù)風(fēng)險 50
3.7.6 確定何時進(jìn)行測試 51
3.7.7 建立系統(tǒng)測試計劃 52
3.7.8 建立單元測試計劃 52
3.8 測試戰(zhàn)術(shù)檢查單 54
3.9 小結(jié) 54
第4章 確定軟件測試技術(shù) 65
4.1 應(yīng)用程序適應(yīng)性的概念 65
4.2 測試技術(shù)/工具的選擇過程 65
4.2.1 結(jié)構(gòu)測試與功能測試 66
4.2.2 動態(tài)測試與靜態(tài)測試 67
4.2.3 人工測試與自動測試 68
4.3 測試技術(shù)/工具的選擇 68
4.4 結(jié)構(gòu)化系統(tǒng)測試技術(shù) 68
4.4.1 壓力測試技術(shù) 69
4.4.2 執(zhí)行測試技術(shù) 70
4.4.3 恢復(fù)測試技術(shù) 71
4.4.4 操作測試技術(shù) 72
4.4.5 一致性測試技術(shù) 73
4.4.6 安全性測試技術(shù) 74
4.5 功能性系統(tǒng)測試技術(shù) 75
4.5.1 需求測試技術(shù) 75
4.5.2 回歸測試技術(shù) 76
4.5.3 錯誤處理測試技術(shù) 77
4.5.4 人工支持測試技術(shù) 78
4.5.5 系統(tǒng)間測試技術(shù) 79
4.5.6 控制測試技術(shù) 80
4.5.7 平行測試技術(shù) 81
4.6 單元測試技術(shù) 81
4.7 功能測試和分析 82
4.8 功能測試 82
4.8.1 獨立于規(guī)格說明技術(shù)的測試 82
4.8.2 基于規(guī)格說明技術(shù)的測試 83
4.8.3 結(jié)構(gòu)測試和分析 84
4.8.4 面向錯誤的測試和分析 85
4.8.5 單元測試和分析的管理 87
4.9 測試因素/測試技術(shù)矩陣 88
4.10 小結(jié) 88
第5章 軟件測試工具的選擇和安裝 90
5.1 測試工具—測試的“錘子” 90
5.2 測試工具的選擇和使用 94
5.2.1 第1步, 將工具及其用途進(jìn)行匹配 95
5.2.2 第2步, 選擇適合于軟件生命周期各階段的工具 95
5.2.3 第3步, 選擇與測試人員的技能水平相符的測試工具 95
5.2.4 第4步, 選擇可支付的工具 99
5.2.5 如果完成第4步后所有的工具都被排除了, 那該如何做 101
5.3 指定測試工具管理者 101
5.3.1 第1步, 選擇工具管理者 102
5.3.2 第2步, 為工具管理者分配任務(wù) 102
5.3.3 第3步, 限定工具管理者的任期 103
5.4 小結(jié) 104
第三部分 11步軟件測試過程
第6章 11步軟件測試過程概述 109
6.1 計算機測試的費用 109
6.1.1 確定消除缺陷的費用 110
6.1.2 降低測試的費用 111
6.2 生命周期測試 111
6.2.1 定義過程 112
6.2.2 使用V-測試概念 113
6.2.3 組建軟件開發(fā)項目組 113
6.2.4 組建軟件開發(fā)測試小組 113
6.3 軟件開發(fā)過程中的驗證和確認(rèn) 115
6.4 11步軟件測試過程 115
6.5 工作流程所需的技能 117
6.6 小結(jié) 118
第7章 第1步, 評估項目管理開發(fā)的估算和狀態(tài) 120
7.1 概述 120
7.2 目標(biāo) 120
7.3 涉及的問題 120
7.4 工作流程 122
7.5 輸入 122
7.6 執(zhí)行過程 122
7.6.1 任務(wù)1:測試軟件估算的有效性 122
7.6.2 任務(wù)2:測試軟件系統(tǒng)的狀態(tài) 131
7.7 檢查過程 139
7.8 輸出 139
7.9 原則 139
7.10 小結(jié) 139
第8章 第2步, 制定測試計劃 143
8.1 概述 143
8.2 目標(biāo) 143
8.3 涉及的問題 144
8.4 工作流程 145
8.5 輸入 146
8.6 執(zhí)行過程 146
8.6.1 任務(wù)1:組建測試小組 146
8.6.2 任務(wù)2:了解項目風(fēng)險 148
8.6.3 任務(wù)3:制定測試計劃 154
8.6.4 任務(wù)4:審查測試計劃 160
8.7 檢查過程 167
8.8 輸出 167
8.9 原則 167
8.10 小結(jié) 168
第9章 第3步, 需求階段測試 183
9.1 概述 183
9.2 目標(biāo) 184
9.3 涉及的問題 185
9.4 工作流程 185
9.5 輸入 185
9.6 執(zhí)行過程 186
9.6.1 任務(wù)1:準(zhǔn)備風(fēng)險矩陣 186
9.6.2 任務(wù)2:進(jìn)行需求階段的測試因素分析 192
9.6.3 任務(wù)3:執(zhí)行需求走查 194
9.7 檢查過程 196
9.8 輸出 196
9.9 原則 196
9.10 小結(jié) 196
第10章 第4步, 設(shè)計階段測試 206
10.1 概述 206
10.2 目標(biāo) 206
10.3 涉及的問題 206
10.4 工作流程 208
10.5 輸入 208
10.6 執(zhí)行過程 209
10.6.1 任務(wù)1:給成功因素評分 209
10.6.2 任務(wù)2:分析測試因素 211
10.6.3 任務(wù)3:進(jìn)行設(shè)計評審 213
10.6.4 任務(wù)4:審查設(shè)計的可交付性 214
10.7 檢查過程 214
10.8 輸出 215
10.9 原則 215
10.10 小結(jié) 215
第11章 第5步, 編程階段測試 238
11.1 概述 238
11.2 目標(biāo) 239
11.3 涉及的問題 239
11.4 工作流程 239
11.5 輸入 240
11.6 執(zhí)行過程 241
11.6.1 任務(wù)1:對程序進(jìn)行桌面調(diào)試 241
11.6.2 任務(wù)2:分析編程階段測試因素 242
11.6.3 任務(wù)3:執(zhí)行同行評審 244
11.7 檢查過程 246
11.8 輸出 246
11.9 原則 246
11.10 小結(jié) 246
第12章 第6步, 執(zhí)行測試并記錄結(jié)果 257
12.1 概述 257
12.2 目標(biāo) 257
12.3 涉及的問題 257
12.4 工作流程 259
12.5 輸入 259
12.6 執(zhí)行過程 260
12.6.1 任務(wù)1:構(gòu)造測試數(shù)據(jù) 260
12.6.2 任務(wù)2:執(zhí)行測試 274
12.6.3 任務(wù)3:記錄測試結(jié)果 276
12.7 檢查過程 278
12.8 輸出 278
12.9 原則 278
12.10 小結(jié) 279
第13章 第7步, 驗收測試 291
13.1 概述 291
13.2 目標(biāo) 291
13.3 涉及的問題 294
13.4 工作流程 294
13.5 輸入 294
13.6 執(zhí)行過程 295
13.6.1 任務(wù)1:定義驗收標(biāo)準(zhǔn) 295
13.6.2 任務(wù)2:制定驗收計劃 297
13.6.3 任務(wù)3:執(zhí)行驗收計劃(進(jìn)行驗收測試和評審) 298
13.6.4 任務(wù)4:得出驗收結(jié)果 302
13.7 檢查過程 305
13.8 輸出 305
13.9 原則 305
13.10 小結(jié) 305
第14章 第8步, 報告測試結(jié)果 309
14.1 概述 309
14.2 目標(biāo) 310
14.3 涉及的問題 311
14.4 工作流程 311
14.5 輸入 312
14.5.1 測試計劃和項目計劃 312
14.5.2 預(yù)期的處理結(jié)果 312
14.5.3 測試中收集的數(shù)據(jù) 312
14.5.4 存儲測試過程中收集的數(shù)據(jù) 313
14.6 執(zhí)行過程 313
14.6.1 任務(wù)1:報告軟件狀態(tài) 314
14.6.2 任務(wù)2:報告中間測試結(jié)果 319
14.6.3 獨立項目構(gòu)件測試結(jié)果 326
14.6.4 任務(wù)3:報告最終測試結(jié)果 327
14.7 檢查過程 328
14.8 輸出 329
14.9 原則 329
14.10 小結(jié) 329
第15章 第9步, 測試軟件安裝 333
15.1 概述 333
15.2 目標(biāo) 333
15.3 涉及的問題 334
15.4 工作流程 335
15.5 輸入 336
15.6 執(zhí)行過程 336
15.6.1 任務(wù)1a:新系統(tǒng)的安裝測試 336
15.6.2 任務(wù)1b:測試軟件的變更版本 338
15.6.3 任務(wù)2:監(jiān)控產(chǎn)品 341
15.6.4 任務(wù)3:文檔化問題 342
15.7 檢查過程 342
15.8 輸出 342
15.9 原則 342
15.10 小結(jié) 343
第16章 第10步, 測試軟件變更 352
16.1 概述 352
16.2 目標(biāo) 352
16.3 涉及的問題 353
16.4 工作流程 354
16.5 輸入 355
16.6 執(zhí)行過程 355
16.6.1 任務(wù)1:制定/更新測試計劃 355
16.6.2 任務(wù)2:開發(fā)/更新測試數(shù)據(jù) 356
16.6.3 任務(wù)3:測試變更控制過程 358
16.6.4 任務(wù)4:執(zhí)行測試 359
16.6.5 任務(wù)5:開發(fā)/更新培訓(xùn)材料 360
16.7 檢查過程 362
16.8 輸出 362
16.8.1 是否可接受自動化應(yīng)用系統(tǒng) 362
16.8.2 是否可接受人工部分 363
16.9 原則 364
16.9.1 進(jìn)行測試調(diào)整 364
16.9.2 進(jìn)行培訓(xùn)調(diào)整 364
16.9.3 軟件變更反饋 364
16.10 小結(jié) 365
第17章 第11步, 評價測試的有效性 378
17.1 概述 378
17.2 目標(biāo) 378
17.3 涉及的問題 378
17.4 工作流程 379
17.5 輸入 381
17.6 執(zhí)行過程 381
17.6.1 任務(wù)1:確定評估目標(biāo) 381
17.6.2 任務(wù)2:確定度量內(nèi)容 382
17.6.3 任務(wù)3:指定度量責(zé)任 382
17.6.4 任務(wù)4:選擇評估方法 382
17.6.5 任務(wù)5:確定所需事實 383
17.6.6 任務(wù)6:收集評估數(shù)據(jù) 383
17.6.7 任務(wù)7:評估測試有效性 383
17.7 檢查過程 386
17.8 輸出 386
17.9 原則 387
17.10 小結(jié) 387
第四部分 專用系統(tǒng)和應(yīng)用的測試
第18章 測試客戶/服務(wù)器系統(tǒng) 391
18.1 概述 391
18.2 目標(biāo) 391
18.3 涉及的問題 391
18.4 工作流程 392
18.5 輸入 392
18.6 執(zhí)行過程 392
18.6.1 任務(wù)1:評估準(zhǔn)備情況 392
18.6.2 任務(wù)2:評估關(guān)鍵組成部分 399
18.6.3 任務(wù)3:測試系統(tǒng) 399
18.7 檢查過程 399
18.8 輸出 399
18.9 原則 400
18.10 小結(jié) 400
第19章 測試快速應(yīng)用開發(fā)系統(tǒng) 406
19.1 概述 406
19.2 目標(biāo) 406
19.3 涉及的問題 406
19.3.1 迭代過程中的測試信息 407
19.3.2 測試組件信息 407
19.3.3 測試性能信息 407
19.3.4 記錄測試信息 407
19.4 工作流程 407
19.5 輸入 408
19.6 執(zhí)行過程 408
19.6.1 測試迭代的快速開發(fā) 408
19.6.2 螺旋測試 409
19.6.3 任務(wù)1:測試計劃的迭代 410
19.6.4 任務(wù)2:測試中間計劃的迭代 411
19.6.5 任務(wù)3:測試最終計劃的迭代 412
19.7 檢查過程 412
19.8 輸出 412
19.9 原則 412
19.10 小結(jié) 413
第20章 測試系統(tǒng)文檔的恰當(dāng)性 418
20.1 概述 418
20.2 目標(biāo) 418
20.3 涉及的問題 418
20.4 工作流程 419
20.5 輸入 420
20.6 執(zhí)行過程 421
20.6.1 任務(wù)1:度量項目文檔需求 421
20.6.2 任務(wù)2:確定必須生成的文檔 422
20.6.3 任務(wù)3:確定單獨文檔的完整性 425
20.6.4 任務(wù)4:確定項目文檔是否符合實際 426
20.7 檢查過程 427
20.8 輸出 427
20.9 原則 427
20.10 小結(jié) 428
第21章 測試基于Web的系統(tǒng) 431
21.1 概述 431
21.1.1 客戶/服務(wù)器體系結(jié)構(gòu) 431
21.1.2 基于Web的體系結(jié)構(gòu) 431
21.2 目標(biāo) 432
21.3 涉及的問題 432
21.4 工作流程 433
21.5 輸入 433
21.6 執(zhí)行過程 434
21.6.1 任務(wù)1:選擇基于Web的風(fēng)險加入到測試計劃中 434
21.6.2 任務(wù)2:選擇基于Web的測試 437
21.6.3 任務(wù)3:選擇基于Web系統(tǒng)的測試工具 439
21.6.4 任務(wù)4:執(zhí)行Web系統(tǒng)的測試 439
21.7 檢查過程 440
21.8 輸出 440
21.9 原則 440
21.10 小結(jié) 440
第22章 測試成品軟件 443
22.1 概述 443
22.2 目標(biāo) 443
22.3 涉及的問題 443
22.4 工作流程 444
22.5 輸入 444
22.6 執(zhí)行過程 444
22.6.1 任務(wù)1:測試業(yè)務(wù)適應(yīng)性 445
22.6.2 任務(wù)2:測試操作適應(yīng)性 447
22.6.3 任務(wù)3:測試人員適應(yīng)性 451
22.6.4 任務(wù)4:確認(rèn)軟件處理的驗收測試 451
22.7 檢查過程 453
22.8 輸出 453
22.9 原則 453
22.10 小結(jié) 454
第23章 多平臺環(huán)境的測試 460
23.1 概述 460
23.2 目標(biāo) 460
23.3 涉及的問題 460
23.4 工作流程 460
23.5 輸入 461
23.6 執(zhí)行過程 462
23.6.1 任務(wù)1:定義平臺配置涉及的問題 462
23.6.2 任務(wù)2:列出所需平臺配置 463
23.6.3 任務(wù)3:評估測試實驗室配置 463
23.6.4 任務(wù)4:列出平臺影響的軟件組件 463
23.6.5 任務(wù)5:列出接口平臺的影響 465
23.6.6 任務(wù)6:執(zhí)行測試 465
23.7 檢查過程 465
23.8 輸出 465
23.9 原則 466
23.10 小結(jié) 466
第24章 安全性測試 471
24.1 概述 471
24.2 目標(biāo) 471
24.3 涉及的問題 471
24.4 工作流程 471
24.5 輸入 472
24.6 執(zhí)行過程 473
24.6.1 任務(wù)1:明確潛在的安全隱患 473
24.6.2 任務(wù)2:明確潛在的入侵點 473
24.6.3 任務(wù)3:創(chuàng)建入侵矩陣 476
24.6.4 任務(wù)4:明確高風(fēng)險入侵點 477
24.6.5 任務(wù)5:執(zhí)行安全性測試 478
24.7 檢查過程 478
24.8 輸出 479
24.9 原則 479
24.10 小結(jié) 479
第25章 測試數(shù)據(jù)倉庫 482
25.1 概述 482
25.2 目標(biāo) 482
25.3 涉及的問題 482
25.4 工作流程 483
25.5 輸入 483
25.6 執(zhí)行過程 484
25.6.1 任務(wù)1:度量數(shù)據(jù)倉庫的問題數(shù)量 484
25.6.2 任務(wù)2:明確要測試的數(shù)據(jù)倉庫活動過程 484
25.6.3 任務(wù)3:測試數(shù)據(jù)倉庫活動過程的充分性 488
25.7 檢查過程 491
25.8 輸出 491
25.9 原則 491
25.10 小結(jié) 491
第五部分 創(chuàng)建測試文檔
第26章 創(chuàng)建測試文檔 505
26.1 使用 505
26.2 類型 506
26.3 責(zé)任 506
26.4 存儲 506
26.5 測試計劃文檔 506
26.5.1 第一部分:一般信息 507
26.5.2 第二部分:計劃 507
26.5.3 第三部分:規(guī)格說明和評價 508
26.5.4 第四部分:測試說明 508
26.6 測試分析報告文檔 511
26.6.1 第一部分:一般信息 511
26.6.2 第二部分:測試結(jié)果和結(jié)論 511
26.6.3 第三部分:軟件功能結(jié)論 511
26.6.4 第四部分:分析小結(jié) 512
26.7 小結(jié) 513