內容簡介
《全國計算機等級考試專用輔導教程:四級軟體測試工程師(2012版)》緊扣最新版考試大綱,結合編者多年從事命題、閱卷及培訓輔導的實際經驗編寫而成。《全國計算機等級考試專用輔導教程:四級軟體測試工程師(2012版)》章節安排與官方教程同步,主要內容包括:軟體測試的基本概念,軟體測試類型及其在軟體開發過程中的地位,代碼檢查、走查與評審,覆蓋率(白盒)測試,功能(黑盒)測試,單元測試和集成測試,系統測試,軟體性能測試和可靠性測試,面向對象軟體的測試,Web套用軟體測試,其他測試,軟體測試過程和管理,軟體自動化測試,軟體測試的標準和文檔,軟體測試實踐等。章節前插入了近幾年考試分布,精講考試重點與難點,講解過程中連結最新2年的考試真題,方便讀者了解最新考試動態。章節末安排了典型題講解和適量過關習題。書末附有3套樣題和解析,供考生考前實戰演練。《全國計算機等級考試專用輔導教程:四級軟體測試工程師(2012版)》以全國計算機等級考試考生為主要讀者對象,適合於考生在考前複習使用,也可作為相關考試培訓班的輔導教材。
目錄
第1章 軟體測試的基本概念 1
1.1 軟體質量的概念 1
1.1.1 軟體質量的定義 1
1.1.2 軟體質量的屬性 2
1.1.3 軟體質量的模型 3
1.1.4 軟體質量的度量 5
1.2 軟體測試的概念 5
1.2.1 軟體測試的定義與目的 5
1.2.2 軟體測試的原則 6
1.3 軟體的缺陷與錯誤 6
1.3.1 軟體缺陷的定義和類型 6
1.3.2 軟體缺陷的級別 7
1.3.3 軟體缺陷產生的原因 7
1.3.4 軟體缺陷的構成 8
1.3.5 修復軟體缺陷的代價 8
1.4 軟體測試的經濟學與心理學 8
1.4.1 軟體測試的心理學 8
1.4.2 軟體測試的經濟學 9
1.5 軟體質量保證 9
1.5.1 軟體質量保證概要 9
1.5.2 軟體質量保證活動的實施 9
1.5.3 SQA與軟體測試的關係 10
1.6 典型考題分析 10
1.7 過關必備 13
第2章 軟體測試類型及其在軟體開發過程中的地位 15
2.1 軟體開發階段 15
2.1.1 軟體生存周期 15
2.1.2 軟體測試的生存周期模型 16
2.1.3 測試信息流 16
2.2 規劃階段的測試 16
2.2.1 目標闡述 16
2.2.2 需求分析 16
2.2.3 功能定義 17
2.2.4 規劃階段進行的測試 17
2.3 設計階段的測試 17
2.3.1 外部設計 17
2.3.2 內部設計 17
2.3.3 設計階段的測試 17
2.3.4 偽代碼分析 17
2.4 編程階段的測試 18
2.4.1 白盒測試與黑盒測試 18
2.4.2 結構測試與功能測試 18
2.4.3 路徑測試:覆蓋準則 18
2.4.4 增量測試與大突擊測試 18
2.4.5 自頂向下測試與自底向上測試 18
2.4.6 靜態測試與動態測試 19
2.4.7 性能測試 19
2.5 回歸測試 19
2.6 運行和維護階段的測試 20
2.7 典型考題分析 20
2.8 過關必備 20
第3章 代碼檢查、走查與評審 22
3.1 桌上檢查 22
3.1.1 桌上檢查的檢查項目 22
3.1.2 對程式代碼做靜態錯誤分析 22
3.2 代碼檢查 23
3.2.1 特定的角色和職責 23
3.2.2 代碼檢查過程 23
3.2.3 用於代碼檢查的錯誤列表 23
3.3 走查 24
3.3.1 特定的角色和職責 24
3.3.2 走查的過程 24
3.3.3 走查中的靜態分析技術 25
3.4 同行評審 26
3.4.1 為什麼需要評審 26
3.4.2 同行評審的角色和職能 26
3.4.3 同行評審的內容 26
3.4.4 評審的方法和技術 27
3.5 典型考題分析 27
3.6 過關必備 29
第4章 覆蓋率(白盒)測試 31
4.1 覆蓋率概念 31
4.2 邏輯覆蓋 31
4.2.1 語句覆蓋 32
4.2.2 判定覆蓋(分支覆蓋) 32
4.2.3 條件覆蓋 32
4.2.4 條件/判定覆蓋 32
4.2.5 條件組合覆蓋 32
4.2.6 路徑覆蓋 32
4.2.7 ESTCA覆蓋 33
4.2.8 LCSAJ覆蓋 33
4.3 路徑測試 34
4.3.1 分支結構的路徑測試 34
4.3.2 循環結構的路徑測試 34
4.3.3 Z路徑覆蓋與基本路徑測試 35
4.4 數據流測試 37
4.4.1 定義/使用測試的幾個定義 37
4.4.2 定義/使用路徑測試覆蓋指標 38
4.5 基於覆蓋的測試用例選擇 38
4.5.1 如何使用覆蓋率 38
4.5.2 使用最少測試用例來達到覆蓋 38
4.6 典型考題分析 39
4.7 過關必備 54
第5章 功能(黑盒)測試 56
5.1 等價類測試 56
5.1.1 等價類的概念 56
5.1.2 等價類測試的類型 56
5.1.3 等價類測試的原則 57
5.1.4 等價類方法測試用例設計舉例 57
5.2 邊界值分析 59
5.2.1 邊界值分析的概念 59
5.2.2 選擇測試用例的原則 59
5.2.3 邊界值方法測試用例設計舉例 59
5.3 基於判定表的測試 60
5.3.1 判定表的概念 60
5.3.2 基於判定表的測試用例設計舉例 60
5.4 基於因果圖的測試 61
5.4.1 因果圖的適用範圍 61
5.4.2 用因果圖生成測試用例 61
5.4.3 因果圖法測試用例設計舉例 61
5.5 基於狀態圖的測試 62
5.5.1 功能圖及其符號 62
5.5.2 功能圖法設計測試用例舉例 62
5.6 基於場景的測試 64
5.6.1 基本流和備選流 64
5.6.2 場景法設計測試用例舉例 65
5.7 其他黑盒測試用例設計技術 65
5.7.1 規範(規格)導出法 65
5.7.2 內部邊界值測試法 65
5.7.3 錯誤猜測法 66
5.7.4 基於接口的測試 66
5.7.5 基於故障的測試 66
5.7.6 基於風險的測試 66
5.7.7 比較測試 66
5.8 典型考題分析 67
5.9 過關必備 70
第6章 單元測試和集成測試 73
6.1 單元測試的基本概念 73
6.1.1 單元測試的定義和目標 73
6.1.2 單元測試與集成測試、系統測試的區別 74
6.1.3 單元測試環境 74
6.2 單元測試策略 75
6.2.1 自頂向下的單元測試策略 75
6.2.2 自底向上的單元測試策略 75
6.2.3 孤立測試 75
6.2.4 綜合測試 75
6.3 單元測試分析 75
6.4 單元測試的測試用例設計原則 76
6.4.1 單元測試的測試用例設計步驟 76
6.4.2 單元測試中的白盒測試與黑盒測試 77
6.5 集成測試的基本概念 77
6.5.1 集成測試的定義 77
6.5.2 集成測試與系統測試的區別 77
6.5.3 集成測試與開發的關係 78
6.5.4 集成測試重點 78
6.5.5 集成測試層次 78
6.5.6 集成測試環境 78
6.6 集成測試的策略 79
6.6.1 基於分解的集成策略 79
6.6.2 基於功能的集成 80
6.6.3 基於調用圖的集成 80
6.6.4 基於路徑的集成 80
6.6.5 基於進度的集成 80
6.6.6 基於風險的集成 80
6.7 集成測試分析 80
6.7.1 體系結構分析 80
6.7.2 模組分析 81
6.7.3 接口分析 81
6.7.4 可測試性分析 81
6.7.5 集成測試策略的分析 81
6.7.6 常見的集成測試故障 81
6.8 集成測試的測試用例設計 82
6.9 典型考題分析 82
6.10 過關必備 84
第7章 系統測試 86
7.1 系統測試概念 86
7.1.1 什麼是系統測試 86
7.1.2 系統測試與單元測試、集成測試的區別 86
7.1.3 集成測試的組織和分工 87
7.1.4 系統測試分析 87
7.1.5 系統測試環境 87
7.2 系統測試的方法 87
7.2.1 功能測試 87
7.2.2 協定測試 88
7.2.3 性能測試 88
7.2.4 壓力測試 88
7.2.5 容量測試 88
7.2.6 安全性測試 88
7.2.7 失效恢複測試 89
7.2.8 備份測試 89
7.2.9 GUI測試 89
7.2.10 健壯性測試 89
7.2.11 兼容性測試 90
7.2.12 易用性測試 90
7.2.13 安裝測試 90
7.2.14 文檔測試 90
7.2.15 線上幫助測試 90
7.2.16 數據轉換測試 90
7.3 系統測試的實施 91
7.3.1 確認測試 91
7.3.2 α測試和β測試 91
7.3.3 驗收測試 91
7.3.4 回歸測試 92
7.3.5 系統測試問題總結、分析 92
7.4 如何做好系統測試 92
7.5 典型考題分析 92
7.6 過關必備 94
第8章 軟體性能測試和可靠性測試 97
8.1 軟體性能測試的基本概念 97
8.1.1 什麼是軟體性能 97
8.1.2 軟體性能的測試 99
8.2 軟體性能測試的執行 99
8.2.1 性能測試的過程與組織 99
8.2.2 性能分析 100
8.2.3 性能測試的自動化 100
8.3 軟體可靠性的概念 100
8.3.1 錯誤、缺陷、故障和失效 101
8.3.2 軟體可靠性定義 101
8.3.3 軟體可靠性指標 101
8.3.4 軟體可靠性與硬體可靠性的區別 101
8.4 軟體可靠性測試的執行 102
8.4.1 軟體可靠性測試的過程 102
8.4.2 軟體可靠性預測 102
8.5 軟體可靠性分析方法 102
8.6 典型考題分析 103
8.7 過關必備 106
第9章 面向對象軟體的測試 108
9.1 面向對象軟體測試的問題 108
9.1.1 面向對象的基本特點引起的測試問題 108
9.1.2 面向對象程式的測試組織問題 109
9.2 面向對象軟體的測試模型及策略 109
9.2.1 面向對象軟體的測試模型 110
9.2.2 面向對象分析的測試 110
9.2.3 面向對象設計的測試 110
9.2.4 面向對象編程的測試 110
9.2.5 面向對象程式的單元測試 111
9.2.6 面向對象程式的集成測試 111
9.2.7 面向對象軟體的系統測試 111
9.3 面向對象程式的單元測試 112
9.3.1 方法層次的測試 112
9.3.2 類層次的測試 112
9.3.3 類樹層次的測試 112
9.4 面向對象程式的集成測試 113
9.4.1 面向對象程式的集成測試策略 113
9.4.2 針對類間連線的測試 114
9.5 面向對象軟體的系統測試 115
9.5.1 功能測試 115
9.5.2 其他系統測試 115
9.6 典型考題分析 115
9.7 過關必備 118
第10章 Web套用軟體測試 120
10.1 Web套用軟體 120
10.1.1 Web套用軟體的概念 120
10.1.2 Web套用軟體的特點 120
10.1.3 Web套用軟體的基本結構 121
10.1.4 Web套用軟體的常用開發技術 121
10.2 套用伺服器的分類和特徵 121
10.2.1 三層和多層體系結構 121
10.2.2 套用伺服器的分類 122
10.2.3 套用伺服器對Web套用軟體測試的影響 122
10.3 Web套用軟體的測試策略 122
10.3.1 表示層的測試 123
10.3.2 業務層的測試 123
10.3.3 數據層的測試 123
10.3.4 層間的集成測試 123
10.4 Web套用軟體的系統測試技術 124
10.4.1 功能測試 124
10.4.2 性能測試 125
10.4.3 易用性測試 125
10.4.4 內容測試 125
10.4.5 安全性測試 125
10.4.6 接口測試 126
10.5 Web套用軟體的系統安全檢測與防護 126
10.5.1 入侵檢測 126
10.5.2 漏洞掃描 127
10.5.3 安全策略 127
10.6 典型考題分析 127
10.7 過關必備 129
第11章 其他測試 131
11.1 兼容性測試 131
11.1.1 硬體兼容性測試 131
11.1.2 軟體兼容性測試 131
11.1.3 數據兼容性測試 132
11.2 易用性測試 132
11.2.1 易安裝性測試 132
11.2.2 功能易用性測試 133
11.2.3 用戶界面測試 133
11.3 構件測試 133
11.3.1 與測試相關的構件特性 133
11.3.2 構件測試的主要困難 134
11.3.3 構件測試涉及的人員 134
11.3.4 構件測試的常用方法 134
11.4 極限測試 134
11.4.1 極限編程基礎 135
11.4.2 極限測試 135
11.5 文檔測試 136
11.5.1 文檔測試的範圍 136
11.5.2 用戶文檔的內容 136
11.5.3 用戶文檔的測試 136
11.6 典型考題分析 137
11.7 過關必備 139
第12章 軟體測試過程和管理 141
12.1 軟體測試過程 141
12.1.1 測試過程的概念 141
12.1.2 測試過程的抽象模型 141
12.1.3 測試階段中的測試活動 142
12.2 測試過程組織與管理 143
12.2.1 軟體測試過程管理的特點 143
12.2.2 軟體測試過程管理的原則 143
12.2.3 軟體測試過程的人員組織 144
12.3 測試計畫的制定 144
12.3.1 測試計畫的整體目標 144
12.3.2 定義軟體測試項目的標準 144
12.3.3 測試實施策略的制定 145
12.3.4 測試計畫活動的細分 145
12.3.5 測試計畫的要點 145
12.3.6 編制測試計畫的技巧 146
12.4 測試方案的確定 146
12.4.1 軟體測試設計和開發主要內容 146
12.4.2 軟體測試設計要點 146
12.4.3 測試用例的設計方法 146
12.4.4 測試用例的管理 147
12.4.5 測試開發 147
12.5 測試環境管理 147
12.5.1 測試環境的定義 148
12.5.2 測試環境是測試的基礎 148
12.5.3 測試環境的各要素 148
12.6 測試執行的管理 149
12.6.1 測試用例執行的跟蹤 149
12.6.2 缺陷的跟蹤和管理 149
12.6.3 與項目組外部人員的溝通 149
12.6.4 測試執行結束 150
12.7 測試質量分析 150
12.7.1 評估系統測試的覆蓋程度 150
12.7.2 軟體缺陷分析方法 151
12.8 測試文檔管理 151
12.8.1 測試文檔的分類管理 151
12.8.2 測試文檔的存儲和共享 152
12.8.3 文檔模板 152
12.9 測試的復用與維護 152
12.9.1 測試過程的復用與維護 152
12.9.2 測試用例和軟體缺陷報告的復用 153
12.10 典型考題分析 153
12.11 過關必備 155
第13章 軟體自動化測試 157
13.1 自動化測試的原理與方法 157
13.2 自動化測試的限制 157
13.3 自動化測試用例的生成 158
13.3.1 腳本的作用、質量和編寫原則 158
13.3.2 腳本的基本結構 158
13.4 測試執行自動化 159
13.4.1 前處理 159
13.4.2 後處理 159
13.4.3 自動化測試過程 160
13.5 測試結果比較自動化 160
13.5.1 自動比較的基本概念 160
13.5.2 動態比較 161
13.5.3 執行後比較 161
13.6 測試工具的分類與選擇 162
13.6.1 測試工具的分類 162
13.6.2 測試工具的選擇 162
13.7 測試工具的主流產品介紹 163
13.7.1 面向開發的單元測試工具 163
13.7.2 負載和性能測試工具 164
13.7.3 GUI功能測試工具 164
13.7.4 基於Web套用的測試工具 164
13.7.5 軟體測試管理和其他工具 164
13.7.6 其他測試工具 165
13.8 典型考題分析 165
13.9 過關必備 165
第14章 軟體測試的標準和文檔 168
14.1 軟體測試的標準 168
14.1.1 軟體測試規範 168
14.1.2 軟體測試文檔編制規範 169
14.2 典型考題分析 170
14.3 過關必備 171
第15章 軟體測試實踐 173
15.1 軟體測試過程管理實踐 173
15.1.1 測試的策劃 173
15.1.2 測試的設計 174
15.1.3 測試的執行 175
15.1.4 軟體缺陷(問題)報告和軟體缺陷(問題)生命周期 175
15.1.5 測試的總結 176
15.1.6 測試過程的質量控制 177
15.1.7 QESuite軟體測試過程管理平台 177
15.2 白盒測試實踐 181
15.2.1 QESAT/C簡介 181
15.2.2 靜態分析 181
15.2.3 動態測試 181
15.3 典型考題分析 182
15.4 過關必備 184
附錄A 課後習題參考答案 186
附錄B 樣題及解析 191
B.1 樣題一 191
B.2 樣題二 195
B.3 樣題三 200
B.4 樣題一答案解析 203
B.5 樣題二答案解析 206
B.6 樣題三答案解析 210
附錄C 歷年真題及解析 216
C.1 2010年3月筆試真題 216
C.2 2009年9月筆試真題 221
C.3 2009年3月筆試真題 226
C.4 2010年3月筆試真題解析 232
C.5 2009年9月筆試真題解析 236
C.6 2009年3月筆試真題解析 243