內容介紹
《完美測試:軟體測試系列最佳實踐》每個人都懷有夢想或理想,測試人員也不例外,希望將自己的工作做得比較完美。《完美測試:軟體測試系列最佳實踐》力求通過一些典型案例告訴大家什麼是完美測試,又如何做到完美測試。在給出的例子中,不僅包括功能測試、功能的異常測試、不同平台的功能測試和一些崩潰問題的處理,而且包括國際化測試、性能測試、用戶體驗測試、Accessibility測試等,並用較大的篇幅討論了自動化測試。為了達到完美測試,建立良好的測試體系、使產品具有可測試性以及缺陷預防等更為重要,《完美測試:軟體測試系列最佳實踐》也做了討論。《完美測試:軟體測試系列最佳實踐》還展示了軟體測試之美,使讀者可以領會到軟體測試的距離之美、空間之美、技巧之美、辯證之美以及貫穿測試過程的平衡之美。雖然《完美測試:軟體測試系列最佳實踐》還很難覆蓋完美測試應具備的各種方法和實踐,但目的在於拋磚引玉,使讀者能通過最有效的手段(包括方法、技術和工具)完成所有必要的測試,實現事先所要求的需求和代碼的測試覆蓋率,最終能準確地給出軟體產品一個完整的質量評估,使測試達到相對完美的水平。作者介紹
朱少民:網迅(中國)軟體有限公司QA高級總監、CSTQB資深專家、中國科技大學軟體學院教指委委員。最近多年來一直從事軟體測試、質量管理和過程改進等工作,先後出版專著《全程軟體測試》、《軟體測試》和《軟體工程導論》,並主編了《軟體測試方法和技術》等多部高等學校的精品教材。. 個人部落格:http://blog.csdn.net/KerryZhu作品目錄
第1章 軟體測試的金字塔體系 11.1 從1箇中心到5個要素 3
1.2 5個工作面 5
1.3 8組關係 6
1.4 13項原則 8
1.5 21個關鍵域 11
1.6 34個方法 15
第2章 測試架構從何而來 17
2.1 什麼是測試架構 18
2.2 測試領域架構 21
2.3 自動化測試架構之說 25
2.3.1 為何要建立自動化測試架構 25
2.3.2 解決什麼問題 26
2.3.3 軟體開發框架的啟發 30
2.3.4 測試自動化框架的基本構成 31
2.4 誰能成為測試架構師 34
第3章 如何讓缺陷無處藏身 38
3.1 什麼是軟體可測試性 39
3.2 sock模型和james bach的觀點 41
.3.3 tdd和代碼的可測試性 43
3.4 設計的可測試性 48
3.5 需求的可測試性 51
第4章 可以像這樣設計測試用例嗎 53
4.1 從需求到測試用例 53
4.2 基於流程圖設計測試用例 56
4.3 基於uml視圖的測試用例設計 61
4.4 小結 65
第5章 從虛擬測試環境到一鍵部署 67
5.1 虛擬出更多的機器 67
5.2 虛擬的疑問 70
5.3 另一種把資源用到極致的方法 71
5.4 一鍵部署 73
第6章 客戶端的gui測試自動化 79
6.1 初識自動化測試 79
6.2 困惑 80
6.3 建議 81
6.4 三類標準控制項的不同處理辦法 82
6.4.1 標準控制項 83
6.4.2 自定義控制項 84
6.4.3 自定義控制項庫 84
6.5 微軟的uia和msaa 85
6.5.1 msaa 85
6.5.2 uia 86
6.5.3 windows automation api 3.0 88
6.6 和開發人員合作的好處 88
第7章 後台自動化測試 90
7.1 什麼是後台測試 90
7.1.1 後台測試的特點 90
7.1.2 後台測試的自動化 91
7.2 後台自動化測試的統一腳本控制 92
7.2.1 自動化測試框架 93
7.2.2 自動化測試腳本的分層實現 93
7.3 後台自動化測試實例 95
7.3.1 測試工具樹形圖 95
7.3.2 基於staf框架的python腳本 97
7.4 後台大規模性能測試 102
7.4.1 測試工具的管理 103
7.4.2 同步及異步控制模式 103
7.4.3 測試邏輯的同步執行問題 104
7.4.4 測試結果的收集 106
7.5 小結 107
第8章 高亢之龍——jmeter後台自動化測試 108
8.1 潛龍勿用,見龍在田 109
8.2 終日乾乾,或躍於淵 113
8.3 飛龍在天 117
8.4 亢龍有悔 121
8.5 小結 123
第9章 重讀探索式軟體測試 124
9.1 概念及目標 124
9.2 關鍵要素 125
9.3 常見的認識誤區 127
9.4 探索思維“十六”計 128
9.5 如何套用探索式測試 136
9.6 機遇與挑戰 138
9.7 小結 139
第10章 完美的功能測試 140
10.1 測試準備 141
10.2 測試計畫 145
10.3 功能測試用例的設計 147
10.4 用例執行的竅門 149
10.5 功能測試的三步曲 150
10.6 查找遺漏問題的七大招 152
10.7 基於組件元素的通用測試點 154
10.8 基於系統行為和操作習慣的測試點 156
第11章 異常測試的方法與技巧 158
11.1 異常測試定義與範圍 159
11.2 技巧之一:改(以彼之道,還施彼身) 160
11.2.1 更改“自身” 160
11.2.2 更改“相關” 161
11.3 技巧之二:借(他山之石,可以攻玉) 162
11.3.1 借code coverage發現異常 162
11.3.2 借junit+jmockit測試異常 166
11.3.3 借iptables創造異常 167
11.4 異常測試其他技巧 169
11.5 小結 170
第12章 如何在蘋果上找蟲 171
12.1 造成mac系統崩潰的常見操作 171
12.2 通過崩潰日誌來定位問題 172
12.3 通過console來定位崩潰問題 176
12.4 通過shark工具來定位freeze問題 176
第13章 穿越時空的國際化和本地化測試 182
13.1 案例背景 183
13.2 時區及夏令時 186
13.3 有關時區的套用測試 188
13.4 本地化測試的方方面面 190
13.4.1 語言標識 190
13.4.2 文化生活 191
13.4.3 書寫習慣 192
13.5 本地化測試的主要方法 193
13.6 本地化測試的常見問題 194
13.6.1 人力資源短缺 194
13.6.2 開發人員、翻譯組、資源檔案維護者與測試人間之間的協作 195
13.6.3 基礎工作的缺乏 196
第14章 用戶體驗的享受 198
14.1 最終用戶特點 198
14.1.1 絕大多數的中間用戶 199
14.1.2 不同用戶需求 200
14.2 生活中的用戶體驗 203
14.2.1 用戶體驗的複雜性 203
14.2.2 視覺反饋 204
14.2.3 聽覺反饋——聲音 211
14.3 ue測試策略 213
14.3.1 少就是多 214
14.3.2 工具就放在手邊 215
14.3.3 提供非模態的反饋 215
14.3.4 提供符合情景的信息 216
14.3.5 提供直接的操作和圖形輸入 217
14.3.6 不要用對話框來報告常態內容 218
14.3.7 提供選擇而不是提問 218
14.3.8 最佳化回響能力以調節延遲時間 219
14.3.9 多平台多瀏覽器支持 220
14.4 小結 221
第15章 可能沒聽說過的測試——accessibility測試 223
15.1 測試的範圍和要點 224
15.2 測試工具 226
15.2.1 soatest 226
15.2.2 jaws 228
15.2.3 actf adesigner 229
15.3 accessibility測試注意事項 231
15.3.1 規範快捷鍵,儘量與系統操作鍵統一 231
15.3.2 應儘早制定accessibility checklist 232
15.3.3 注意對其他任務的影響 232
15.3.4 restore case要定義明確 232
15.3.5 應從用戶使用習慣的角度去考慮測試需求 233
第16章 誰說了算?——代碼覆蓋率 234
16.1 衡量代碼覆蓋率軟體的引入 235
16.2 c/c++代碼覆蓋率測試工具bullseyecoverage 237
16.3 開源測試代碼覆蓋率工具emma 239
16.4 代碼覆蓋率報告的分析 240
16.5 代碼覆蓋率工具的相關運用 242
16.6 代碼覆蓋率工具套用的局限性 243
16.7 小結 244
第17章 bug的“美麗人生” 246
17.1 報告新的bug 246
17.1.1 發現bug 247
17.1.2 隔離分析bug 248
17.1.3 提交一個新的bug 251
17.2 處理已經提交的bug 254
17.3 驗證bug 256
17.4 案例說明 256
第18章 從亡羊補牢到未雨綢繆 260
18.1 防止“病從口入” 261
18.2 缺陷rca三步曲 262
18.2.1 缺陷的分類統計分析 263
18.2.2 深度分析找到根本原因 266
18.2.3 找到解決問題的辦法 268
第19章 雲中漫步——後端測試流程管理 269
19.1 歡迎來到“雲”的世界 271
19.1.1 為什麼要進行後台測試 271
19.1.2 shindig框架的部署 273
19.2 你不是她,但你處處為她著想 276
19.2.1 以用戶行為為核心 276
19.2.2 以用戶數據為核心 277
19.2.3 “蟲蟲”哪裡走 278
19.3 進入雲,必須做好聰明又狂野的準備 279
19.3.1 其徐如林——周密計畫,才能有條不紊 280
19.3.2 其疾如風——快速執行 281
19.3.3 侵掠如火——乾吧,我們就是為這個來的 282
19.3.4 不動如山——牢固占領,“雲”上一分鐘,“雲”下十年功 283
19.4 小結 285
第20章 敏捷測試——速度之美 286
20.1 敏捷開發和傳統瀑布模型比較 286
20.2 快速疊代、發布可工作的軟體 288
20.2.1 面對面交流和簡潔的文檔 290
20.2.2 基於用戶故事的測試計畫 292
20.2.3 面向敏捷開發團隊的高效測試用例 294
20.2.4 持續集成和持續測試框架hudson 295
20.2.5 有效管理和跟蹤測試任務 297
20.2.6 快速跟蹤和解決缺陷 300
20.3 持續回顧和調整 304
20.4 小結:速度之美的真正含義 307
第21章 再談敏捷測試的方法和實踐 310
21.1 測試驅動開發與敏捷測試 310
21.2 敏捷測試自動化 313
21.2.1 自動化測試策略 313
21.2.2 自動化測試框架 314
21.2.3 敏捷測試工具 315
21.3 敏捷測試及其管理 316
21.3.1 敏捷測試流程的最佳化 316
21.3.2 新功能的測試和回歸測試策略 317
21.3.3 基於需求測試和基於風險測試的平衡 318
21.4 有關敏捷測試的思考 319
21.4.1 探索式測試的地位 320
21.4.2 測試人員在敏捷方法中的價值 321
21.5 小結 322
後記——從“軟體測試藝術”講座品味完美 323
空間之美 324
距離之美 324
技巧之美 325
辯證之美 326
白盒測試方法vs.黑盒測試方法 327
靜態測試vs.動態測試 328
被動測試vs.主動測試 329
手工測試vs.自動化測試 330
計畫測試vs.探索式測試 332
新功能測試vs.回歸測試 332
附錄a 敏捷方法的相關概念 334
附錄b 軟體測試的詳細分類 336
參考文獻 342