1. 程式人生 > >軟體測試(原書第2版中文)PDF版

軟體測試(原書第2版中文)PDF版

第一部分 軟體測試綜述
第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