第一部分 軟件測試綜述
第1章 軟件測試的背景 3
1.1 臭名昭著的軟件錯誤用例研究 3
1.1.1 迪斯尼的獅子王,1994—1995 3
1.1.2 英特爾奔騰浮點除法缺陷,1994 4
1.1.3 美國航天局火星極地登陸者號探測器,1999 4
1.1.4 愛國者導彈防禦係統,1991 5
1.1.5 韆年蟲問題,大約1974 5
1.1.6 危險的預見,2004 5
1.2 軟件缺陷是什麼 6
1.2.1 軟件失敗的術語 6
1.2.2 軟件缺陷的官方定義 7
1.3 為什麼會齣現軟件缺陷 8
1.4 軟件缺陷的修復費用 9
1.5 軟件測試員究竟做些什麼 10
1.6 優秀的軟件測試員應具備的素質 10
1.7 小結 11
1.8 小測驗 12
第2章 軟件開發的過程 13
2.1 産品的組成部分 13
2.1.1 軟件産品需要多少投入 13
2.1.2 軟件産品由哪些部分組成 16
2.2 軟件項目成員 17
2.3 軟件開發生命周期模式 18
2.3.1 大爆炸模式 18
2.3.2 邊寫邊改模式 19
2.3.3 瀑布模式 20
2.3.4 螺鏇模式 21
2.4 小結 22
2.5 小測驗 22
第3章 軟件測試的實質 23
3.1 測試的原則 23
3.1.1 完全測試程序是不可能的 23
3.1.2 軟件測試是有風險的行為 24
3.1.3 測試無法顯示潛伏的軟件缺陷 24
3.1.4 找到的軟件缺陷越多,就說明軟件缺陷越多 25
3.1.5 殺蟲劑怪事 25
3.1.6 並非所有軟件缺陷都要修復 26
3.1.7 什麼時候纔叫缺陷難以說清 27
3.1.8 産品說明書從沒有最終版本 28
3.1.9 軟件測試員在産品小組中不受歡迎 28
3.1.10 軟件測試是一項講究條理的技術專業 28
3.2 軟件測試的術語和定義 29
3.2.1 精確和準確 29
3.2.2 確認和驗證 30
3.2.3 質量和可靠性 30
3.2.4 測試和質量保證(QA) 30
3.3 小結 31
3.4 小測驗 31
第二部分 測試基礎
第4章 檢查産品說明書 35
4.1 開始測試 35
4.1.1 黑盒測試和白盒測試 36
4.1.2 靜態測試和動態測試 37
4.1.3 靜態黑盒測試、測試産品說明書 37
4.2 對産品說明書進行高級審查 37
4.2.1 假設自己是客戶 38
4.2.2 研究現有的標準和規範 38
4.2.3 審查和測試類似軟件 39
4.3 産品說明書的低層次測試技術 39
4.3.1 産品說明書屬性檢查清單 39
4.3.2 産品說明書術語檢查清單 40
4.4 小結 40
4.5 小測驗 40
第5 章 帶上眼罩測試軟件 42
5.1 動態黑盒測試:帶上眼罩測試軟件 42
5.2 通過性測試和失效性測試 43
5.3 等價類劃分 44
5.4 數據測試 46
5.4.1 邊界條件 47
5.4.2 次邊界條件 49
5.4.3 默認、空白、空值、零值和無 51
5.4.4 非法、錯誤、不正確和垃圾數據 52
5.5 狀態測試 53
5.5.1 測試軟件的邏輯流程 54
5.5.2 失敗狀態測試 57
5.6 其他黑盒測試技術 58
5.6.1 像笨拙的用戶那樣做 58
5.6.2 在已經找到的軟件缺陷的地方再找找 59
5.6.3 像黑客一樣考慮問題 59
5.6.4 憑藉經驗、直覺和預感 59
5.7 小結 59
5.8 小測驗 60
第6章 檢查代碼 61
6.1 靜態白盒測試:檢查設計和代碼 61
6.2 正式審查 62
6.2.1 同事審查 63
6.2.2 走查 63
6.2.3 檢驗 63
6.3 編碼標準和規範 64
6.3.1 編程標準和規範示例 64
6.3.2 獲取標準 66
6.4 通用代碼審查清單 66
6.4.1 數據引用錯誤 66
6.4.2 數據聲明錯誤 67
6.4.3 計算錯誤 67
6.4.4 比較錯誤 67
6.4.5 控製流程錯誤 68
6.4.6 子程序參數錯誤 68
6.4.7 輸入/輸齣錯誤 68
6.4.8 其他檢查 68
6.5 小結 69
6.6 小測驗 69
第7章 帶上X光眼鏡測試軟件 70
7.1 動態白盒測試 70
7.2 動態白盒測試和調試 71
7.3 分段測試 72
7.3.1 單元測試和集成測試 72
7.3.2 單元測試示例 74
7.4 數據覆蓋 75
7.4.1 數據流 76
7.4.2 次邊界 76
7.4.3 公式和等式 77
7.4.4 錯誤強製 77
7.5 代碼覆蓋 78
7.5.1 程序語句和代碼行覆蓋 79
7.5.2 分支覆蓋 79
7.5.3 條件覆蓋 80
7.6 小結 81
7.7 小測驗 81
第三部分 運用測試技術
第8章 配置測試 85
8.1 配置測試綜述 85
8.1.1 分離配置缺陷 88
8.1.2 計算工作量 89
8.2 執行任務 90
8.2.1 確定所需的硬件類型 90
8.2.2 確定有哪些廠商的硬件、型號和驅動程序可用 90
8.2.3 確定可能的硬件特性、模式和選項 91
8.2.4 將確定後的硬件配置縮減為可控製的範圍 91
8.2.5 明確與硬件配置有關的軟件唯一特性 92
8.2.6 設計在每一種配置中執行的測試用例 93
8.2.7 在每種配置中執行測試 93
8.2.8 反復測試直到小組對結果滿意為止 93
8.3 獲得硬件 93
8.4 明確硬件標準 94
8.5 對其他硬件進行配置測試 95
8.6 小結 95
8.7 小測驗 95
第9章 兼容性測試 96
9.1 兼容性測試綜述 96
9.2 平颱和應用程序版本 97
9.2.1 嚮後和嚮前兼容 97
9.2.2 測試多個版本的影響 98
9.3 標準和規範 99
9.3.1 高級標準和規範 99
9.3.2 低級標準和規範 100
9.4 數據共享兼容性 100
9.5 小結 102
9.6 小測驗 102
第10章 外國語言測試 103
10.1 使文字和圖片有意義 103
10.2 翻譯問題 104
10.2.1 文本擴展 104
10.2.2 ASCll、DBCS和Unicode 105
10.2.3 熱鍵和快捷鍵 105
10.2.4 擴展字符 106
10.2.5 字符計算 106
10.2.6 從左嚮右和從右嚮左讀 107
10.2.7 圖形中的文字 107
10.2.8 讓文本與代碼脫離 107
10.3 本地化問題 108
10.3.1 內容 108
10.3.2 數據格式 109
10.4 配置和兼容性問題 110
10.4.1 國外平颱配置 110
10.4.2 數據兼容性 111
10.5 測試量有多大 112
10.6 小結 113
10.7 小測驗 113
第11章 易用性測試 114
11.1 用戶界麵測試 114
11.2 優秀UI由什麼構成 115
11.2.1 符閤標準和規範 115
11.2.2 直觀 116
11.2.3 一緻 117
11.2.4 靈活 117
11.2.5 舒適 118
11.2.6 正確 118
11.2.7 實用 119
11.3 為有殘疾障礙的人員測試:輔助選項測試 119
11.3.1 法律要求 120
11.3.2 軟件中的輔助特性 120
11.4 小結 122
11.5 小測驗 122
第12章 測試文檔 123
12.1 軟件文檔的類型 123
12.2 文檔測試的重要性 125
12.3 審查文檔時要找什麼 126
12.4 文檔測試的實質 127
12.5 小結 127
12.6 小測驗 127
第13章 軟件安全性測試 129
13.1 戰爭遊戲—電影 129
13.2 瞭解動機 130
13.3 威脅模式分析 131
13.4 軟件安全是一項功能嗎?軟件漏洞是一個缺陷嗎 134
13.5 瞭解緩衝區溢齣 134
13.6 使用安全的字符串函數 135
13.7 計算機取證 137
13.8 小結 139
13.9 小測驗 139
第14章 網站測試 141
14.1 網頁基礎 141
14.2 黑盒測試 142
14.2.1 文本 143
14.2.2 超級鏈接 144
14.2.3 圖片 145
14.2.4 錶單 145
14.2.5 對象和其他各種簡單的功能 145
14.3 灰盒測試 146
14.4 白盒測試 147
14.5 配置和兼容性測試 148
14.6 易用性測試 149
14.7 自動化測試簡介 151
14.8 小結 151
14.9 小測驗 151
第四部分 測試的補充
第15章 自動測試和測試工具 155
15.1 工具和自動化的好處 155
15.2 測試工具 156
15.2.1 查看器和監視器 156
15.2.2 驅動程序 157
15.2.3 樁 158
15.2.4 壓力和負載工具 159
15.2.5 乾擾注入器和噪聲發生器 159
15.2.6 分析工具 160
15.3 軟件測試自動化 160
15.3.1 宏錄製和迴放 161
15.3.2 可編程的宏 162
15.3.3 完全可編程的自動測試工具 163
15.4 隨機測試:猴子和大猩猩 164
15.4.1 笨拙的猴子 165
15.4.2 半聰明的猴子 166
15.4.3 聰明的猴子 166
15.5 使用測試工具和自動化的實質 168
15.6 小結 168
15.7 小測驗 169
第16章 缺陷轟炸和beta測試 170
16.1 讓彆人測試你的軟件 170
16.2 測試共享 171
16.3 beta測試 172
16.4 外包測試 173
16.5 小結 173
16.6 小測驗 174
第五部分 使用測試文檔
第17章 計劃測試工作 177
17.1 測試計劃的目標 177
17.2 測試計劃主題 178
17.2.1 高級期望 178
17.2.2 人、地點和事 179
17.2.3 定義 179
17.2.4 團隊之間的責任 180
17.2.5 哪些要測試,哪些不要測試 182
17.2.6 測試的階段 182
17.2.7 測試策略 182
17.2.8 資源需求 183
17.2.9 測試員的任務分配 183
17.2.10 測試進度 183
17.2.11 測試用例 185
17.2.12 軟件缺陷報告 185
17.2.13 度量和統計 185
17.2.14 風險和問題 185
17.3 小結 185
17.4 小測驗 186
第18章 編寫和跟蹤測試用例 187
18.1 測試用例計劃的目標 187
18.2 測試用例計劃綜述 188
18.2.1 測試設計 189
18.2.2 測試用例 191
18.2.3 測試程序 192
18.3 測試用例組織和跟蹤 194
18.4 小結 195
18.5 小測驗 195
第19章 報告發現的問題 197
19.1 設法修復軟件缺陷 198
19.2 分離和再現軟件缺陷 200
19.3 並非所有軟件缺陷生來就是平等的 202
19.4 軟件缺陷的生命周期 203
19.5 軟件缺陷跟蹤係統 205
19.5.1 標準:測試事件報告 205
19.5.2 手工軟件缺陷報告和跟蹤 206
19.5.3 自動化軟件缺陷報告和跟蹤 206
19.6 小結 210
19.7 小測驗 211
第20章 成效評價 212
20.1 使用軟件缺陷跟蹤數據庫中的信息 212
20.2 在日常測試中使用的度量 213
20.3 常用項目級度量 216
20.4 小結 220
20.5 小測驗 221
第六部分 軟件測試的未來
第21章 軟件質量保證 225
21.1 質量是免費的 225
21.2 工作現場的測試和質量保證 226
21.2.1 軟件測試 226
21.2.2 質量保證 227
21.2.3 軟件測試團隊的其他名稱 228
21.3 測試的管理和組織結構 228
21.4 能力成熟度模型(CMM) 230
21.5 IS0 9000 232
21.6 小結 233
21.7 小測驗 233
第22章 軟件測試員的職業 234
22.1 軟件測試員的工作 234
22.2 尋求軟件測試職位 235
22.3 獲得親身體驗 236
22.4 正規培訓機會 237
22.5 網站 237
22.6 專注於軟件和軟件質量的專業組織 238
22.7 更進一步閱讀 238
22.8 小結 239
22.9 小測驗 240
附錄A 小測驗問題解答 241
· · · · · · (
收起)