現代軟件測試技術之美
茹炳晟 吳駿龍 劉冉
買這商品的人也買了...
-
$454超大流量分佈式系統架構解決方案:人人都是架構師2.0
-
$580$435 -
$806模型檢驗原理
-
$654$621 -
$499$424 -
$536架構設計 2.0:大型分佈式系統架構方法論與實踐
-
$654$621 -
$534$507 -
$556高效能並行運行時系統:設計與實現
-
$414$393 -
$539$512 -
$474$450 -
$390$371 -
$1,188$1,129 -
$580$458 -
$768$730 -
$888$844 -
$650$507 -
$250軟件開發的藝術
-
$301最優化理論與智能算法
-
$606“基礎設施即代碼”模式與實踐
-
$768$730 -
$1,374$1,305 -
$1,000$790 -
$630$498
相關主題
商品描述
本書內容聚焦於“現代”軟件測試技術,既包括近幾年頗受關註的前沿軟件測試技術,也包括一些“老技術”在新場景下的應用。作者希望將這些技術剖析清楚,在此基礎上給出一些常見的實踐案例或應用場景,讓讀者深入理解這些軟件測試技術的來龍去脈,並能夠將其快速應用到實踐中。本書分為7章,主要內容包括軟件測試新理念、軟件測試新方法、軟件測試新技術、軟件測試基礎設施、軟件測試常見困惑、軟件測試行業案例等。
本書內容通俗易懂,案例豐富,既適合軟件測試從業人員(測試工程師、測試開發工程師、測試架構師、測試經理、測試總監等)閱讀,也適合軟件開發人員、架構師和企業管理人員閱讀,還適合作為高等院校相關專業的教學用書。
作者簡介
茹炳晟,腾讯 Tech Lead,腾讯研究院特约研究员,中国计算机学会技术前线委员会研发效能SIG 主席,《软件研发效能度量规范》标准核心编写专家,中国商业联合会互联网应用工作委员会智库专家,腾讯云、阿里云、华为云“具价值专家”,《测试工程师全栈技术进阶与实践》的作者。自媒体号“茹炳晟聊软件研发”的主理人。
吴骏龙,某大型互联网公司质量与效能团队技术总监,腾讯云“具价值专家”,曾任 Wish中国测试总监、阿里巴巴本地生活高级测试经理。在软件质量体系、服务容量保障、服务稳定性建设、软件研发效能等领域深耕多年,善于通过创新手段解决工程难题。他是测试行业优秀的实践者和前沿技术的传播者,多次受邀参加 QCon、QECon、CCF 等行业峰会并进行演讲。
刘冉,现任Thoughtworks软件测试和质量专家,具有 20 年软件开发和测试工作经验;对Web 应用测试、服务器性能测试、移动测试、安全测试、敏捷测试、测试驱动开发、测试分层一体化解决方案,以及代码管理、持续集成、持续交付和 DevOps 等有深入研究,曾是多个行业峰会的演讲嘉宾。
目錄大綱
第 1章 軟件測試新理念 1
1.1 測試左移 2
1.1.1 傳統瀑布模型下軟件測試的挑戰 2
1.1.2 測試左移的早期實踐 3
1.1.3 當前軟件測試工程化的困局與解法 4
1.1.4 測試左移的進階實踐 7
1.1.5 測試左移的深度思考 9
1.1.6 總結 9
1.2 測試右移 9
1.2.1 A/B測試 9
1.2.2 灰度發布 10
1.2.3 線上監控 12
1.2.4 用戶體驗分析 12
1.2.5 總結 14
1.3 可測試性設計 14
1.3.1 可測試性的定義 15
1.3.2 可測試性差引發的問題 15
1.3.3 可測試性的3個核心觀點 17
1.3.4 可測試性的4個維度 18
1.3.5 不同級別的可測試性與工程實踐 21
1.3.6 總結 25
1.4 測試分析與測試設計 25
1.4.1 什麽是測試分析與測試設計 25
1.4.2 測試分析與測試設計的分類 26
1.4.3 基於用戶行為和業務場景的測試分析與測試設計 28
1.4.4 測試分析與測試設計的未來 28
第 2章 軟件測試新方法 30
2.1 契約測試 31
2.1.1 什麽是契約測試 31
2.1.2 契約測試存在的問題 32
2.1.3 契約測試的主要實踐 32
2.1.4 總結 37
2.2 測試驅動開發 38
2.2.1 TDD是什麽 38
2.2.2 TDD怎麽做 40
2.2.3 “TDD已死”? 44
2.2.4 總結 46
2.3 探索式測試 46
2.3.1 探索式測試的歷史與簡介 46
2.3.2 探索式測試的現狀 47
2.3.3 探索式測試在敏捷開發中的實踐 48
2.3.4 探索式測試的產出度量 50
2.3.5 總結 50
2.4 低代碼測試 50
2.4.1 低代碼測試的切入點 51
2.4.2 低代碼GUI測試 51
2.4.3 低代碼API測試 55
2.4.4 總結 56
2.5 混沌工程 57
2.5.1 混沌工程的理念 57
2.5.2 混沌工程的發展歷程 57
2.5.3 混沌工程的價值 58
2.5.4 核心觀點和常見誤區 59
2.5.5 實施混沌工程的原則 61
2.5.6 實施混沌實驗的步驟 62
2.5.7 混沌工程常用工具和使用演示 63
第3章 軟件測試新技術(上) 71
3.1 流量回放 72
3.1.1 使用GoReplay和Diffy進行流量回放 73
3.1.2 使用jvm-sandbox-repeater進行流量回放 75
3.1.3 基於Service Mesh進行流量回放 76
3.1.4 總結 78
3.2 精準測試 78
3.2.1 精準測試的技術實現 79
3.2.2 精準測試的前沿探索 81
3.2.3 總結 82
3.3 模糊測試 82
3.3.1 模糊測試介紹 82
3.3.2 模糊測試實施步驟 83
3.3.3 模糊測試實例 84
3.3.4 展望 85
3.4 變異測試 86
3.4.1 單元測試代碼覆蓋率的局限性 86
3.4.2 變異測試的基本概念 86
3.4.3 變異測試是新技術嗎 86
3.4.4 實施變異測試的步驟 87
3.4.5 主流變異測試工具用法簡介 88
3.4.6 變異測試的工程化實踐 94
3.4.7 變異測試在接口測試中的應用與探索 95
3.5 服務虛擬化 96
3.5.1 服務虛擬化介紹及面對的問題 96
3.5.2 解決方案 97
3.5.3 服務虛擬化實例 —— Hoverfly 100
3.5.4 總結 102
第4章 軟件測試新技術(下) 103
4.1 全鏈路壓測 104
4.1.1 壓測數據隔離 104
4.1.2 壓測模型構建 106
4.1.3 應用服務改造 108
4.1.4 壓測流量製造 108
4.1.5 風險控制 109
4.1.6 組織協作 110
4.1.7 總結 110
4.2 安全測試新技術 110
4.2.1 安全測試的基本方法 111
4.2.2 安全測試的效果度量 111
4.2.3 軟件安全漏洞的分類 113
4.2.4 安全測試的分類 114
4.2.5 不同類型項目的安全測試 116
4.2.6 DevSecOps:從安全測試到安全工程 117
4.3 移動測試新技術 123
4.3.1 移動測試現狀 123
4.3.2 移動應用的測試策略與測試架構 123
4.3.3 移動測試的分類與框架 126
4.3.4 移動測試的未來 128
4.4 大數據測試 128
4.4.1 大數據的特徵 129
4.4.2 大數據測試的策略 130
4.4.3 大數據測試的步驟 131
4.4.4 大數據測試的挑戰 132
4.4.5 總結 132
4.5 人工智能測試 132
4.5.1 人工智能應用概述 133
4.5.2 傳統軟件測試技術的局限性 133
4.5.3 機器學習在 GUI 自動化測試執行領域的應用與創新 134
4.5.4 機器學習在測試設計領域的應用與創新 135
4.5.5 機器學習在測試結果分析領域的應用與創新 138
4.5.6 總結 139
4.6 ChatGPT在自動化測試領域的應用 139
4.6.1 ChatGPT簡介 139
4.6.2 ChatGPT和自動化測試 140
4.6.3 使用ChatGPT生成基於Cucumber的GUI自動化測試用例 140
4.6.4 ChatGPT在自動化測試應用中的一些問題 143
4.6.5 總結 143
第5章 軟件測試基礎設施 144
5.1 測試環境 145
5.1.1 容器化的“One-Box”方案 145
5.1.2 容器化的“軟隔離”方案 146
5.1.3 測試環境的穩定性巡檢 148
5.1.4 總結 148
5.2 測試執行環境 149
5.2.1 測試執行環境的痛點 149
5.2.2 基於Selenium Grid的解決方案 149
5.2.3 測試基礎架構的基本概念 154
5.2.4 測試基礎架構的設計 155
5.2.5 測試基礎架構的選型原則 161
5.3 測試數據新知 162
5.3.1 測試數據的現狀 162
5.3.2 測試數據的分類 162
5.3.3 測試數據的未來 164
5.4 測試中台 164
5.4.1 統一測試執行服務 165
5.4.2 統一測試數據服務 165
5.4.3 測試執行環境準備服務 166
5.4.4 被測系統部署服務 166
5.4.5 測試報告服務 166
5.4.6 全局測試配置服務 167
5.4.7 大型全球化電商網站測試中台的使用示例 168
第6章 軟件測試常見困惑 170
6.1 測試人員和開發人員的理想比例是多少? 171
6.2 系統出現漏測,這個“鍋”應該誰來背? 172
6.3 測試工程師如何應對“一句話需求”? 173
6.4 測試工程師必須要有開發能力嗎? 174
6.5 編寫測試用例文檔花費了大量的時間和精力,是否真的值得? 174
6.6 現在很多公司都在去測試化,我們究竟還要不要專職的測試人員? 175
6.7 質量與效能,魚和熊掌真的不能兼得嗎? 176
6.8 大規模敏捷團隊中有哪些測試問題和痛點? 177
6.8.1 背景介紹 177
6.8.2 問題和痛點 177
6.8.3 總結 181
第7章 軟件測試行業案例 183
7.1 某大型電商公司推動質量中台建設的成功經驗與失敗教訓 184
7.1.1 背景 184
7.1.2 推動質量基礎設施建設所走過的彎路 185
7.1.3 質量中台建設 186
7.1.4 總結 186
7.2 某“頭部”券商數字化轉型中的軟件測試實踐探索 186
7.2.1 背景 186
7.2.2 數字化轉型中的測試技術應用 187
7.2.3 總結 191
7.3 AI技術在質量領域的實踐 191
7.3.1 背景 192
7.3.2 AI應用場景 192
7.3.3 落地效果 198
7.3.4 未來方向與展望 201