本書全面講解了軟件測試人員必知必會的測試知識、技術(shù)和工具。 全書分為12章。第1章和第2章用用戶登錄測試實例,講解了軟件測試基礎(chǔ)知識,讓讀者快速學(xué)習(xí)關(guān)鍵的基礎(chǔ)知識;第3章講解了GUI測試框架設(shè)計、框架在大型電商網(wǎng)站的具體實踐,梳理了影響GUI自動化測試穩(wěn)定性的關(guān)鍵因素,并給出了切實可行的解決方案;第4章介紹了3類移動應(yīng)用的測試方法與技術(shù),以及如何在移動測試中應(yīng)用Appium來幫助測試人員更好地實現(xiàn)自動化測試;第5章以循序漸進的方式,講解了API測試的關(guān)鍵技術(shù)、微服務(wù)架構(gòu)下的API測試挑戰(zhàn)等;第6章講解了代碼級測試的基礎(chǔ)知識、靜態(tài)測試方法、動態(tài)測試方法、靜態(tài)掃描工具Sonar、單元測試框架TestNG、代碼覆蓋率工具等內(nèi)容;第7章和第8章系統(tǒng)地對性能測試的方法以及應(yīng)用領(lǐng)域進行闡述,并基于LoadRunner講解大型企業(yè)性能測試的規(guī)劃、設(shè)計、實現(xiàn)的具體實例,還介紹了大型互聯(lián)網(wǎng)產(chǎn)品的全鏈路壓測的行業(yè)實踐;第9章探討了測試數(shù)據(jù)準備的技術(shù),并討論了很多準備測試數(shù)據(jù)的新方法;第10章結(jié)合主流的DevOps和CI CD,深入剖析了大型互聯(lián)網(wǎng)企業(yè)的測試基礎(chǔ)架構(gòu)設(shè)計;第11章和第12章講解了軟件測試新技術(shù),如探索式測試、測試驅(qū)動開發(fā)、精準測試、滲透測試、基于模型的測試,以及人工智能在測試領(lǐng)域的應(yīng)用。 本書適合測試人員、開發(fā)人員、運維人員、測試經(jīng)理和軟件質(zhì)量保證人員學(xué)習(xí),也可以作為大專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書和培訓(xùn)學(xué)校的教材。
朱少民、周震漪、周楓,以及百度、阿里、騰訊、字節(jié)跳動、eBay、網(wǎng)易、美團、ThoughtWorks、*、谷歌、華為等公司測試專家推薦 極客時間"軟件測試52講-從小工到專家的實戰(zhàn)心法"專欄增補版圖書 一本適合新時代的合格測試架構(gòu)師和優(yōu)秀測試工程師必讀的全棧圖書,通過閱讀本書,你能夠有以下收獲。 ·深入理解GUI自動化測試的核心原理,能夠獨立完成GUI自動化測試策略設(shè)計,并能夠?qū)⒏咝、低維護成本的測試用例設(shè)計思路應(yīng)用到實際工作中。 ·掌握API測試工具的基本原理和測試方法,能夠在微服務(wù)項目中應(yīng)用契約測試方法。 ·掌握移動應(yīng)用的測試技術(shù)與方法,能夠?qū)鹘y(tǒng)的軟件測試方法熟練應(yīng)用到移動應(yīng)用的測試中,同時掌握移動應(yīng)用的專項測試方法。 ·全面掌握人工動態(tài)、人工靜態(tài)、自動動態(tài)和自動靜態(tài)這4種代碼級測試方法,并且能夠從測試架構(gòu)師的視角完成實際單元測試工作。 ·能夠按照書中介紹的思路,設(shè)計出符合自己公司需求的測試數(shù)據(jù)平臺,解決準備測試數(shù)據(jù)方面的難題。 ·掌握前后端性能測試的基本原理和方法,深入理解性能測試各項指標的內(nèi)在含義,能夠掌握基于LoadRunner和JMeter開發(fā)并執(zhí)行企業(yè)級性能測試的主要步驟與方法。 ·深入理解測試基礎(chǔ)架構(gòu)的概念,了解大型電商網(wǎng)站的測試基礎(chǔ)架構(gòu)設(shè)計技術(shù),并能夠有所取舍地應(yīng)用到項目中。 ·掌握互聯(lián)網(wǎng)架構(gòu)設(shè)計的核心知識,包括高性能、高可用性、可伸縮性和可擴展性,以便更好地進行測試設(shè)計。 ·了解前沿的測試新技術(shù),能夠在實際項目中有的放矢地應(yīng)用。 ·初步了解人工智能、大數(shù)據(jù)和云計算技術(shù)在測試領(lǐng)域的應(yīng)用場景。
茹炳晟 碩士,現(xiàn)任Dell EMC資深架構(gòu)師,負責(zé)VxRail產(chǎn)品線的全面質(zhì)量保障工作。歷任eBay中國研發(fā)中心測試基礎(chǔ)架構(gòu)技術(shù)主管,HP中國研發(fā)中心資深測試架構(gòu)師、性能測試專家,Alcatel-Lucent高級測試主管,Cisco中國研發(fā)中心資深測試工程師等職位,具有超過15年的軟件測試開發(fā)以及管理經(jīng)驗,具有豐富的測試框架設(shè)計與自動化測試經(jīng)驗。曾負責(zé)建立全球大型電商網(wǎng)站的測試基礎(chǔ)架構(gòu)和和自動化測試方案,主持搭建DevOps持續(xù)集成測試生態(tài)體系,并負責(zé)主導(dǎo)無線路由產(chǎn)品的整體自動化測試方案、金融平臺產(chǎn)品SDK測試框架設(shè)計、系統(tǒng)開發(fā)平臺的白盒測試方案、DSP平臺自動化測試方案、軌道交通安全軟件平臺測試、大規(guī)模產(chǎn)品鏈的自動化部署和多個大型電子商務(wù)網(wǎng)站的自動化功能測試,API測試與性能測試。作者曾在國際和國內(nèi)技術(shù)期刊發(fā)表多篇技術(shù)和管理類論文,同時受邀在國際(美國, 俄羅斯, 日本)與國內(nèi)頂級技術(shù)大會(Arch Summit, CNUTCon,Tid, GITC等 )上多次發(fā)表軟件測試和DevOps相關(guān)的技術(shù)演講。另外,茹炳晟還是極客時間軟件測試52講-從小工到專家的實戰(zhàn)心法的專欄作者。
目 錄
第 1章 軟件測試基礎(chǔ)知識精要(上) 1
1.1 從用戶登錄測試談起 2
1.1.1 功能測試用例 2
1.1.2 更多的測試用例 3
1.1.3 功能性需求與非功能性需求 3
1.1.4 測試的不可窮盡性 5
1.2 設(shè)計好的測試用例 5
1.2.1 好的測試用例的定義 6
1.2.2 好的測試用例具備的特征 6
1.2.3 常用測試用例的設(shè)計方法 6
1.2.4 好的測試用例的設(shè)計方法 8
1.2.5 測試用例設(shè)計的其他經(jīng)驗 10
1.3 單元測試的基礎(chǔ)知識 10
1.3.1 單元測試的定義 10
1.3.2 單元測試的最佳實踐 11
1.3.3 單元測試用例詳解 12
1.3.4 單元測試在實際項目中的最佳實踐 14
1.4 自動化測試的原始驅(qū)動力和使用場景 15
1.4.1 自動化測試的基本概念 15
1.4.2 自動化測試的優(yōu)勢與劣勢 16
1.4.3 自動化測試的使用場景 17
1.5 軟件開發(fā)各階段的自動化測試技術(shù) 18
1.5.1 單元測試的自動化技術(shù) 19
1.5.2 代碼級集成測試的自動化技術(shù) 21
1.5.3 Web Service測試的自動化技術(shù) 21
1.5.4 GUI測試的自動化技術(shù) 24
1.6 測試覆蓋率 25
1.6.1 需求覆蓋率 25
1.6.2 代碼覆蓋率 25
1.6.3 代碼覆蓋率的價值 26
1.6.4 代碼覆蓋率的局限性 27
1.6.5 關(guān)于代碼覆蓋率的報告 27
1.6.6 代碼覆蓋率工具的實現(xiàn)技術(shù) 29
第 2章 軟件測試基礎(chǔ)知識精要(下) 31
2.1 高效撰寫軟件缺陷報告 32
2.1.1 缺陷標題 32
2.1.2 缺陷概述 33
2.1.3 缺陷影響 33
2.1.4 環(huán)境配置 33
2.1.5 前置條件 34
2.1.6 缺陷重現(xiàn)步驟 34
2.1.7 期望結(jié)果和實際結(jié)果 34
2.1.8 優(yōu)先級和嚴重程度 34
2.1.9 變通方案 35
2.1.10 根原因分析 35
2.1.11 附件 35
2.2 以終為始,做好測試計劃 36
2.2.1 沒有測試計劃會怎么樣 36
2.2.2 測試范圍 37
2.2.3 測試策略 37
2.2.4 測試資源 38
2.2.5 測試進度 39
2.2.6 測試風(fēng)險預(yù)估 40
2.3 軟件測試工程師的核心競爭力 40
2.3.1 兩個實際面試案例 40
2.3.2 傳統(tǒng)測試工程師的核心競爭力 41
2.3.3 測試開發(fā)工程師的核心競爭力 43
2.4 軟件測試工程師需要掌握的非測試知識 44
2.4.1 迷你版的系統(tǒng)架構(gòu)師 44
2.4.2 網(wǎng)站架構(gòu)的核心知識 44
2.4.3 容器技術(shù) 45
2.4.4 云計算技術(shù) 46
2.4.5 DevOps思維 46
2.4.6 前端開發(fā)技術(shù) 47
2.5 互聯(lián)網(wǎng)產(chǎn)品的測試策略設(shè)計 47
2.5.1 研發(fā)流程的不同決定了測試策略的不同 47
2.5.2 傳統(tǒng)軟件產(chǎn)品的測試策略金字塔模型 48
2.5.3 互聯(lián)網(wǎng)產(chǎn)品的測試策略菱形模型 49
第3章 GUI自動化測試精要 52
3.1 從0到1:GUI自動化測試初探 53
3.1.1 示例:構(gòu)建一個Selenium自動化測試用例 53
3.1.2 Selenium的實現(xiàn)原理 55
3.2 效率為王:測試腳本和測試數(shù)據(jù)的解耦 58
3.2.1 測試腳本和測試數(shù)據(jù)的解耦 59
3.2.2 數(shù)據(jù)驅(qū)動測試 59
3.3 效率為王:頁面對象模型 60
3.3.1 早期GUI測試腳本的結(jié)構(gòu) 60
3.3.2 基于模塊化思想實現(xiàn)GUI測試用例 61
3.3.3 基于頁面對象模型實現(xiàn)GUI測試用例 63
3.4 更接近業(yè)務(wù)的抽象:讓自動化測試腳本更好地描述業(yè)務(wù) 63
3.4.1 操作函數(shù)的粒度把控 63
3.4.2 銜接兩個操作函數(shù)之間的頁面 64
3.4.3 業(yè)務(wù)流程抽象 64
3.5 過不了的坎:GUI自動化過程中的測試數(shù)據(jù) 66
3.5.1 基于API調(diào)用創(chuàng)建測試數(shù)據(jù) 67
3.5.2 基于數(shù)據(jù)庫操作創(chuàng)建測試數(shù)據(jù) 68
3.5.3 綜合運用API調(diào)用和數(shù)據(jù)庫操作創(chuàng)建測試數(shù)據(jù) 68
3.5.4 實時創(chuàng)建測試數(shù)據(jù) 69
3.5.5 事先創(chuàng)建測試數(shù)據(jù) 69
3.5.6 實時創(chuàng)建測試數(shù)據(jù)和事先創(chuàng)建測試數(shù)據(jù)的互補 70
3.6 GUI測試還能這么玩 70
3.6.1 自動生成頁面對象 70
3.6.2 自動生成GUI測試數(shù)據(jù) 71
3.6.3 無頭瀏覽器簡介 72
3.6.4 Headless Chrome與Puppeteer的使用 73
3.7 精益求精:提高GUI測試穩(wěn)定性的關(guān)鍵技術(shù) 74
3.7.1 非預(yù)計的彈出對話框 75
3.7.2 頁面控件屬性的細微變化 76
3.7.3 被測系統(tǒng)的A B測試 76
3.7.4 隨機的頁面延遲造成控件識別失敗 77
3.7.5 測試數(shù)據(jù)問題 77
3.8 眼前一亮:帶你玩轉(zhuǎn)GUI自動化的測試報告 77
3.8.1 早期基于視頻的GUI測試報告 78
3.8.2 開源GUI測試框架的測試報告實現(xiàn)思路 78
3.8.3 全球化GUI測試報告的創(chuàng)新設(shè)計 80
3.9 真實的戰(zhàn)場:大型全球化項目中GUI自動化測試策略的設(shè)計 82
3.9.1 大型全球化電商網(wǎng)站的前端模塊劃分 82
3.9.2 大型全球化電商網(wǎng)站的GUI自動化測試策略設(shè)計 82
3.9.3 大型全球化電商網(wǎng)站的GUI自動化測試腳本管理 85
第4章 移動應(yīng)用測試技術(shù) 87
4.1 移動應(yīng)用的種類和特點 88
4.1.1 Web應(yīng)用 88
4.1.2 原生應(yīng)用 89
4.1.3 混合應(yīng)用 89
4.2 移動應(yīng)用測試方法概論 89
4.2.1 Web應(yīng)用的測試 90
4.2.2 原生應(yīng)用的測試 90
4.2.3 混合應(yīng)用的測試 90
4.2.4 移動應(yīng)用的測試難點 91
4.3 移動應(yīng)用的專項測試 92
4.3.1 安裝測試 92
4.3.2 卸載測試 94
4.3.3 特殊操作測試 95
4.3.4 交互測試 96
4.3.5 通知測試 96
4.3.6 交叉事件測試 96
4.3.7 兼容性測試 97
4.3.8 流量測試 98
4.3.9 耗電量測試 98
4.3.10 弱網(wǎng)絡(luò)測試 99
4.3.11 邊界測試 99
4.4 移動應(yīng)用測試工具:Appium使用入門 100
4.4.1 移動應(yīng)用的自動化測試需求 100
4.4.2 iOS開發(fā)環(huán)境的搭建 101
4.4.3 Android開發(fā)環(huán)境的搭建 102
4.4.4 Appium測試環(huán)境的搭建 103
4.4.5 Appium Inspector的使用 105
4.5 Appium實戰(zhàn)(iOS篇) 107
4.5.1 基于iOS開發(fā)第 一個原生應(yīng)用的測試用例 107
4.5.2 基于iOS開發(fā)第 一個Web應(yīng)用的測試用例 110
4.5.3 在iOS真機上執(zhí)行Web應(yīng)用測試 111
4.5.4 在iOS真機上執(zhí)行原生應(yīng)用測試 114
4.6 Appium實戰(zhàn)(Android平臺) 114
4.6.1 基于Android模擬器的Web應(yīng)用測試 114
4.6.2 基于Android真機的Web應(yīng)用測試 115
4.6.3 Web應(yīng)用的測試:溫故而知新 115
4.6.4 底層自動化驅(qū)動引擎 116
4.6.5 基于Android模擬器的原生應(yīng)用測試 116
4.6.6 基于Android真機的原生應(yīng)用測試 118
4.6.7 原生應(yīng)用的測試:溫故而知新 119
4.7 Appium的實現(xiàn)原理 120
4.7.1 Appium服務(wù)器 120
4.7.2 Appium客戶端 121
4.8 企業(yè)級移動應(yīng)用測試框架的設(shè)計思路與實踐 121
4.8.1 移動應(yīng)用測試框架的設(shè)計思路 121
4.8.2 移動應(yīng)用測試框架的實現(xiàn)與實踐 122
4.9 搭建企業(yè)級移動測試私有云的實踐 123
4.9.1 基于Selenium Grid的移動測試私有云 124
4.9.2 基于Open STF的移動測試私有云 126
4.10 移動應(yīng)用云測試服務(wù)簡介 128
4.10.1 Sauce Labs 128
4.10.2 Testin 129
4.10.3 MTC 131
第5章 API自動化測試技術(shù) 132
5.1 從0到1:API測試初探 133
5.1.1 API測試的基本步驟 133
5.1.2 基于Spring Boot構(gòu)建被測API 133
5.1.3 使用cURL 135
5.1.4 使用Postman 137
5.2 復(fù)雜場景的API測試 140
5.2.1 被測業(yè)務(wù)操作由多個API調(diào)用協(xié)作完成 141
5.2.2 API測試過程中的第三方依賴 141
5.2.3 異步API的測試 141
5.3 API自動化測試框架的技術(shù)演進與創(chuàng)新 142
5.3.1 早期基于Postman的API測試 142
5.3.2 基于Postman和Newman的API測試 142
5.3.3 基于代碼的API測試 142
5.3.4 自動生成API測試代碼 144
5.3.5 當響應(yīng)結(jié)果發(fā)生變化時的自動識別 145
5.4 微服務(wù)模式下的API測試 146
5.4.1 單體架構(gòu) 146
5.4.2 微服務(wù)架構(gòu) 147
5.4.3 微服務(wù)架構(gòu)下的測試挑戰(zhàn) 148
5.4.4 基于消費者契約的API測試 150
5.4.5 微服務(wù)測試的依賴解耦和模擬服務(wù) 151
5.4.6 代碼實例 152
第6章 代碼級軟件測試技術(shù)基礎(chǔ)與進階 153
6.1 代碼級測試的基本理念與方法 154
6.1.1 常見的代碼錯誤類型 154
6.1.2 代碼級測試常用方法 156
6.2 靜態(tài)測試方法 158
6.2.1 人工靜態(tài)方法 158
6.2.2 自動靜態(tài)方法 159
6.2.3 使用自動靜態(tài)方法的實例 160
6.3 動態(tài)測試方法 161
6.3.1 人工動態(tài)方法 161
6.3.2 自動動態(tài)方法 166
6.4 代碼靜態(tài)掃描工具Sonar的使用 167
6.4.1 基于Sonar的實例 167
6.4.2 SonarLint的使用 170
6.5 單元測試框架TestNG的使用 171
6.5.1 TestNG的基本用法 172
6.5.2 TestNG的高級用法 175
6.6 代碼覆蓋率工具JaCoCo的使用 177
6.6.1 JaCoCo簡介 177
6.6.2 JaCoCo的使用 178
第7章 性能測試基礎(chǔ) 180
7.1 不同視角下的軟件性能與性能指標 181
7.1.1 終端用戶眼中的軟件性能 181
7.1.2 系統(tǒng)運維人員眼中的軟件性能 182
7.1.3 軟件設(shè)計開發(fā)人員眼中的軟件性能 182
7.1.4 性能測試人員眼中的軟件性能 184
7.1.5 并發(fā)用戶數(shù) 184
7.1.6 響應(yīng)時間 185
7.1.7 系統(tǒng)吞吐量 186
7.1.8 并發(fā)用戶數(shù)、響應(yīng)時間、系統(tǒng)吞吐量之間的關(guān)系 187
7.2 常用的性能測試與應(yīng)用領(lǐng)域 188
7.2.1 常用的7種性能測試 189
7.2.2 性能測試的四大應(yīng)用領(lǐng)域 192
7.3 后端性能測試工具原理與行業(yè)常用工具簡介 193
7.3.1 后端性能測試和后端性能測試工具之間的關(guān)系 193
7.3.2 后端性能測試工具和GUI自動化測試工具的區(qū)別 194
7.3.3 后端性能測試工具的原理 194
7.3.4 后端性能測試場景設(shè)計和具體內(nèi)容 196
7.3.5 業(yè)內(nèi)主流的后端性能測試工具 197
7.4 前端性能測試工具原理 197
7.4.1 Performance TimingAPI 198
7.4.2 Profile工具 200
7.4.3 頁面埋點計時 200
7.4.4 資源加載時序圖 201
第8章 性能測試實戰(zhàn) 202
8.1 前端性能測試工具WebPagetest 203
8.1.1 WebPagetest功能簡介 203
8.1.2 使用WebPagetest測試某網(wǎng)站的首頁 203
8.1.3 前端性能評估結(jié)果評分分析 204
8.1.4 其他前端性能指標解讀 210
8.1.5 WebPagetest實際使用中需要解決的問題 212
8.2 后端性能測試主流商業(yè)工具LoadRunner 215
8.2.1 LoadRunner的基本原理 216
8.2.2 LoadRunner的主要模塊 217
8.2.3 基于LoadRunner的性能測試實戰(zhàn) 218
8.3 后端性能測試主流開源工具JMeter 226
8.3.1 JMeter簡介 227
8.3.2 JMeter的主要概念 228
8.3.3 JMeter的使用 228
8.4 企業(yè)級實際性能測試案例與經(jīng)驗 238
8.4.1 性能基準測試 238
8.4.2 穩(wěn)定性測試 239
8.4.3 并發(fā)測試 240
8.4.4 容量規(guī)劃測試 240
8.5 大型互聯(lián)網(wǎng)產(chǎn)品的全鏈路壓測 241
8.5.1 全鏈路壓測的定義 241
8.5.2 單系統(tǒng)的獨立壓測 242
8.5.3 海量并發(fā)請求的發(fā)起 242
8.5.4 全鏈路壓測流量和數(shù)據(jù)的隔離 243
8.5.5 實際業(yè)務(wù)負載的模擬 244
8.5.6 真實交易和支付的撤銷以及數(shù)據(jù)清理 244
第9章 準備測試數(shù)據(jù) 245
9.1 準備測試數(shù)據(jù)的基本方法 246
9.1.1 基于GUI操作生成測試數(shù)據(jù) 246
9.1.2 通過API調(diào)用生成測試數(shù)據(jù) 247
9.1.3 通過數(shù)據(jù)庫操作生成測試數(shù)據(jù) 248
9.1.4 綜合運用API和數(shù)據(jù)庫生成測試數(shù)據(jù) 248
9.2 創(chuàng)建測試數(shù)據(jù)的方法 249
9.2.1 實時創(chuàng)建方法 250
9.2.2 事先創(chuàng)建方法 251
9.2.3 綜合運用實時創(chuàng)建方法和事先創(chuàng)建方法 252
9.3 測試數(shù)據(jù)的銀彈統(tǒng)一測試數(shù)據(jù)平臺 252
9.3.1 測試數(shù)據(jù)準備的1.0時代 253
9.3.2 測試數(shù)據(jù)準備的2.0時代 256
9.3.3 測試數(shù)據(jù)準備的3.0時代 258
9.3.4 測試數(shù)據(jù)準備的4.0時代 260
9.3.5 大數(shù)據(jù)技術(shù)在測試數(shù)據(jù)準備中的應(yīng)用 261
第 10章 自動化測試基礎(chǔ)架構(gòu)的建設(shè)與實踐 262
10.1 從小作坊到工廠:Selenium Grid簡介 263
10.1.1 測試基礎(chǔ)架構(gòu)的基本概念 263
10.1.2 早期測試執(zhí)行環(huán)境的問題 263
10.1.3 Selenium Grid簡介 264
10.1.4 傳統(tǒng)Selenium Grid的搭建方法 265
10.1.5 基于Docker的SeleniumGrid的搭建方法 268
10.2 從小工到專家:測試執(zhí)行環(huán)境架構(gòu)設(shè)計基礎(chǔ) 268
10.2.1 測試執(zhí)行環(huán)境概述 269
10.2.2 測試基礎(chǔ)架構(gòu)的設(shè)計 270
10.2.3 早期的測試基礎(chǔ)架構(gòu) 270
10.2.4 經(jīng)典的測試基礎(chǔ)架構(gòu) 271
10.3 從小工到專家:測試執(zhí)行環(huán)境架構(gòu)設(shè)計進階 272
10.3.1 基于Docker實現(xiàn)的Selenium Grid測試基礎(chǔ)架構(gòu) 272
10.3.2 引入統(tǒng)一測試執(zhí)行平臺的測試基礎(chǔ)架構(gòu) 274
10.3.3 基于Jenkins集群的測試基礎(chǔ)架構(gòu) 275
10.3.4 測試負載自適應(yīng)的測試基礎(chǔ)架構(gòu) 276
10.3.5 測試基礎(chǔ)架構(gòu)的選擇 277
10.4 實戰(zhàn)案例:大型全球化電商網(wǎng)站的測試基礎(chǔ)架構(gòu)設(shè)計 277
10.4.1 統(tǒng)一測試執(zhí)行服務(wù) 278
10.4.2 統(tǒng)一測試數(shù)據(jù)服務(wù) 279
10.4.3 測試執(zhí)行環(huán)境準備服務(wù) 279
10.4.4 被測系統(tǒng)部署服務(wù) 279
10.4.5 測試報告服務(wù) 280
10.4.6 全局測試配置服務(wù) 280
10.4.7 大型全球化電商網(wǎng)站測試基礎(chǔ)架構(gòu)的使用示例 282
第 11章 軟件測試新技術(shù) 284
11.1 發(fā)揮人的潛能探索式測試 285
11.1.1 軟件測試與招聘面試的類比 285
11.1.2 探索式測試的定義 285
11.1.3 探索式測試與即興測試的區(qū)別和聯(lián)系 287
11.1.4 探索性測試的開展 287
11.2 測試先行TDD 288
11.2.1 TDD的核心理念 288
11.2.2 TDD的優(yōu)勢 289
11.2.3 TDD的實施過程 290
11.2.4 TDD進階 294
11.3 打蛇打七寸精準測試 294
11.3.1 傳統(tǒng)軟件測試的主要短板 295
11.3.2 精準測試的核心思想 296
11.3.3 精準測試的具體方法 297
11.4 安全第 一滲透測試 299
11.4.1 滲透測試的定義 299
11.4.2 滲透測試的常用方法 300
11.4.3 執(zhí)行滲透測試的步驟 301
11.4.4 滲透測試的常用工具 302
11.4.5 滲透測試的收益 303
11.5 用機器設(shè)計測試用例基于模型的測試 303
11.5.1 MBT的基本原理 304
11.5.2 常用模型簡介 305
11.5.3 常用MBT工具 305
11.5.4 MBT的優(yōu)勢 306
11.5.5 MBT的劣勢 307
11.6 人工智能在測試領(lǐng)域的應(yīng)用 308
11.6.1 人工智能概述 308
11.6.2 人工智能在軟件測試領(lǐng)域的應(yīng)用 309
11.6.3 基于人工智能的測試工具 310
第 12章 測試人員的互聯(lián)網(wǎng)架構(gòu)核心知識 312
12.1 測試工程師掌握大型網(wǎng)站架構(gòu)知識的必要性 313
12.1.1 基于消息隊列的分布式系統(tǒng)測試設(shè)計 313
12.1.2 緩存的示例 314
12.1.3 架構(gòu)知識的學(xué)習(xí)方法 314
12.2 大型網(wǎng)站架構(gòu)介紹 315
12.2.1 最簡單的網(wǎng)站架構(gòu) 315
12.2.2 應(yīng)用和數(shù)據(jù)分離的網(wǎng)站架構(gòu) 316
12.2.3 引入本地緩存和分布式緩存的網(wǎng)站架構(gòu) 316
12.2.4 引入應(yīng)用服務(wù)器集群的網(wǎng)站架構(gòu) 317
12.2.5 引入主從分離的數(shù)據(jù)庫 317
12.2.6 引入CDN服務(wù)器和反向代理服務(wù)器的網(wǎng)站架構(gòu) 318
12.2.7 引入分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)的網(wǎng)站架構(gòu) 319
12.2.8 基于業(yè)務(wù)拆分和消息隊列的網(wǎng)站架構(gòu) 319
12.2.9 基于分布式服務(wù)的網(wǎng)站架構(gòu) 321
12.2.10 微服務(wù)架構(gòu) 321
12.2.11 下一代微服務(wù)架構(gòu)服務(wù)網(wǎng)格 322
12.3 網(wǎng)站高性能架構(gòu)設(shè)計 322
12.3.1 前端的高性能架構(gòu) 323
12.3.2 后端服務(wù)器的高性能架構(gòu) 323
12.4 網(wǎng)站高可用架構(gòu)設(shè)計 325
12.4.1 造成網(wǎng)站不可用的主要原因 326
12.4.2 網(wǎng)站高可用架構(gòu)設(shè)計 327
12.5 網(wǎng)站可伸縮性架構(gòu)設(shè)計 328
12.5.1 可伸縮性和可擴展性的區(qū)別 329
12.5.2 分層的可伸縮性架構(gòu) 329
12.5.3 應(yīng)用服務(wù)器的可伸縮性設(shè)計 330
12.5.4 緩存集群的可伸縮性設(shè)計 331
12.5.5 數(shù)據(jù)庫的可伸縮性設(shè)計 332
12.6 網(wǎng)站可擴展性架構(gòu)設(shè)計 333
12.6.1 網(wǎng)站可擴展性架構(gòu)設(shè)計的案例 333
12.6.2 事件驅(qū)動架構(gòu)與消息隊列 334
12.6.3 引入消息隊列后的測試關(guān)注點 335