餓了麽質量體系搭建實戰
內容描述
本書是餓了麽企業訂餐團隊在軟件質量保障方面的經驗總結,通過講解該團隊如何從0到1構建軟件質量體系以及該體系如何逐步演進,分享了餓了麽在軟件質量保障方面的技術積累、實戰經驗、解決問題的思考過程以及質量保障團隊的建設與發展。
全書一共18章,分為六篇,具體內容如下。
第一篇 規劃(第1章)
介紹了餓了麽企業訂餐業務的背景、團隊背景、面臨的挑戰以及團隊在制定技術規劃時是如何考慮的。
第二篇 基礎(第2~5章)
總結了QA團隊在功能測試、安全測試、兼容性測試、線上問題治理等方面的技術見解和經驗積累。
第三篇 提效(第6~9章)
介紹在團隊人員與業務穩定之後,QA團隊應如何提高測試和研發的效率,包括API測試框架、自動生成框架代碼技術、框架代碼場景化改造、FSM場景化代碼動態組合技術等。
第四篇 賦能(第10~13章)
從持續集成、代碼質量、Story QA等技術角度介紹了企業訂餐QA團隊是如何賦能研發人員以提高軟件質量的。
第五篇 探索(第14~16章)
介紹了團隊在契約測試、探索性測試、流量測試等方面的經驗。
第六篇 管理(第17~18章)
分享瞭如何打造有實力、有格局和有凝聚力的團隊以及項目管理的關鍵問題和解決問題的思路。
餓了麽企業訂餐團隊
團隊願景:線上點餐,不用報銷,提高企業商業效率。
團隊目標:企業訂餐產品系統可以廣泛服務於不同行業、類型的企業,在企業服務市場具有品牌影響力。借助成熟可靠的技術手段,快速、高效地提供穩定可靠的產品系統,滿足客戶訴求,賦能企業數字化升級,成為行業領先者。
團隊文化:高效、專業、靠譜
目錄大綱
贊譽
序
前言
第一篇 規 劃
第1章 技術保障規劃2
1.1 業務特點2
1.2 面臨的挑戰3
1.3 測試進程的演進4
1.4 繪制戰略圖5
1.5 本章小結7
第二篇 基 礎
第2章 功能測試10
2.1 業務梳理10
2.1.1 接手新業務的痛點11
2.1.2 業務梳理的構想11
2.1.3 過程實戰13
2.2 用例設計16
2.2.1 用例設計面臨的問題17
2.2.2 解決思路17
2.2.3 用例設計原則確立18
2.2.4 用例設計模板化19
2.2.5 設計用例框架20
2.3 用例評審23
2.3.1 評審的意義23
2.3.2 評審的價值24
2.3.3 思考與破局24
2.3.4 合格用例的特點24
2.3.5 用例評審的準則25
2.4 本章小結26
第3章 安全測試27
3.1 全面清掃當前漏洞27
3.2 團隊安全知識賦能28
3.2.1 引入安全測試工具28
3.2.2 增強安全意識29
3.3 安全測試常態化29
3.3.1 下沉QA流程30
3.3.2 研發流程增設安全保障31
3.4 本章小結32
第4章 兼容性測試33
4.1 兼容性測試的挑戰33
4.2 兼容性測試的步驟34
4.3 案例分析:性能測試對比36
4.3.1 案例背景36
4.3.2 測試策略及過程36
4.3.3 測試結論39
4.4 關於測試機器資源40
4.5 本章小結41
第5章 線上問題治理42
5.1 線上問題的現狀42
5.2 工具的抉擇43
5.3 線下反饋線上化44
5.3.1 釘釘機器人接入44
5.3.2 簡化線上問題反饋45
5.4 線上問題數據沉澱及可視化46
5.5 FAQ 轉化47
5.6 線上問題規約49
5.7 本章小結49
第三篇 提 效
第6章 API測試框架52
6.1 API測試基礎知識52
6.1.1 RPC53
6.1.2 RESTful54
6.1.3 Thrift57
6.2 常見API測試手段58
6.2.1 cURL 59
6.2.2 常見工具分析61
6.3 測試框架的演進與分析62
6.3.1 什麽是框架62
6.3.2 測試框架思想的變遷63
6.3.3 測試框架的特點66
6.4 測試框架搭建67
6.4.1 常見的框架結構設計68
6.4.2 框架的升級改造方案69
6.4.3 框架的分層解耦70
6.4.4 數據分類處理72
6.4.5 多協議的封裝74
6.4.6 多環境的處理76
6.5 測試框架結果自動對比驗證80
6.5.1 驗收結果思路對比81
6.5.2 hook函數擴展82
6.5.3 數據庫設計83
6.5.4 對比引擎設計84
6.6 API覆蓋率統計86
6.6.1 覆蓋率介紹86
6.6.2 覆蓋統計的思考87
6.6.3 接口覆蓋率統計實戰87
6.7 本章小結91
第7章 自動生成框架代碼技術92
7.1 底層框架代碼自動生成92
7.1.1 傳統自動化框架的痛點93
7.1.2 代碼自動生成的解決方案94
7.1.3 代碼自動生成實戰95
7.2 手工用例自動轉化代碼97
7.2.1 接口用例撰寫現狀98
7.2.2 代碼自動轉化實戰98
7.3 冒煙測試代碼自動化生成101
7.3.1 冒煙測試的挑戰與方案102
7.3.2 拼裝請求102
7.3.3 構造參數數據103
7.4 本章小結105
第8章 框架代碼場景化改造106
8.1 Journey模式BDD106
8.1.1 Journey模式簡介106
8.1.2 Journey模式原理107
8.2 問題與解決方案108
8.2.1 自動化問題109
8.2.2 解決方案109
8.3 過程實戰110
8.3.1 梳理場景需求110
8.3.2 實例化用戶故事110
8.3.3 轉化為自動化驗收代碼110
8.4 框架與BDD的融合解析111
8.4.1 框架與BDD融合所面臨的問題111
8.4.2 框架的設計思路113
8.4.3 過程實戰113
第9章 FSM場景化代碼動態組合技術116
9.1 訂單代碼組合的常態116
9.2 FSM 賦能方案117
9.3 業務建模118
9.4 動態繪制流程圖119
9.4.1 Graphviz使用介紹119
9.4.2 使用簡化模式繪圖120
9.5 構建解析器122
9.5.1 解析器方案122
9.5.2 過程實戰122
9.6 本章小結124
第四篇 賦 能
第10章 數據工廠128
10.1 數據工廠迭代背景128
10.1.1 造數常見的場景128
10.1.2 數據工廠演變歷史129
10.2 數據工廠腳本化129
10.2.1 腳本化面臨的挑戰129
10.2.2 從RESTful API轉向SOA API130
10.3 數據工廠平臺化131
10.3.1 平臺化面臨的挑戰131
10.3.2 關於平臺化的思考132
10.3.3 如何新增一個造數工具133
10.4 數據工廠服務化的思考137
10.5 本章小結137
第11章 持續集成138
11.1 持續集成是什麽138
11.2 持續集成前後實踐的對比139
11.3 持續集成全景141
11.3.1 研發模式143
11.3.2 代碼準入144
11.3.3 自動化方案145
11.4 本章小結152
第12章 代碼質量153
12.1 代碼質量背景知識153
12.1.1 怎樣衡量代碼質量154
12.1.2 糟糕的代碼156
12.2 構建代碼質量體系158
12.2.1 為什麽選擇SonarQube159
12.2.2 小試牛刀165
12.2.3 規則的取捨166
12.2.4 落地節奏的敲定168
12.2.5 度量可視化169
第13章 Story QA 賦能172
13.1 Story項目經理介紹172
13.1.1 Story項目經理的意義173
13.1.2 Story項目經理的工作職責173
13.2 Story QA破局173
13.2.1 Story QA 介紹174
13.2.2 Story QA實施步驟175
13.2.3 Story QA體系構建方案175
13.3 構建度量體系176
13.3.1 度量維度初階176
13.3.2 度量維度進階178
13.3.3 打分規則179
13.4 工具化和制度化180
13.4.1 由文本到工具的演變180
13.4.2 建立獎懲制度182
13.5 本章小結184
第五篇 探 索
第14章 流量回放測試186
14.1 流量回放的意義186
14.2 流量回放的基本思想187
14.3 常見工具介紹187
14.4 聚焦jvm-sandbox-repeater188
14.4.1 錄制原理探究188
14.4.2 回放原理探究193
14.4.3 demo講解197
14.5 repeater 插件探究201
14.6 本章小結204
第15章 契約測試205
15.1 微服務介紹205
15.1.1 微服務架構對測試的影響207
15.1.2 微服務下的測試模式208
15.2 契約測試209
15.2.1 什麽是契約209
15.2.2 契約測試的價值210
15.2.3 契約測試的特性210
15.2.4 契約測試的實施210
15.2.5 契約測試與mock對比211
15.3 Pact框架213
15.3.1 Pact的工作原理213
15.3.2 Pact的使用214
15.4 本章小結217
第16章 探索性測試218
16.1 探索性測試初探218
16.1.1 探索性測試概念219
16.1.2 探索性測試與即興測試的區別219
16.2 全局探索性測試220
16.2.1 商業區測試類型221
16.2.2 娛樂區測試類型224
16.2.3 旅游區測試類型225
16.2.4 旅館區測試類型226
16.2.5 破舊區測試類型227
16.2.6 歷史區測試類型227
16.3 探索性測試周期228
16.4 探索性測試思維過程 230
16.4.1 啟發式測試策略模型231
16.4.2 基於測程的測試管理232
16.4.3 小試牛刀233
16.5 本章小結233
第六篇 管 理
第17章 團隊管理236
17.1 繪制團隊畫像236
17.1.1 定格局236
17.1.2 打造團隊文化237
17.1.3 認識自我237
17.1.4 向心力238
17.2 技術分享的改革238
17.2.1 無主題分享的窘境239
17.2.2 分享改革方案239
17.2.3 主題制定239
17.3 個人發展的梳理及工作習慣引導240
17.3.1 個人發展的方向及梳理240
17.3.2 技術體系的構建241
17.3.3 工作習慣的引導242
17.4 本章小結243
第18章 項目管理245
18.1 QA質量管理三問245
18.2 解決問題三部曲246
18.2.1 序幕246
18.2.2 高潮247
18.2.3 終章247
18.3 本章小結248
作者介紹
張丙振
高級測試專家、企業訂餐質量負責人,9年工作經驗。
擅長自動化測試、測試框架搭建、質量交付團隊管理等。
2017年入職餓了麼中後台研發部,負責商家開放平台,多次參與公司S級別跨團隊合作項目並擔任測試總owner,曾擔任上海站技術沙龍測試講師。
2019年轉入阿里巴巴本地生活企業訂餐團隊,目前專注於QA團隊建設、基礎設施建設及質量交付。
檀飛翔
測試專家,從事測試行業7年,擅長測試框架開發、CI集成、自動化測試、功能測試以及大型項目測試管理。
2016年加入餓了麼,主要負責餓了麼商家配送、商戶訂單、商家商品以及企業訂餐等業務領域的QA工作,多次參與和負責公司級別項目,目前負責阿里巴巴本地生活企業訂餐供給交易領域的QA工作,專注於測試提效和賦能工作。
侯佳剛
測試專家,一直積極探索正確的質量保障之道。
從事質量工作多年,擅長測試自動化及測試工具開發。
先後研發多個測試工具和質量平台,並將其應用在產品研發過程中。
目前主要負責企業訂餐質量平台研發及推廣工作。
伍菊紅
資深測試開發工程師,有較豐富的測試經驗。
曾參與多個公司級項目的業務測試,如企餐新零售入淘、覆蓋率工具開發等,擅長自動化測試、工具開發。目前專注於測試前沿知識探索,如精準測試、流量回放等。
李京蓉
資深測試工程師,從事軟件測試工作5年。
2018年入職餓了麼,負責餓了麼商戶端交易業務測試,轉入企業訂餐團隊後負責供給交易領域的業務測試以及整個事業部的安全測試。
張晏婷
資深測試工程師。先後從事訂單、財務等領域測試工作,功能測試、自動化測試經驗豐富,參與多個提效工具、測試平台開發工作。
蔡輝
5年從業經驗,資深測試工程師。
有證券、金融、企業餐飲服務相關工作經驗,擅長平台服務開發、質量交付。
入職企業訂餐後負責測試平台開發,自動化測試工具建設。
李南昊
高級測試工程師,主要負責企業訂餐的業務測試、自動化測試、壓測的工作。
參與企業訂餐三條業務線外賣、團餐、到店從0到1的搭建過程。
楊亮亮
資深測試工程師,負責企業訂餐基礎及到店相關領域QA工作。
從事測試工作9年,曾獨立負責多個大型項目(支付、基金、發票等)的測試工作。
擅長後端自動化及測試工具、平台的搭建,具有豐富的行業知識背景及測試經驗。
常娜
高級測試工程師。
先後在阿里、百度、餓了麼等企業工作,實戰經驗豐富。
參與多個公司/BU級項目(廣告、開放平台、訂單等多領域)的測試工作,並協助完成多個測試平台的開發工作。