第1章 軟件測試基礎 1
1.1 軟件的復雜度已經超越瞭人的理解能力 1
1.2 軟件測試是獲取信息的技術調查 4
1.3 測試是迭代過程 6
1.4 測試人員的工作效率取決於他對軟件和項目的理解,而不是他掌握的測試技術 8
1.5 小結 9
第2章 缺陷報告 10
2.1 報告缺陷是為瞭讓缺陷得到修復 10
2.2 高質量的缺陷報告來自於高質量的測試 13
2.2.1 分配測試時間 13
2.2.2 通過技術調查發現更多的信息 14
2.2.3 處理難以重現的缺陷 17
2.3 編寫高質量的缺陷報告 22
2.3.1 為每一個缺陷單獨提交一份缺陷報告,小缺陷也是如此 22
2.3.2 仔細編寫缺陷報告的標題 23
2.3.3 像編寫詳細測試用例那樣編寫重現步驟 23
2.3.4 使用缺陷模闆來提交缺陷 24
2.3.5 在編寫缺陷報告時,要考慮缺陷查詢 25
2.3.6 鏈接相關的缺陷 26
2.3.7 注意缺陷報告的可讀性 26
2.3.8 客觀中立地書寫缺陷報告 26
2.4 對不予修復的缺陷進行上訴 27
2.5 周密地測試缺陷修復 28
2.6 堅持閱讀缺陷報告 30
2.7 小結 32
第3章 測試文檔 33
3.1 測試文檔是持續演化的工具 33
3.1.1 測試文檔是提供測試信息的一組文檔 33
3.1.2 在測試中演化測試文檔 35
3.1.3 注重實效的測試文檔 36
3.2 形形色色的測試文檔 40
3.2.1 測試計劃 40
3.2.2 Google ACC 44
3.2.3 測試設計規約 48
3.2.4 功能列錶 49
3.2.5 大綱與思維導圖 51
3.2.6 錶格(矩陣) 53
3.2.7 測試指南 55
3.2.8 測試想法列錶 56
3.2.9 質量特性列錶 57
3.2.10 操作文檔 58
3.2.11 檢查列錶 59
3.2.12 缺陷目錄 60
3.2.13 測程錶 61
3.2.14 移交文檔 67
3.3 在測試中發展測試文檔 67
3.3.1 初始測試文檔 67
3.3.2 發展測試文檔 70
3.4 小結 71
第4章 測試建模 73
4.1 從組閤測試看建模的重要性 73
4.1.1 組閤測試簡介 73
4.1.2 根據語境來完善組閤測試的模型 76
4.1.3 測試建模的基本點 83
4.2 常用測試建模方法 84
4.2.1 啓發式測試策略模型 84
4.2.2 輸入與輸齣模型 91
4.2.3 係統生態圖 96
4.2.4 實體關係模型 101
4.2.5 狀態機模型 105
4.2.6 多種多樣的模型 109
4.3 小結 113
第5章 測試技術 115
5.1 測試技術分類係統 115
5.2 啓發式方法 120
5.3 測試先知 122
5.3.1 測試先知的定義 122
5.3.2 FEW HICCUPPS 123
5.3.3 約束檢查 129
5.4 漫遊測試 133
5.4.1 基本漫遊方法 134
5.4.2 基於旅行者隱喻的漫遊方法 135
5.4.3 移動測試漫遊方法 139
5.4.4 實施漫遊測試 142
5.5 快速測試 144
5.5.1 James Bach的方法 145
5.5.2 Cem Kaner的方法 147
5.5.3 James Whittaker的方法 149
5.6 情景測試 154
5.6.1 基本方法 155
5.6.2 設計用戶角色 158
5.6.3 情景測試與漫遊測試 161
5.6.4 肥皂劇測試 162
5.6.5 虛擬業務 164
5.7 多樣地選擇測試技術 165
5.8 小結 166
第6章 測試開發 168
6.1 測試開發分類 168
6.2 注重實效的自動化測試 169
6.2.1 自動化測試的基本策略 169
6.2.2 將測試開發視作軟件開發 172
6.2.3 利用自動化測試金字塔來指導測試開發 175
6.2.4 麵嚮調試的測試代碼 177
6.2.5 係統測試的測試開發 182
6.2.6 讓自動化測試服務於項目 190
6.3 計算機輔助測試 193
6.3.1 “交通工具”的隱喻 193
6.3.2 選擇閤適的開發技術 195
6.4 大規模自動化測試 204
6.4.1 基本概念 204
6.4.2 測試設計 206
6.5 小結 211
第7章 研究産品 213
7.1 靜態分析 213
7.1.1 瀏覽源代碼來理解産品實現 213
7.1.2 分析源代碼來幫助測試設計 221
7.1.3 黑盒測試並不是基於無知的測試 227
7.2 動態分析 229
7.2.1 用工具分析産品的行為 229
7.2.2 在調試器中觀察軟件行為 237
7.3 業務研究 241
7.3.1 理解關係人 241
7.3.2 評審需求文檔 245
7.3.3 通過測試來研究 251
7.3.4 利用互聯網資源 255
7.3.5 領域研究 258
7.4 研究策略 260
7.5 小結 261
第8章 研究項目 262
8.1 項目團隊 262
8.1.1 瞭解團隊組織 262
8.1.2 語境獨立的啓發式問題 264
8.1.3 瞭解團隊成員 268
8.2 麵嚮測試的項目分析 270
8.2.1 軟件缺陷 270
8.2.2 源代碼 274
8.2.3 構建 277
8.2.4 自動化測試 279
8.3 基於風險的測試 282
8.3.1 通過測試調查風險 282
8.3.2 失敗模式 284
8.3.3 項目級彆的風險 285
8.4 小結 287
第9章 團隊工作 288
9.1 工作風格 288
9.1.1 測試人員通過服務團隊來體現自己的價值 288
9.1.2 測試人員應該正直 290
9.1.3 測試人員的影響力來自於齣色的工作 292
9.1.4 信任程序員的努力,並用技術調查檢驗其工作 292
9.2 測試管理 293
9.2.1 個人測試計劃應該是項目測試計劃的延伸 293
9.2.2 製訂個人測試計劃時應該綜閤考慮各種項目元素 294
9.2.3 測試需要動態管理 297
9.3 軟件估算 299
9.3.1 測試人員應該估算自己的任務 300
9.3.2 用計數和計算作為估算手段 302
9.3.3 曆史數據是估算的重要參考 303
9.3.4 同時估算最差情況和最好情況 305
9.4 度量 305
9.4.1 理解度量方法的基本元素 306
9.4.2 明確度量的目標 307
9.4.3 掌握屬性和算法的聯係 309
9.4.4 理解度量方法的優點和缺點 311
9.4.5 密切關注度量的副作用 312
9.4.6 注重實效的計算 314
9.5 測試小組 315
9.5.1 價值觀 315
9.5.2 團隊建設 316
9.6 小結 318
第10章 個人管理 319
10.1 時間管理 319
10.1.1 利用任務清單記錄所有工作項 319
10.1.2 堅持周計劃和每日迴顧 322
10.1.3 專注是高效工作的前提 322
10.1.4 恰到好處的文檔化和自動化 324
10.2 持續學習 328
10.2.1 在工作中學習 328
10.2.2 持續閱讀 329
10.3 且行且思 330
10.4 成為專傢 333
10.5 小結 335
參考文獻 336
· · · · · · (
收起)