譯者序
致謝
關于作者
前言
第一部分 成為測試者
第1章 測試基礎 3
1.1 測試概覽 3
1.1.1 測試是什么 3
1.1.2 質量是什么 3
1.1.3 測試為什么重要 4
1.1.4 測試人員做些什么 4
1.1.5 誰是測試人員 4
1.2 QA與測試的區(qū)別 4
1.3 優(yōu)秀測試人員的素質 5
1.4 相關人員 7
1.4.1 你需要從別人那里得到什么 8
1.4.2 別人需要從你這里得到什么 9
1.5 什么是bug 10
1.6 測試之后 11
1.6.1 什么是dogfooding 11
1.6.2 產品發(fā)行給誰 12
1.7 測試人員的工作內容 12
第2章 軟件測試理論 14
2.1 軟件產品生命周期 14
2.1.1 產品規(guī)格說明書 15
2.1.2 風險分析 16
2.1.3 里程碑 18
2.2 測試周期 18
2.3 bug生命周期 20
2.3.1 有效地記錄bug 20
2.3.2 使用bug模板 21
2.3.3 評價bug優(yōu)先級和嚴重性 21
2.3.4 bug的生命 22
2.3.5 維護bug數據庫 23
2.4 測試方法 23
2.4.1 測試技巧 23
2.4.2 測試類型 24
2.5 什么時候停止測試 26
第3章 軟件測試實踐 28
3.1 開始測試 28
3.1.1 測試從哪里開始 28
3.1.2 評審產品規(guī)格說明書 28
3.1.3 誰來開始 31
3.2 應用測試技巧 31
3.2.1 分解任務 31
3.2.2 提出恰當問題 32
3.2.3 列舉軟件狀態(tài) 32
3.2.4 檢查數據輸入 34
3.2.5 測試事件順序 40
3.2.6 檢查時間 41
3.2.7 抓住后門 41
3.2.8 嘗試可選方法 41
3.2.9 通用測試技巧 42
3.3 報告技巧 43
3.3.1 好的bug報告 43
3.3.2 差的bug報告 44
3.3.3 創(chuàng)建有用的支持文檔 45
3.4 不當測試 46
第4章 Web測試入門 49
4.1 組織工作 49
4.1.1 瀏覽器的歷史 50
4.1.2 瀏覽器的選擇 50
4.1.3 其他瀏覽器 51
4.1.4 平臺 52
4.1.5 其他設備 53
4.1.6 矩陣 53
4.2 影響Web應用程序測試的其他因素 54
4.2.1 考慮屏幕分辨率 55
4.2.2 畫布的尺寸 55
4.2.3 畫布實際可用大小的急劇減少 57
4.2.4 測試顏色深度 58
4.2.5 測試連接速度 58
4.2.6 重新回到矩陣 59
4.2.7 考慮其他因素 60
4.3 基本Web應用程序 60
4.3.1 復雜化Web應用程序場景 62
4.3.2 有關Web如何工作的更多知識 62
4.3.3 請求獲取網頁 63
4.3.4 對請求的響應 64
4.4 Web應用程序測試技巧 64
4.4.1 包含支持文檔 65
4.4.2 處理緩存問題 65
4.4.3 配置瀏覽器以用于Web應用程序測試 66
4.4.4 配置瀏覽器的其他設置 67
第二部分 客戶端測試
第5章 測試HTML—靜態(tài)Web 73
5.1 HTML中的編碼 73
5.1.1 基本標記符 73
5.1.2 細致的HTML編碼 74
5.1.3 遵守外部編碼標準 76
5.1.4 保持內部編碼標準 76
5.2 測試Web上的設計 79
5.2.1 整潔是最重要的 80
5.2.2 測試其他設計方面的問題 82
5.2.3 測試設計時想著圖片 83
5.2.4 測試設計的易用性問題 85
5.2.5 實現可訪問性 87
5.2.6 設計用戶交互 89
5.2.7 測試性能 93
第6章 動態(tài)Web 97
6.1 提供豐富體驗 97
6.2 檢查應用程序架構 98
6.3 腳本 99
6.3.1 引用腳本 99
6.3.2 JavaScript 100
6.3.3 VBScript 102
6.3.4 認識腳本問題 103
6.3.5 測試腳本 106
6.4 測試ASP 108
6.5 測試CGI 109
6.6 測試ActiveX控件 109
第7章 測試字符集. 代碼頁和字形 111
7.1 幾個定義 111
7.2 字符的顯示 112
7.2.1 字符標準的歷史 113
7.2.2 閱讀代碼頁 117
7.3 理解字形 120
7.4 處理雙向文本 121
7.5 處理復雜腳本 122
7.6 單字節(jié)和雙字節(jié)字符集 123
7.6.1 處理雙字節(jié)字符集 123
7.6.2 引用雙字節(jié)字符 124
7.6.3 DBCS測試技巧 125
7.7 Unicode 126
7.8 字體鏈接 128
7.9 考察字符輸入方法 128
7.9.1 Alt鍵輸入 129
7.9.2 字符映射輸入 129
7.9.3 IME 130
7.9.4 剪切和粘貼 131
7.10 應用假本地化 132
7.11 轉義保留字符 134
7.12 什么使得字符成為問題 134
7.13 認識破壞 135
第三部分 服務器端測試
第8章 性能測試 139
8.1 制定基于性能的決定:決定何時進行測試, 測試什么 139
8.1.1 使用規(guī)格說明書指導性能測試 140
8.1.2 找出性能問題 141
8.2 性能測試綜述 141
8.2.1 選擇用于性能測試的機器 143
8.2.2 在性能測試之前檢查配置 143
8.3 開始性能測試 144
8.3.1 構思應用的輪廊 144
8.3.2 獲取測量 145
8.4 繼續(xù)性能測試 147
8.4.1 不僅僅是性能問題 148
8.4.2 優(yōu)化帶寬 149
8.4.3 閱讀度量 151
8.4.4 負載測試和壓力測試 153
8.4.5 可靠性和穩(wěn)定性測試 155
8.4.6 可伸縮性測試 157
8.4.7 ASP性能測試 158
8.4.8 自動化性能測試 159
8.4.9 關鍵的性能測試技巧 160
8.5 改善應用性能 161
第9章 安全性測試 163
9.1 我們面臨的對手是誰 163
9.2 選擇安全性測試策略 164
9.2.1 協調安全工作 165
9.2.2 開發(fā)方法 166
9.3 測試幾類安全問題 169
9.3.1 緩沖區(qū)泛溢 170
9.3.2 解析問題 176
9.3.3 轉換問題 181
9.3.4 共享數據 183
9.3.5 轉義 184
9.3.6 跨站點腳本 188
9.3.7 SQL注入 189
9.3.8 錯誤處理 190
9.3.9 特權提升 190
9.3.10 拒絕服務 191
9.4 測試隱私問題 192
9.5 組件交互測試 193
9.6 通過管理保護應用的安全 195
9.7 測試其他安全問題 195
9.8 其他安全性思考 197
第四部分 作為測試者
第10章 自動化 201
10.1 自動化測試的定義 201
10.2 自動化測試的功能 201
10.3 自動化測試的類型 202
10.4 計劃自動化測試 203
10.4.1 確定進行自動化測試的對象 205
10.4.2 測試工具的選擇 205
10.4.3 編寫自動化測試 207
10.4.4 命名慣例 210
10.4.5 做好未來的計劃 211
10.5 繼續(xù)進行自動化測試 212
10.5.1 效果評測 213
10.5.2 在自動化測試開發(fā)中的良好操作實踐 215
10.6 關于自動化測試的最后提醒 215
第11章 測試計劃與設計 217
11.1 本章內容 217
11.2 本章不涉及的問題 217
11.3 為什么要做測試計劃 217
11.4 計劃內容 217
11.5 方法學 218
11.5.1 正規(guī)方法學 219
11.5.2 方法 222
11.6 編寫測試計劃 224
11.6.1 協調測試計劃與項目和開發(fā)計劃 224
11.6.2 設計測試組內部使用的測試計劃 226
11.6.3 制定測試計劃時要考慮的其他事項 226
11.7 在計劃中交流 226
11.8 從何處入手 227
第12章 做專業(yè)的測試人員 228
12.1 專業(yè)測試人員的素質 228
12.2 提高測試技術 229
12.2.1 計劃 230
12.2.2 組織 230
12.2.3 準備 230
12.2.4 了解自己的目的和當前所處的位置 231
12.2.5 共享 232
12.2.6 表現自我 232
12.2.7 提出問題 233
12.2.8 使用常識 234
12.2.9 應用最佳實踐 234
12.3 發(fā)展成專業(yè)的測試者 235
第五部分 測試參考附錄
附錄A 代碼頁 239
附錄B Unicode范圍 250
附錄C 語言指南 253
附錄D 計算機系統(tǒng)配置指南 266
附錄E HTTP響應代碼 272
附錄F 語言與映射 280
附錄G 問題字符和樣例測試輸入 283
附錄H 測試檢查表和問題 302
附錄I 格式和模板 313
附錄J 相關工具 321
附錄K 相關RFC. ISO標準以及IEEE標準 324
附錄L 數字參考 328
附錄M 相關參考網站 334
附錄N 參考書目及推薦讀物 337
附錄O 術語表 341
附錄P 本書的網站內容介紹 347