本書旨在講述如何通過持續(xù)測試交付一個功能完善、質(zhì)量完美的系統(tǒng),滿足測試人員快速交付、快速迭代的需求。本書首先概述了什么是持續(xù)測試,以及持續(xù)測試和自動化測試的異同,介紹了如何提升持續(xù)測試的效率和效果,然后討論了如何通過持續(xù)測試中的非功能性測試保障軟件的可靠性、可用性、可移植性、性能效率等質(zhì)量特性,如何通過建立質(zhì)量門禁保障所交付系統(tǒng)的質(zhì)量,并通過自動化提升質(zhì)量效能,最后介紹了持續(xù)測試技術(shù)的發(fā)展,討論了如何通過有效的度量促進(jìn)質(zhì)量的成熟,以及持續(xù)測試下測試工程師的自我修養(yǎng)。
本書適合測試人員閱讀。
結(jié)合代碼和工具,系統(tǒng)講述如何通過持續(xù)測試交付可靠的系統(tǒng)
·匯聚測試架構(gòu)師10 年的一線測試心法;
·打造屬于自己的持續(xù)測試框架;
·涵蓋以戰(zhàn)代練的持續(xù)測試場景實戰(zhàn)。
本書主要內(nèi)容:
·持續(xù)測試的含義;
·持續(xù)測試和自動化測試的異同;
·如何提升持續(xù)測試的效率和效果;
·如何通過持續(xù)測試中的非功能性測試保障軟件的質(zhì)量特性;
·如何通過建立質(zhì)量門禁保障所交付系統(tǒng)的質(zhì)量,并通過自動化提升質(zhì)量效能;
·如何通過有效的度量促進(jìn)質(zhì)量的成熟。
陳磊,阿里云MVP(Most Valuable Professional,最有價值專家),華為云MVP(最有價值專家),中國商業(yè)聯(lián)合會互聯(lián)網(wǎng)應(yīng)用工作委員會智庫專家,中關(guān)村智聯(lián)軟件服務(wù)業(yè)質(zhì)量創(chuàng)新聯(lián)盟軟件測試標(biāo)準(zhǔn)化技術(shù)委員會委員,Asian Journal of Physical Education & Computer Science in Sports編委會委員。編寫過《接口測試方法論》,參與編寫過《京東質(zhì)量團(tuán)隊轉(zhuǎn)型實踐:從測試到測試開發(fā)的蛻變》《決戰(zhàn)618:探秘京東技術(shù)取勝之道》,在極客時間開設(shè)過“接口測試入門課”,在拉勾教育開設(shè)過“軟件測試第一課”,擔(dān)任過《測試敏捷化白皮書》和2021年的《研發(fā)效能實踐指南》副主編。具有多年質(zhì)量工程技術(shù)實踐經(jīng)驗,精通研發(fā)效能提升、手工測試團(tuán)隊自動化測試轉(zhuǎn)型實踐、智能化測試等,公開發(fā)表學(xué)術(shù)論文近30篇,擁有20余項專利,并且是國內(nèi)TiD質(zhì)量競爭力大會、NCTS、MAD、MPD、TICA、DevOpsDays等技術(shù)峰會的演講嘉賓或技術(shù)委員會成員。
目 錄
第 1章 持續(xù)測試概述 1
1.1 概述 1
1.2 測試的生命周期 3
1.3 測試用例也是工程實踐 4
1.3.1 黑盒測試用例設(shè)計方法 6
1.3.2 白盒測試用例設(shè)計方法 12
1.3.3 測試用例也要分級 13
1.3.4 測試用例的形式 15
1.4 測試細(xì)分 17
1.4.1 按照開發(fā)階段劃分 18
1.4.2 按照測試實施組織劃分 18
1.4.3 按照測試技術(shù)劃分 19
1.4.4 測試左移 19
1.4.5 測試右移 21
1.4.6 測試左移、測試、測試右移的關(guān)系 22
1.5 質(zhì)量模型和測試 24
1.6 小結(jié) 28
第 2章 自動化測試是持續(xù)測試的必要條件 29
2.1 分層自動化測試 29
2.2 靜態(tài)測試 31
2.3 單元測試 33
2.4 自動化測試的設(shè)計模式 35
2.4.1 自動化測試的PageObject設(shè)計模式 36
2.4.2 自動化測試的ScreenPlay設(shè)計模式 48
2.5 UI自動化新思路 49
2.6 接口測試和接口自動化測試 54
2.6.1 接口測試 54
2.6.2 接口自動化測試的價值 56
2.6.3 與接口自動化測試相關(guān)的實現(xiàn)技術(shù) 57
2.6.4 如何開始接口測試 59
2.7 測試驅(qū)動開發(fā) 60
2.8 小結(jié) 63
第3章 持續(xù)測試中的非功能測試 64
3.1 性能測試 64
3.1.1 性能測試工具概述 65
3.1.2 Locust和LoadRunner 68
3.1.3 使用Locust完成性能測試 72
3.1.4 監(jiān)控工具和結(jié)果分享分析 85
3.1.5 性能測試實踐方案 87
3.2 全鏈路壓測 90
3.2.1 全鏈路壓測的本質(zhì) 90
3.2.2 全鏈路壓測是技術(shù)驅(qū)動的測試 92
3.3 兼容性測試矩陣 95
3.3.1 獲取兼容性測試因素 95
3.3.2 兼容性矩陣設(shè)計 96
3.4 混沌工程和故障演練 97
3.4.1 從故障制造到混沌工程 97
3.4.2 故障演練的實施要點 99
3.5 小結(jié) 101
第4章 質(zhì)量門禁和流水線 102
4.1 質(zhì)量門禁 102
4.1.1 開發(fā)階段的質(zhì)量門禁 103
4.1.2 測試階段的質(zhì)量門禁 104
4.1.3 上線階段的質(zhì)量門禁 105
4.2 代碼審查門禁設(shè)置 105
4.2.1 代碼評審方法論 105
4.2.2 代碼評審的工具支持 108
4.3 SonarQube技術(shù)卡點 109
4.3.1 部署SonarQube 110
4.3.2 在本地開發(fā)環(huán)境中集成SonarQube掃描服務(wù) 111
4.3.3 在Maven項目中集成SonarQube掃描服務(wù) 114
4.3.4 在Jenkins中集成SonarQube 115
4.4 小結(jié) 118
第5章 測試技術(shù)和持續(xù)測試 119
5.1 契約測試 119
5.2 流量錄制技術(shù) 121
5.2.1 Nginx的插件 123
5.2.2 Sandbox 123
5.2.3 TcpCopy 124
5.2.4 GoReplay 125
5.2.5 技術(shù)本質(zhì) 125
5.3 測試代碼生成 126
5.3.1 基于二進(jìn)制文件的測試代碼生成 126
5.3.2 基于通用文件的測試代碼生成 133
5.4 精準(zhǔn)測試 136
5.5 測試平臺化 138
5.6 智能化測試 140
5.6.1 開源的智能化單元測試框架 145
5.6.2 開源的智能化UI測試框架 150
第6章 有效的度量促進(jìn)質(zhì)量的成熟 153
6.1 正確的質(zhì)量度量 153
6.2 有效的質(zhì)量運營 160
6.3 小結(jié) 163
第7章 持續(xù)測試下測試工程師的自我修養(yǎng) 164
7.1 測試?yán)碚摶A(chǔ)的必要性 164
7.2 接納并嘗試新技術(shù) 167
附錄A 性能測試并發(fā)用戶數(shù)估算方法 170
附錄B HTTP代理工具 173
附錄C 關(guān)于HTTP應(yīng)知應(yīng)會的知識 178
附錄D EvoSuite的配置和使用 185
附錄E nmon 194
附錄F Postman 200