軟體測試技術實戰設計、工具及管理

顧翔 著 51testing軟體測試網編著

本書是作者總結十幾年的軟體測試的實踐經驗寫成的,希望通過來自一線的實踐知識和技能,幫助讀者打開一扇通往軟體測試之路的大門,尋找到解決測試問題的技術、技巧和方法,體驗到測試工作中“逮”Bug猶如“尋寶”的樂趣。全書分為“設計”“工具”和“管理”3篇,共14章,每章的內容雖有一定的聯繫,但也可各自獨立,讀者可以根據自己的需求,按照書的內容順序閱讀,也可以根據自己的興趣選取相關章節閱讀。本書可供軟體測試初學者、測試從業人員閱讀,也可作為計算機軟體專業學生的參考書,還可作為培訓學校的教材。


作者介紹

顧翔,畢業於北京工業大學,畢業後即從事軟體開發,2002年開始從事軟體測試工作,曾經在各大知名的網際網路公司、嵌入式軟體公司、通信公司和網路管理軟體公司等擔任軟體測試工程師、軟體測試經理等職務,積累了豐富的軟體測試知識和實踐經驗。現專職從事軟體開發與測試、大數據及雲計算相關的培訓工作,是中關村智聯軟體服務業質量創新聯盟成員,被北京軟體和信息服務業協會、北京課通天下、上海宇谷培訓公司、上海知言網路科技有限公司和中睿信息技術有限公司聘為高級zi深講師。2014年,接受51測試網的專訪:《51Testing專訪顧翔—解讀開發轉測試的趣味人生》,並且在51testing發布了一系列個人專刊,如《測試專刊-顧翔與你一起漫談測試》和《測試專刊-白雲群中話計算》等。。

本書介紹

本書是作者總結十幾年的軟體測試的實踐經驗寫成的,希望通過來自一線的實踐知識和技能,幫助讀者打開一扇通往軟體測試之路的大門,尋找到解決測試問題的技術、技巧和方法,體驗到測試工作中“逮”Bug猶如“尋寶”的樂趣。全書分為“設計”“工具”和“管理”3篇,共14章,每章的內容雖有一定的聯繫,但也可各自獨立,讀者可以根據自己的需求,按照書的內容順序閱讀,也可以根據自己的興趣選取相關章節閱讀。
本書可供軟體測試初學者、測試從業人員閱讀,也可作為大專院校計算機軟體專業學生的參考書,還可作為培訓學校的教材。

目錄

第1 篇 軟體測試設計技術
第1 章 軟體測試的基本知識.....................3
1.1 軟體測試的基本理論....................4
1.1.1 軟體測試的定義...............4
1.1.2 軟體測試術語...................5
1.1.3 軟體工程模型...................9
1.1.4 軟體測試模型.................10
1.1.5 軟體測試方法.................12
1.1.6 軟體測試步驟.................13
1.1.7 軟體缺陷管理.................14
1.1.8 測試用例.........................16
1.1.9 軟體測試類型.................19
1.1.10 軟體測試曲線...............28
1.1.11 軟體的殺蟲劑現象.......29
1.2 軟體測試的七項基本原則..........29
1.2.1 原則1:軟體測試顯示存在缺陷.........................30
1.2.2 原則2:窮盡軟體測試是不可行的.....................30
1.2.3 原則3:軟體測試儘早介入.................................30
1.2.4 原則4:缺陷集群性......30
1.2.5 原則5:殺蟲劑悖論......31
1.2.6 原則6:軟體測試活動依賴於軟體測試背景.....31
1.2.7 原則7:不存在缺陷(即有用系統)的謬論...31
1.3 驗證與確認的區別.....................31
1.4 本章總結.....................................33
1.4.1 介紹內容.........................33
1.4.2 案例.................................34
第2 章 傳統的軟體測試的設計方法.......36
2.1 運用等價類/邊界值設計測試用例.........................................37
2.1.1 等價類.............................37
2.1.2 邊界值.............................38
2.1.3 基於輸出的等價類/邊界值劃分.....................39
2.1.4 測試用例的設計..............39
2.1.5 案例.................................41
2.2 運用決策表設計測試用例..........41
2.2.1 四邊形類型判斷系統......41
2.2.2 用戶登錄系統..................43
2.2.3 飛機票定價系統..............45
2.3 運用狀態轉換圖設計測試用例....48
2.3.1 從狀態轉換圖到狀態轉換樹.............................49
2.3.2 從狀態轉換圖到狀態轉換表.............................51
2.3.3 業務流程狀態轉化法......52
2.4 運用決策樹設計測試用例..........53
2.4.1 文本編輯軟體..................53
2.4.2 機票購買系統..................54
2.5 運用正交法設計測試用例..........55
2.5.1 正交法.............................56
2.5.2 瀏覽器組合軟體測試......56
2.6 軟體白盒測試..............................58
2.6.1 語句覆蓋測試.................59
2.6.2 分支覆蓋測試.................61
2.6.3 條件覆蓋測試.................63
2.6.4 判定/條件覆蓋測試........65
2.6.5 MC/DC(修訂的條件/分支軟體測試)覆蓋測試.....66
2.6.6 路徑覆蓋測試.................67
2.6.7 控制流測試.....................68
2.6.8 單元測試中的基於代碼的功能測試.........................69
2.6.9 總結.................................70
2.7 測試用例設計的若干錯誤觀點...70
2.7.1 能發現到目前為止沒有發現的缺陷的用例是好的用例.........................70
2.7.2 測試用例應該詳細記錄所有的詳細操作信息.....70
2.7.3 測試用例設計出來後是不用維護的.....................71
2.7.4 測試用例不應該包含實際的數據.....................71
2.8 本章總結.....................................71
2.8.1 介紹內容.........................71
2.8.2 案例.................................72
第3 章 探索式軟體測試設計方法...........74
3.1 探索式軟體測試中用到的一些方法.....................................75
3.1.1 表單輸入的測試探索.....75
3.1.2 模糊查詢輸入框輸入數據的測試探索.............77
3.1.3 對檔案的探索.................78
3.1.4 登錄界面的測試探索.....79
3.1.5 根據機器的聲音探索.....79
3.1.6 通過查看Log 日誌探索.................................80
3.1.7 在開頭/結尾處進行探索.................................80
3.1.8 多次執行同樣操作進行探索.........................80
3.1.9 通過複製/貼上進行探索.................................81
3.1.10 通過測試結果進行探索...............................82
3.1.11 利用反向操作進行探索...............................83
3.1.12 利用名詞和動詞進行探索...............................83
3.1.13 運用提問進行探索........84
3.1.14 函式級別的黑盒測試探索...............................85
3.1.15 運用不懂技術和業務的人員進行探索...............85
3.1.16 並發操作的測試探索....85
3.1.17 頁面刷新功能的測試探索...............................87
3.1.18 不常用功能的測試探索...............................87
3.1.19 URL 欄的測試探索.......87
3.1.20 突發事故的測試探索....88
3.1.21 界面連結的測試探索....88
3.1.22 需要多步操作來完成一個事務的測試探索...89
3.1.23 老功能的測試探索........89
3.1.24 重災區的測試探索........90
3.1.25 強迫症測試法的測試探索...............................90
3.1.26 升級的測試探索............91
3.1.27 總結...............................91
3.2 基於場景的測試..........................92
3.3 本章總結......................................94
3.3.1 介紹內容.........................94
3.3.2 案例.................................95
第4 章 基於風險的軟體測試...................97
4.1 基於風險的軟體測試方法..........98
4.2 軟體測試風險級別確認與調整...........................................101
4.2.1 確定風險級別...............101
4.2.2 調整風險級別...............103
4.3 本章總結...................................105
4.3.1 介紹內容.......................105
4.3.2 案例...............................105
第5 章 專項軟體測試設計.....................106
5.1 性能測試...................................107
5.1.1 性能測試的定義...........107
5.1.2 由於性能測試沒做到位發生的缺陷...........107
5.1.3 性能指標.......................107
5.1.4 性能計數器...................110
5.1.5 性能測試類型...............118
5.1.6 性能測試可以發現的問題...............................119
5.1.7 性能調優.......................119
5.1.8 性能測試角色...............121
5.1.9 性能測試工具...............122
5.1.10 性能測試流程.............123
5.2 嵌入式軟體的基本測試方法....125
5.2.1 嵌入式軟體測試流程...............................125
5.2.2 單元測試和集成測試...............................127
5.2.3 插樁技術.......................127
5.2.4 嵌入式軟體測試工具...............................127
5.3 本章總結...................................129
5.3.1 介紹內容.......................129
5.3.2 案例...............................129
第6 章 雲計算、大數據的軟體測試方法............................................131
6.1 如何對大數據軟體產品進行軟體測試...................................132
6.1.1 前言...............................132
6.1.2 新產品的軟體測試........132
6.1.3 老產品的升級測試........132
6.2 雲計算軟體測試應注意的問題...........................................133
6.2.1 雲計算中增加了供應商角色,給雲計算測試帶來複雜性.......................133
6.2.2 雲計算中使用虛擬技術,給性能測試帶來的影響....134
6.2.3 增加按照使用量收費的軟體測試方法...............134
6.2.4 安全性測試...................135
6.2.5 定位問題.......................135
6.2.6 法律法規問題................136
6.2.7 遷移性軟體測試............136
6.2.8 功能測試.......................137
6.2.9 自動化測試...................138
6.3 雲計算的優缺點........................138
6.3.1 優點...............................138
6.3.2 缺點...............................140
6.4 文檔、環境、數據在雲軟體測試中的管理...........................141
6.4.1 文檔管理.......................141
6.4.2 雲計算軟體測試環境管理...............................142
6.4.3 雲計算軟體測試數據管理...............................143
6.4.4 變更管理與版本控制...............................143
6.5 本章總結...................................144
6.5.1 介紹內容.......................144
6.5.2 案例...............................144
參考文獻.............................................145
第2 篇 軟體測試工具
第7 章 軟體測試工具總覽.....................149
7.1 軟體測試工具介紹...................150
7.1.1 普通軟體測試工具推薦...150
7.1.2 APP 軟體測試工具.......150
7.1.3 軟體測試工具介紹.......151
7.1.4 軟體測試工具的類型...153
7.2 關於自動化測試工具................154
7.2.1 自動化測試工具本身也是軟體,也要重視工具本身的質量...........154
7.2.2 自動化測試工具要隨用戶的需求變化而變化...155
7.2.3 不是所有的功能都可以作自動化測試...............155
7.2.4 探索式軟體測試也可由自動化測試來實現.......155
7.2.5 是否需要採用自動化測試,需要考慮測試的效率...155
7.2.6 自動化測試可以覆蓋軟體測試中的每個階段...156
7.2.7 軟體測試自動化是敏捷開發強有力的工具.......156
7.2.8 不要盲目選用現有的自動化測試工具...............156
7.2.9 各種類型的自動化測試工具的比較...................157
7.3 本章總結...................................158
第8 章 單元測試工具.............................160
8.1 單元測試工具JUnit 4 如何在Eclipse 中使用.....................161
8.1.1 JUnit 4 環境的配置.......161
8.1.2 Junt4 測試用例的運行和調試...........................164
8.1.3 對代碼的詳細介紹........166
8.1.4 對JUnit 4 的高級操作....167
8.1.5 介紹一下斷言................171
8.1.6 案例分析.......................173
8.2 本章總結....................................175
8.2.1 介紹內容.......................175
8.2.2 案例...............................175
第9 章 性能測試工具.............................176
9.1 LoadRunner 工具介紹...............177
9.1.1 LoadRunner 簡介...........177
9.1.2 LoadRunner 性能測試工具架構.......................177
9.1.3 LoadRunner 基本功能使用技巧.......................178
9.1.4 用LoadRunner 實現APP壓力測試.......................207
9.1.5 案例...............................209
9.2 本章總結....................................214
9.2.1 介紹內容.......................214
9.2.2 案例...............................214
第10 章 缺陷管理工具...........................215
10.1 Bugzilla 使用指南...................216
10.1.1 什麼是Bugzilla ...........216
10.1.2 為什麼使用Bugzilla....216
10.1.3 新建一個Bugzilla賬號.............................216
10.1.4 產品和結構..................217
10.1.5 Bug 報告狀態分類和Bug處理意見.....................217
10.1.6 指定處理人.................218
10.1.7 超連結.........................218
10.1.8 概述.............................218
10.1.9 硬體平台和作業系統...218
10.1.10 版本...........................218
10.1.11 Bug 報告優先權........218
10.1.12 Bug 狀態....................218
10.1.13 報告人.......................219
10.1.14 郵件抄送列表...........219
10.1.15 從屬關係...................219
10.1.16 附加描述...................219
10.1.17 Bug 查找....................219
10.1.18 Bug 列表....................220
10.1.19 用戶屬性設定...........220
10.2 案例.........................................220
10.3 本章總結.................................225
10.3.1 介紹內容.....................225
10.3.2 案例.............................226
第11 章 APP 軟體測試工具..................227
11.1 UiAutomator 工具介紹...........228
11.1.1 使用UiAutomator工具的優點.................229
11.1.2 下載和配置.................229
11.1.3 開發測試代碼.............232
11.1.4 UiAutomator API詳解.............................245
11.1.5 案例分析.....................258
11.2 Selenium 和WebDriver 工具入門介紹.................................264
11.2.1 環境安裝......................265
11.2.2 WebDriver 對瀏覽器的支持.............................268
11.2.3 操作指南......................26
11.2.4 案例分析......................272
11.3 Monkey 工具介紹....................293
11.3.1 Monkey 的特徵...........293
11.3.2 基本語法......................293
11.3.3 檢查安卓設備中有什麼包.........................293
11.3.4 Monkey 的參數列表...294
11.3.5 利用Monkey 進行穩定性測試.................297
11.3.6 Monkey 腳本...............298
11.4 精準測試工具——星雲測試平台.................................298
11.4.1 精準測試理念..............298
11.4.2 星雲測試工具客戶端下載與配置..................299
11.4.3 項目編譯......................300
11.4.4 執行測試......................305
11.5 本章總結..................................311
11.5.1 介紹內容......................311
11.5.2 案例..............................312
參考文獻...................................313
第3 篇 軟體測試管理
第12 章 軟體測試與質量文檔...............317
12.1 研發過程管理工作規範..........318
12.2 飛天e-購網軟體測試報告.....360
12.3 BBS 軟體測試報告.................375
12.4 數位電視機頂盒中間件集成測試計畫書.............................378
12.5 BBS 主測試計畫.....................383
12.6 BBS 級別測試計畫.................392
12.7 軟體缺陷管理流程..................398
12.8 本章總結..................................409
第13 章 軟體測試管理...........................410
13.1 軟體測試團隊組成結構分析....411
13.1.1 方案一.........................411
13.1.2 方案二.........................412
13.2 軟體測試過程.........................413
13.3 軟體測試的獨立性..................417
13.4 從微軟裁員首裁軟體測試工程師談起.............................419
13.5 軟體測試的本質.....................421
13.5.1 純軟體測試方法介紹.............................421
13.5.2 純軟體測試方法在Sprint 中的運用..........422
13.5.3 純軟體測試方法與軟體質量的關係.......................423
13.6 對敏捷開發的一些思考..........424
13.6.1 簡介.............................424
13.6.2 敏捷開發的優點.........424
13.6.3 敏捷開發的缺點.........426
13.6.4 總結.............................427
13.7 精益創業與探索式軟體測試.........................................427
13.8 本章總結.................................428
13.8.1 介紹內容.....................428
13.8.2 案例.............................429
第14 章 軟體測試工程師的職業素質...........................................430
14.1 如何成為一名優秀的軟體測試工程師.............................431
14.1.1 起碼有3 年以上的軟體開發經驗.............431
14.1.2 具有逆向思維的能力.............................432
14.1.3 具有敏銳的洞察力和鍥而不捨的精神.........432
14.1.4 具有發散性思維的能力.............................432
14.1.5 擅於同軟體開發工程師溝通.........................432
14.1.6 擅於同領導溝通..........433
14.1.7 掌握一些自動化軟體測試工具和腳本.........433
14.1.8 擅於學習.....................434
14.1.9 提高自己的表達能力.............................434
14.1.10 了解業務知識............434
14.1.11 培養對軟體測試的興趣...........................434
14.1.12 追求完美...................434
14.2 如何成為一名優秀的軟體質量保證工程師.....................435
14.2.1 具有軟體開發,軟體測試和實施經驗.........435
14.2.2 具有一定的統計學基礎.............................435
14.2.3 強大的溝通能力..........436
14.2.4 專業的管理和質量知識.............................436
14.3 軟體測試好書推薦..................436
14.3.1 《軟體測試的藝術》....436
14.3.2 《贏在測試2-中國軟體測試專家訪談錄》...437
14.3.3 《探索式軟體測試》....437
14.3.4 《探索式測試實踐之路》.......................438
14.3.5 《探索吧!深入理解探索式軟體測試》.......438
14.3.6 《雲服務測試如何高效地進行雲計算測試》.......................438
14.3.7 《Google 軟體測試之道》.......................438
14.3.8 《軟體測試經驗與教訓》.......................438
14.3.9 《學習要像加勒比海盜》.......................439
14.4 雲計算中發生的事故..............439
14.4.1 Google 套用引擎平台宕機.............................439
14.4.2 Google Gmail 和日曆服務中斷.....................439
14.4.3 Google Voice 服務宕機.............................439
14.4.4 亞馬遜S3 服務故障...440
14.4.5 亞馬遜EC2 雲計算服務遭到殭屍網路攻擊.....440
14.4.6 微軟爆發BPOS 服務中斷事件.....................440
14.4.7 Amazon 主頁故障.......440
14.5 ISTQB 和CSTQB ...................441
14.5.1 ISTQB &CSTQB簡介.............................441
14.6 本章總結..................................442
介紹內容...................................442
參考文獻.............................................44

相關詞條

熱門詞條

聯絡我們