本書是作者總結(jié)十幾年的軟件測試的實踐經(jīng)驗寫成的,希望通過來自一線的實踐知識和技能,幫助讀者打開一扇通往軟件測試之路的大門,尋找到解決測試問題的技術(shù)、技巧和方法,體驗到測試工作中“逮”Bug猶如“尋寶”的樂趣。全書分為“設(shè)計”“工具”和“管理”3篇,共14章,每章的內(nèi)容雖有一定的聯(lián)系,但也可各自獨立,讀者可以根據(jù)自己的需求,按照書的內(nèi)容順序閱讀,也可以根據(jù)自己的興趣選取相關(guān)章節(jié)閱讀。
本書可供軟件測試初學(xué)者、測試從業(yè)人員閱讀,也可作為大專院校計算機軟件專業(yè)學(xué)生的參考書,還可作為培訓(xùn)學(xué)校的教材。
本書的特色在于將大量的技術(shù)賦予了實際的應(yīng)用場景,讓讀者能夠更加清晰地把握如何將測試技術(shù)應(yīng)用于具體實踐的同時,為測試團隊實施相關(guān)技術(shù)方案帶來信心。本書的技術(shù)內(nèi)容和流程方法傾注了作者多年的從業(yè)經(jīng)驗,讀者可以基于該書的內(nèi)容為模板,迅速展開合理、規(guī)范和有序的測試工作。書中所講述的測試技術(shù)都是作者精心選取的主流技術(shù),體現(xiàn)了作者豐富的行業(yè)經(jīng)驗和對新技術(shù)發(fā)展方向敏銳的洞察力,初級以及zi深的讀者均可受益于本書的精彩內(nèi)容。
·結(jié)合案例介紹基于傳統(tǒng)和經(jīng)驗的軟件測試設(shè)計方法
·介紹性能測試、嵌入式測試、大數(shù)據(jù)測試、云計算測試技術(shù)
·介紹Junit4、LoadRunner、Bugzilla、UiAutomator、Selenium&Webdriver、Monkey和星云測試工具的使用
·講解軟件測試與質(zhì)量文檔、軟件測試管理的知識,以及軟件測試工程師的職業(yè)規(guī)劃
顧翔,畢業(yè)于北京工業(yè)大學(xué),畢業(yè)后即從事軟件開發(fā),2002年開始從事軟件測試工作,曾經(jīng)在各大知名的互聯(lián)網(wǎng)公司、嵌入式軟件公司、通信公司和網(wǎng)絡(luò)管理軟件公司等擔(dān)任軟件測試工程師、軟件測試經(jīng)理等職務(wù),積累了豐富的軟件測試知識和實踐經(jīng)驗,F(xiàn)專職從事軟件開發(fā)與測試、大數(shù)據(jù)及云計算相關(guān)的培訓(xùn)工作,是中關(guān)村智聯(lián)軟件服務(wù)業(yè)質(zhì)量創(chuàng)新聯(lián)盟成員,被北京軟件和信息服務(wù)業(yè)協(xié)會、北京課通天下、上海宇谷培訓(xùn)公司、上海知言網(wǎng)絡(luò)科技有限公司和中睿信息技術(shù)有限公司聘為高級zi深講師。2014年,接受51測試網(wǎng)的專訪:《51Testing專訪顧翔—解讀開發(fā)轉(zhuǎn)測試的趣味人生》,并且在51testing發(fā)布了一系列個人專刊,如《測試?-顧翔與你一起漫談測試》和《測試專刊-白云群中話計算》等。
第1篇 軟件測試設(shè)計技術(shù)
第1章 軟件測試的基本知識 3
1.1 軟件測試的基本理論 4
1.1.1 軟件測試的定義 4
1.1.2 軟件測試術(shù)語 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 軟件的殺蟲劑現(xiàn)象 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:不存在缺陷
(即有用系統(tǒng))的謬論 31
1.3 驗證與確認(rèn)的區(qū)別 31
1.4 本章總結(jié) 33
1.4.1 介紹內(nèi)容 33
1.4.2 案例 34
第2章 傳統(tǒng)的軟件測試的設(shè)計方法 36
2.1 運用等價類/邊界值設(shè)計測
試用例 37
2.1.1 等價類 37
2.1.2 邊界值 38
2.1.3 基于輸出的等價類/
邊界值劃分 39
2.1.4 測試用例的設(shè)計 39
2.1.5 案例 41
2.2 運用決策表設(shè)計測試用例 41
2.2.1 四邊形類型判斷系統(tǒng) 41
2.2.2 用戶登錄系統(tǒng) 43
2.2.3 飛機票定價系統(tǒng) 45
2.3 運用狀態(tài)轉(zhuǎn)換圖設(shè)計測試用例 48
2.3.1 從狀態(tài)轉(zhuǎn)換圖到狀態(tài)
轉(zhuǎn)換樹 49
2.3.2 從狀態(tài)轉(zhuǎn)換圖到狀態(tài)
轉(zhuǎn)換表 51
2.3.3 業(yè)務(wù)流程狀態(tài)轉(zhuǎn)化法 52
2.4 運用決策樹設(shè)計測試用例 53
2.4.1 文本編輯軟件 53
2.4.2 機票購買系統(tǒng) 54
2.5 運用正交法設(shè)計測試用例 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 總結(jié) 70
2.7 測試用例設(shè)計的若干錯誤觀點 70
2.7.1 能發(fā)現(xiàn)到目前為止沒有
發(fā)現(xiàn)的缺陷的用例是
好的用例 70
2.7.2 測試用例應(yīng)該詳細(xì)記錄
所有的詳細(xì)操作信息 70
2.7.3 測試用例設(shè)計出來后是
不用維護的 71
2.7.4 測試用例不應(yīng)該包含
實際的數(shù)據(jù) 71
2.8 本章總結(jié) 71
2.8.1 介紹內(nèi)容 71
2.8.2 案例 72
第3章 探索式軟件測試設(shè)計方法 74
3.1 探索式軟件測試中用到的
一些方法 75
3.1.1 表單輸入的測試探索 75
3.1.2 模糊查詢輸入框輸入
數(shù)據(jù)的測試探索 77
3.1.3 對文件的探索 78
3.1.4 登錄界面的測試探索 79
3.1.5 根據(jù)機器的聲音探索 79
3.1.6 通過查看Log日志
探索 80
3.1.7 在開頭/結(jié)尾處進行
探索 80
3.1.8 多次執(zhí)行同樣操作
進行探索 80
3.1.9 通過復(fù)制/粘貼進行
探索 81
3.1.10 通過測試結(jié)果進行
探索 82
3.1.11 利用反向操作進行
探索 83
3.1.12 利用名詞和動詞進行
探索 83
3.1.13 運用提問進行探索 84
3.1.14 函數(shù)級別的黑盒測試
探索 85
3.1.15 運用不懂技術(shù)和業(yè)務(wù)的
人員進行探索 85
3.1.16 并發(fā)操作的測試探索 85
3.1.17 頁面刷新功能的測試
探索 87
3.1.18 不常用功能的測試
探索 87
3.1.19 URL欄的測試探索 87
3.1.20 突發(fā)事故的測試探索 88
3.1.21 界面鏈接的測試探索 88
3.1.22 需要多步操作來完成
一個事務(wù)的測試探索 89
3.1.23 老功能的測試探索 89
3.1.24 重災(zāi)區(qū)的測試探索 90
3.1.25 強迫癥測試法的測試
探索 90
3.1.26 升級的測試探索 91
3.1.27 總結(jié) 91
3.2 基于場景的測試 92
3.3 本章總結(jié) 94
3.3.1 介紹內(nèi)容 94
3.3.2 案例 95
第4章 基于風(fēng)險的軟件測試 97
4.1 基于風(fēng)險的軟件測試方法 98
4.2 軟件測試風(fēng)險級別確認(rèn)與
調(diào)整 101
4.2.1 確定風(fēng)險級別 101
4.2.2 調(diào)整風(fēng)險級別 103
4.3 本章總結(jié) 105
4.3.1 介紹內(nèi)容 105
4.3.2 案例 105
第5章 專項軟件測試設(shè)計 106
5.1 性能測試 107
5.1.1 性能測試的定義 107
5.1.2 由于性能測試沒做
到位發(fā)生的缺陷 107
5.1.3 性能指標(biāo) 107
5.1.4 性能計數(shù)器 110
5.1.5 性能測試類型 118
5.1.6 性能測試可以發(fā)現(xiàn)的
問題 119
5.1.7 性能調(diào)優(yōu) 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 插樁技術(shù) 127
5.2.4 嵌入式軟件測試
工具 127
5.3 本章總結(jié) 129
5.3.1 介紹內(nèi)容 129
5.3.2 案例 129
第6章 云計算、大數(shù)據(jù)的軟件測試
方法 131
6.1 如何對大數(shù)據(jù)軟件產(chǎn)品進行
軟件測試 132
6.1.1 前言 132
6.1.2 新產(chǎn)品的軟件測試 132
6.1.3 老產(chǎn)品的升級測試 132
6.2 云計算軟件測試應(yīng)注意的
問題 133
6.2.1 云計算中增加了供應(yīng)商
角色,給云計算測試帶
來復(fù)雜性 133
6.2.2 云計算中使用虛擬技術(shù),
給性能測試帶來的影響 134
6.2.3 增加按照使用量收費的
軟件測試方法 134
6.2.4 安全性測試 135
6.2.5 定位問題 135
6.2.6 法律法規(guī)問題 136
6.2.7 遷移性軟件測試 136
6.2.8 功能測試 137
6.2.9 自動化測試 138
6.3 云計算的優(yōu)缺點 138
6.3.1 優(yōu)點 138
6.3.2 缺點 140
6.4 文檔、環(huán)境、數(shù)據(jù)在云軟件
測試中的管理 141
6.4.1 文檔管理 141
6.4.2 云計算軟件測試環(huán)境
管理 142
6.4.3 云計算軟件測試數(shù)據(jù)
管理 143
6.4.4 變更管理與版本
控制 143
6.5 本章總結(jié) 144
6.5.1 介紹內(nèi)容 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 關(guān)于自動化測試工具 154
7.2.1 自動化測試工具本身
也是軟件,也要重視
工具本身的質(zhì)量 154
7.2.2 自動化測試工具要隨用
戶的需求變化而變化 155
7.2.3 不是所有的功能都可以
作自動化測試 155
7.2.4 探索式軟件測試也可由
自動化測試來實現(xiàn) 155
7.2.5 是否需要采用自動化測試,
需要考慮測試的效率 155
7.2.6 自動化測試可以覆蓋軟
件測試中的每個階段 156
7.2.7 軟件測試自動化是敏捷
開發(fā)強有力的工具 156
7.2.8 不要盲目選用現(xiàn)有的自
動化測試工具 156
7.2.9 各種類型的自動化測試
工具的比較 157
7.3 本章總結(jié) 158
第8章 單元測試工具 160
8.1 單元測試工具JUnit 4如何
在Eclipse中使用 161
8.1.1 JUnit 4環(huán)境的配置 161
8.1.2 JUnt4測試用例的運行
和調(diào)試 164
8.1.3 對代碼的詳細(xì)介紹 166
8.1.4 對JUnit 4的高級操作 167
8.1.5 介紹一下斷言 171
8.1.6 案例分析 173
8.2 本章總結(jié) 175
8.2.1 介紹內(nèi)容 175
8.2.2 案例 175
第9章 性能測試工具 176
9.1 LoadRunner工具介紹 177
9.1.1 LoadRunner簡介 177
9.1.2 LoadRunner性能測試
工具架構(gòu) 177
9.1.3 LoadRunner基本功能
使用技巧 178
9.1.4 用LoadRunner實現(xiàn)APP
壓力測試 207
9.1.5 案例 209
9.2 本章總結(jié) 214
9.2.1 介紹內(nèi)容 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 產(chǎn)品和結(jié)構(gòu) 217
10.1.5 Bug報告狀態(tài)分類和Bug
處理意見 217
10.1.6 指定處理人 218
10.1.7 超鏈接 218
10.1.8 概述 218
10.1.9 硬件平臺和操作系統(tǒng) 218
10.1.10 版本 218
10.1.11 Bug報告優(yōu)先級 218
10.1.12 Bug狀態(tài) 218
10.1.13 報告人 219
10.1.14 郵件抄送列表 219
10.1.15 從屬關(guān)系 219
10.1.16 附加描述 219
10.1.17 Bug查找 219
10.1.18 Bug列表 220
10.1.19 用戶屬性設(shè)置 220
10.2 案例 220
10.3 本章總結(jié) 225
10.3.1 介紹內(nèi)容 225
10.3.2 案例 226
第11章 APP軟件測試工具 227
11.1 UiAutomator工具介紹 228
11.1.1 使用UiAutomator
工具的優(yōu)點 229
11.1.2 下載和配置 229
11.1.3 開發(fā)測試代碼 232
11.1.4 UiAutomator API
詳解 245
11.1.5 案例分析 258
11.2 Selenium和WebDriver工具
入門介紹 264
11.2.1 環(huán)境安裝 265
11.2.2 WebDriver對瀏覽器的
支持 268
11.2.3 操作指南 269
11.2.4 案例分析 272
11.3 Monkey工具介紹 293
11.3.1 Monkey的特征 293
11.3.2 基本語法 293
11.3.3 檢查安卓設(shè)備中有
什么包 293
11.3.4 Monkey的參數(shù)列表 294
11.3.5 利用Monkey進行
穩(wěn)定性測試 297
11.3.6 Monkey腳本 298
11.4 精準(zhǔn)測試工具——星云
測試平臺 298
11.4.1 精準(zhǔn)測試?yán)砟?298
11.4.2 星云測試工具客戶端
下載與配置 299
11.4.3 項目編譯 300
11.4.4 執(zhí)行測試 305
11.5 本章總結(jié) 311
11.5.1 介紹內(nèi)容 311
11.5.2 案例 312
參考文獻 313
第3篇 軟件測試管理
第12章 軟件測試與質(zhì)量文檔 317
12.1 研發(fā)過程管理工作規(guī)范 318
12.2 飛天e-購網(wǎng)軟件測試報告 360
12.3 BBS軟件測試報告 375
12.4 數(shù)字電視機頂盒中間件集成
測試計劃書 378
12.5 BBS主測試計劃 383
12.6 BBS級別測試計劃 392
12.7 軟件缺陷管理流程 398
12.8 本章總結(jié) 409
第13章 軟件測試管理 410
13.1 軟件測試團隊組成結(jié)構(gòu)分析 411
13.1.1 方案一 411
13.1.2 方案二 412
13.2 軟件測試過程 413
13.3 軟件測試的獨立性 417
13.4 從微軟裁員首裁軟件測試
工程師談起 419
13.5 軟件測試的本質(zhì) 421
純軟件
測試方法
介紹 421
13.5.2 純軟件測試方法在
Sprint中的運用 422
13.5.3 純軟件測試方法與軟件質(zhì)量的關(guān)系 423
13.6 對敏捷開發(fā)的一些思考 424
13.6.1 簡介 424
13.6.2 敏捷開發(fā)的優(yōu)點 424
13.6.3 敏捷開發(fā)的缺點 426
13.6.4 總結(jié) 427
13.7 精益創(chuàng)業(yè)與探索式軟件
測試 427
13.8 本章總結(jié) 428
13.8.1 介紹內(nèi)容 428
13.8.2 案例 429
第14章 軟件測試工程師的職業(yè)
素質(zhì) 430
14.1 如何成為一名優(yōu)秀的軟件
測試工程師 431
14.1.1 起碼有3年以上的
軟件開發(fā)經(jīng)驗 431
14.1.2 具有逆向思維的
能力 432
14.1.3 具有敏銳的洞察力和
鍥而不舍的精神 432
14.1.4 具有發(fā)散性思維的
能力 432
14.1.5 擅于同軟件開發(fā)工程
師溝通 432
14.1.6 擅于同領(lǐng)導(dǎo)溝通 433
14.1.7 掌握一些自動化軟件
測試工具和腳本 433
14.1.8 擅于學(xué)習(xí) 434
14.1.9 提高自己的表達
能力 434
14.1.10 了解業(yè)務(wù)知識 434
14.1.11 培養(yǎng)對軟件測試的
興趣 434
14.1.12 追求完美 434
14.2 如何成為一名優(yōu)秀的軟件
質(zhì)量保證工程師 435
14.2.1 具有軟件開發(fā),軟件
測試和實施經(jīng)驗 435
14.2.2 具有一定的統(tǒng)計學(xué)
基礎(chǔ) 435
14.2.3 強大的溝通能力 436
14.2.4 專業(yè)的管理和質(zhì)量
知識 436
14.3 軟件測試好書推薦 436
14.3.1 《軟件測試的藝術(shù)》 436
14.3.2 《贏在測試2-中國軟件
測試專家訪談錄》 437
14.3.3 《探索式軟件測試》 437
14.3.4 《探索式測試實踐
之路》 438
14.3.5 《探索吧!深入理解探
索式軟件測試》 438
14.3.6 《云服務(wù)測試如何
高效地進行云計算
測試》 438
14.3.7 《Google軟件測試
之道》 438
14.3.8 《軟件測試經(jīng)驗與
教訓(xùn)》 438
14.3.9 《學(xué)習(xí)要像加勒比
海盜》 439
14.4 云計算中發(fā)生的事故 439
14.4.1 Google應(yīng)用引擎平臺
宕機 439
14.4.2 Google Gmail和日歷
服務(wù)中斷 439
14.4.3 Google Voice服務(wù)
宕機 439
14.4.4 亞馬遜S3服務(wù)
故障 440
14.4.5 亞馬遜EC2云計算服務(wù)
遭到僵尸網(wǎng)絡(luò)攻擊 440
14.4.6 微軟爆發(fā)BPOS服務(wù)
中斷事件 440
14.4.7 Amazon主頁故障 440
14.5 ISTQB和CSTQB 441
14.6 本章總結(jié) 442
參考文獻 443