《京東系統質量保障技術實戰》是2017年電子工業出版社出版的書籍,作者是商城研發POP平台。
基本介紹
- 書名:京東系統質量保障技術實戰
- 作者:商城研發POP平台
- ISBN:978-7-121-31408-7
- 類別:技術類
- 頁數:208
- 定價:69
- 出版社:電子工業出版社
- 出版時間:2017年10月
- 裝幀:平裝
- 開本:16開
- 眾書名:“贏在京東”系列技術教程
內容簡介,作者簡介,精彩書評,出版背景,目錄,
內容簡介
“質量保障”貫穿本書始終,也是本書的靈魂之所在。本書從完善的業務質量保障流程制定,到前後端自動化測試框架的搭建,從代碼掃描使質量保障前置,到持續集成的逐步落地,從測試環境的集中化管理,到安全測試理論及安全工具的使用,從數據化的精細團隊管理到以人為本的團隊提升策略套用,都是本書所關注的內容。 在網際網路飛速發展的今天,系統的複雜度及疊代速度都在不斷提升,這對質量保障工作提出巨大挑戰。那么如何在快速疊代發布下保障系統質量呢?閱讀本書或許會找到一些答案。本書由京東商城研發 POP 平台—測試與質量管理團隊傾力打造,開篇從基礎業務測試、測試過程管理及 SOA 架構下的軟體測試等基本質量保障內容入手,逐步展開討論了自動化測試、測試環境管理等提升質量保障效能的實踐內容,實現將質量保障從手工測試推向自動化的進階。 本書中間篇章聚焦於持續集成及靜態代碼掃描實戰經驗的總結和質量保障提效工具的開發實踐。此外, 本書還介紹了大量安全測試的實戰經驗。本書內容的最後部分深入描述了如何有效管理質量團隊,從質量保障流程的制定到推行再到最佳化,從打造靠譜團隊到團隊成長等方面來向讀者分享管理團隊過程中這些必須面對的問題。本書內容涉獵廣泛以實戰為主線, 是近年來質量保障領域不可多得的圖書, 適合關心網際網路質量保障領域技術及發展的各類讀者。內容簡介
作者簡介
商城研發POP平台部專注於POP開放平台的系統建設,致力於為京東第三方商家提供豐富的合作模式、優秀的電商系統和工具,打造健康開放的智慧生態。團隊有店鋪運營、市場行銷、數據產品經理等方面的資深專家。他們熟悉京東開放平台行銷工具,有豐富的電商運營經驗,致力於運用全平台行銷的方法和理念指導店鋪運營,提高運營效率,提升店鋪業績和服務水平。
精彩書評
當軟體研發處在快速疊代、持續交付的時代,只有質量保障體系成為堅強後盾,才能助研發一臂之力,而不是讓質量成為瓶頸。京東POP 平台質量團隊給我們呈現的《京東系統質量保障技術實戰》一書乃雪中送炭。本書不僅在自動化測試、CI、持續靜態分析、安全性測試等各個方面分享團隊的實戰經驗和優秀實踐,而且強調全過程的質量保障和團隊協作,理順測試流程,突出基於接口的測試和分層測試,將需求管理、開發、測試、環境維護等融為一體,相信這是一本難得的好書。
——同濟大學軟體學院教授 知名軟體質量專家 朱少民
這本書來自京東測試人的實踐、思考與創新。我在閱讀此書時,感覺像是有多位資深“老司機”帶路,他們帶我領略電商測試之博大精深。在電商測試領域中,他們不斷摸索、沉澱、反思,並把精華集結成書。這本書能夠幫助工程師提升Devops 意識,幫助公司建立質量文化,是近年來測試領域難得的實踐派之佳作。
——品友互動CTO 歐陽辰
本書作者以親身經歷的電商行業項目為例,介紹了項目各個階段質量保障的實戰經驗,不僅有詳盡的軟體測試和持續交付相關技術,還有團隊管理方面的內容,是一套非常全面的項目質量保障方案,值得軟體質量保障人員借鑑和學習。
——ThoughtWorks 中國QA Lead BQConf 負責人 林冰玉
——同濟大學軟體學院教授 知名軟體質量專家 朱少民
這本書來自京東測試人的實踐、思考與創新。我在閱讀此書時,感覺像是有多位資深“老司機”帶路,他們帶我領略電商測試之博大精深。在電商測試領域中,他們不斷摸索、沉澱、反思,並把精華集結成書。這本書能夠幫助工程師提升Devops 意識,幫助公司建立質量文化,是近年來測試領域難得的實踐派之佳作。
——品友互動CTO 歐陽辰
本書作者以親身經歷的電商行業項目為例,介紹了項目各個階段質量保障的實戰經驗,不僅有詳盡的軟體測試和持續交付相關技術,還有團隊管理方面的內容,是一套非常全面的項目質量保障方案,值得軟體質量保障人員借鑑和學習。
——ThoughtWorks 中國QA Lead BQConf 負責人 林冰玉
出版背景
本書成書之時,正值京東618年中大促之際,一場紅色的備戰浪潮牽動著線上線下的每一個京東人。六月的經海路(京東集團總部所在地),即使在凌晨依舊車水馬龍,熱鬧非凡,每一盞亮起的明燈都在述說著京東人奮鬥的故事,每一個在此奮鬥的兄弟姐妹都承載著為大促保障的榮耀使命。筆者所在質量保障團隊已經不知經歷了多少次這樣緊張刺激的奮戰,此時用戶的每一次點擊都牽動著質量保障人員的心,保障系統穩定地為客戶提供服務是我們始終不移的追求。
目錄
第1章業務質量保障介紹 1
1.1 電商行業項目的特點 2
1.2 測試流程中的重點工作 3
1.2.1 測試前的工作 3
1.2.2 測試中的工作 6
1.2.3 上線後的工作 10
1.3 小結 10
第 2 章 SOA 架構下的軟體質量保障 11
2.1 功能模組測試 12
2.1.1 接口測試 12
2.1.2 接口自動化測試 14
2.1.3 UI 測試 15
2.1.4 UI 自動化測試 16
2.2 聯調測試 17
2.2.1 聯調測試的意義 17
2.2.2 如何開展聯調測試 17
2.3 小結 19
第 3 章 自動化測試實戰 20
3.1 WebUI 實戰 21
3.1.1 Selenium 21
3.1.2 PageFactory 26
3.1.3 構建一款基於 Selenium 的易用 WebUI 框架 30
3.2 接口測試實戰 32
3.2.1 HTTP 接口實戰 32
3.2.2 自研 RPC 接口實戰 34
3.2.3 一款簡單易用的接口測試框架 35
3.3 Mock 實戰 39
3.3.1 對象 Mock 實戰 39
3.3.2 接口 Mock 實戰 40
3.4 分層測試的思考 42
3.4.1 分層測試的理解 42
3.4.2 京東怎么做分層測試 43
3.4.3 收益可視化 44
3.5 小結 45
第 4 章 測試環境管理 46
4.1 軟體構建工具介紹及使用 47
4.1.1 Ant 47
4.1.2 Maven 49
4.1.3 Gradle 52
4.1.4 Jenkins 54
4.2 網際網路系統運行環境及軟體介紹 55
4.2.1 Nginx 55
4.2.2 Docker 56
4.3 測試環境分層 57
4.4 測試環境搭建 59
4.5 測試環境自動化運維 62
4.5.1 測試環境管理平台 62
4.5.2 測試伺服器管理 65
4.5.3 穩定環境每日自動部署 65
4.5.4 日常測試自動部署 67
4.6 小結 69
第 5 章 持續集成實踐 70
5.1 持續集成介紹 71
5.1.1 持續集成的起源與發展 71
5.1.2 持續集成常用工具 73
5.2 為什麼要做持續集成 73
5.2.1 避免集成地獄 74
5.2.2 如何做到快速交付 74
5.3 如何實施持續集成 75
5.3.1 從零開始構建持續集成 76
5.3.2 持續集成演進 77
5.3.3 工程師文化的重要性 80
5.3.4 持續集成流程最佳化 80
5.3.5 小團隊的成功因素 81
5.3.6 規模化實施持續集成的一些困境 81
5.3.7 分步驟實現持續集成 82
5.4 小結 82
第 6 章 持續代碼掃描實踐 83
6.1 如何構建高質量的軟體系統 84
6.1.1 質量是測試出來的嗎 84
6.1.2 關注開發質量 85
6.1.3 測試人員如何參與代碼評審 86
6.1.4 常見代碼掃描工具介紹 87
6.2 從 0 到 1 實現持續代碼掃描 89
6.2.1 SonarQube 的套用 89
6.2.2 從最簡單的維度開始關注代碼質量 92
6.2.3 測試人員的職責擴展 94
6.2.4 小團隊的優秀案例 94
6.3 基於 SonarQube 的持續代碼掃描方案演進 95
6.3.1 大規模套用代碼掃描遇到的一些瓶頸 95
6.3.2 由人工驅動向技術驅動的轉變 96
6.3.3 由目標驅動向以服務研發為主的轉變 97
6.3.4 由統一化向多樣化的轉變 97
6.3.5 規模化持續代碼掃描的成功案例 98
6.4 小結 98
第 7 章 質量保障工具開發實戰 99
7.1 質量保障工具開發技術棧 100
7.1.1 建站(Spring+SpringMVC+MyBatis+Velocity+JQuery+
Bootstrap) 100
7.1.2 Spring 100
7.1.3 Spring MVC 103
7.1.4 MyBatis 107
7.1.5 前端技術 112
7.1.6 框架搭建 119
7.2 如何快速構建一個質量保障工具 124
7.2.1 需求調研 124
7.2.2 設計 127
7.2.3 任務管理 131
7.2.4 效果度量 135
7.3 小結 136
第 8 章 Web 安全測試技術實戰 138
8.1 Web 安全概述 139
8.2 客戶端繞過實戰 139
8.2.1 HTML 繞過 139
8.2.2 URL 參數繞過 141
8.2.3 Http-Cookie 繞過 142
8.2.4 隱藏表單繞過 143
8.3 SQL 注入(SQL Injection)實戰 144
8.3.1 注入原理剖析 144
8.3.2 注入產生條件 147
8.3.3 注入方法實戰 148
8.3.4 Java+JDBC 代碼注入檢測 149
8.3.5 MyBatis 框架代碼注入檢測 151
8.3.6 手工注入實戰滲透 151
8.3.7 工具注入實戰滲透 159
8.3.8 注入預防措施 163
8.4 檔案上傳實戰 165
8.4.1 解析漏洞 165
8.4.2 上傳滲透實戰 167
8.5 跨站腳本攻擊(XSS) 170
8.5.1 XSS 概述 170
8.5.2 XSS 原理分析 170
8.5.3 XSS 類型分類 172
8.5.4 探測方法實戰 172
8.5.5 工具實戰演練 176
8.5.6 BEEF 平台實戰攻擊利用 177
8.5.7 XSS 防禦措施 180
8.6 跨站請求偽造(CSRF) 183
8.6.1 CSRF 原理分析 183
8.6.2 CSRF 預防 183
8.7 小結 184
第 9 章 測試團隊管理實戰 185
9.1 測試流程制定與效率提升 186
9.1.1 測試流程的制定 186
9.1.2 工作流程的推行 187
9.1.3 流程最佳化與提效 188
9.2 打造一支靠譜的團隊 188
9.2.1 時刻讓團隊清楚目標 189
9.2.2 目標的衡量 190
9.2.3 目標達成的核心所在 191
9.2.4 言行合一,數據說話 192
9.2.5 互信合作,分享共贏 193
9.2.6 團隊文化與正能量打造 194
9.3 團隊成長 195
9.3.1 改變團隊的行為習慣 195
9.3.2 建立團隊技能模型 197
9.3.3 建立團隊分享機制 200
9.3.4 業務能力提升 201
9.3.5 技術能力提升 202
9.3.6 有效利用績效這把利劍 202
9.4 團隊管理漫談 203
9.4.1 團隊管理要“千人千法” 204
9.4.2 承認不足,方能更近一步 205
9.4.3 關於問責 206
9.5 小結 208
1.1 電商行業項目的特點 2
1.2 測試流程中的重點工作 3
1.2.1 測試前的工作 3
1.2.2 測試中的工作 6
1.2.3 上線後的工作 10
1.3 小結 10
第 2 章 SOA 架構下的軟體質量保障 11
2.1 功能模組測試 12
2.1.1 接口測試 12
2.1.2 接口自動化測試 14
2.1.3 UI 測試 15
2.1.4 UI 自動化測試 16
2.2 聯調測試 17
2.2.1 聯調測試的意義 17
2.2.2 如何開展聯調測試 17
2.3 小結 19
第 3 章 自動化測試實戰 20
3.1 WebUI 實戰 21
3.1.1 Selenium 21
3.1.2 PageFactory 26
3.1.3 構建一款基於 Selenium 的易用 WebUI 框架 30
3.2 接口測試實戰 32
3.2.1 HTTP 接口實戰 32
3.2.2 自研 RPC 接口實戰 34
3.2.3 一款簡單易用的接口測試框架 35
3.3 Mock 實戰 39
3.3.1 對象 Mock 實戰 39
3.3.2 接口 Mock 實戰 40
3.4 分層測試的思考 42
3.4.1 分層測試的理解 42
3.4.2 京東怎么做分層測試 43
3.4.3 收益可視化 44
3.5 小結 45
第 4 章 測試環境管理 46
4.1 軟體構建工具介紹及使用 47
4.1.1 Ant 47
4.1.2 Maven 49
4.1.3 Gradle 52
4.1.4 Jenkins 54
4.2 網際網路系統運行環境及軟體介紹 55
4.2.1 Nginx 55
4.2.2 Docker 56
4.3 測試環境分層 57
4.4 測試環境搭建 59
4.5 測試環境自動化運維 62
4.5.1 測試環境管理平台 62
4.5.2 測試伺服器管理 65
4.5.3 穩定環境每日自動部署 65
4.5.4 日常測試自動部署 67
4.6 小結 69
第 5 章 持續集成實踐 70
5.1 持續集成介紹 71
5.1.1 持續集成的起源與發展 71
5.1.2 持續集成常用工具 73
5.2 為什麼要做持續集成 73
5.2.1 避免集成地獄 74
5.2.2 如何做到快速交付 74
5.3 如何實施持續集成 75
5.3.1 從零開始構建持續集成 76
5.3.2 持續集成演進 77
5.3.3 工程師文化的重要性 80
5.3.4 持續集成流程最佳化 80
5.3.5 小團隊的成功因素 81
5.3.6 規模化實施持續集成的一些困境 81
5.3.7 分步驟實現持續集成 82
5.4 小結 82
第 6 章 持續代碼掃描實踐 83
6.1 如何構建高質量的軟體系統 84
6.1.1 質量是測試出來的嗎 84
6.1.2 關注開發質量 85
6.1.3 測試人員如何參與代碼評審 86
6.1.4 常見代碼掃描工具介紹 87
6.2 從 0 到 1 實現持續代碼掃描 89
6.2.1 SonarQube 的套用 89
6.2.2 從最簡單的維度開始關注代碼質量 92
6.2.3 測試人員的職責擴展 94
6.2.4 小團隊的優秀案例 94
6.3 基於 SonarQube 的持續代碼掃描方案演進 95
6.3.1 大規模套用代碼掃描遇到的一些瓶頸 95
6.3.2 由人工驅動向技術驅動的轉變 96
6.3.3 由目標驅動向以服務研發為主的轉變 97
6.3.4 由統一化向多樣化的轉變 97
6.3.5 規模化持續代碼掃描的成功案例 98
6.4 小結 98
第 7 章 質量保障工具開發實戰 99
7.1 質量保障工具開發技術棧 100
7.1.1 建站(Spring+SpringMVC+MyBatis+Velocity+JQuery+
Bootstrap) 100
7.1.2 Spring 100
7.1.3 Spring MVC 103
7.1.4 MyBatis 107
7.1.5 前端技術 112
7.1.6 框架搭建 119
7.2 如何快速構建一個質量保障工具 124
7.2.1 需求調研 124
7.2.2 設計 127
7.2.3 任務管理 131
7.2.4 效果度量 135
7.3 小結 136
第 8 章 Web 安全測試技術實戰 138
8.1 Web 安全概述 139
8.2 客戶端繞過實戰 139
8.2.1 HTML 繞過 139
8.2.2 URL 參數繞過 141
8.2.3 Http-Cookie 繞過 142
8.2.4 隱藏表單繞過 143
8.3 SQL 注入(SQL Injection)實戰 144
8.3.1 注入原理剖析 144
8.3.2 注入產生條件 147
8.3.3 注入方法實戰 148
8.3.4 Java+JDBC 代碼注入檢測 149
8.3.5 MyBatis 框架代碼注入檢測 151
8.3.6 手工注入實戰滲透 151
8.3.7 工具注入實戰滲透 159
8.3.8 注入預防措施 163
8.4 檔案上傳實戰 165
8.4.1 解析漏洞 165
8.4.2 上傳滲透實戰 167
8.5 跨站腳本攻擊(XSS) 170
8.5.1 XSS 概述 170
8.5.2 XSS 原理分析 170
8.5.3 XSS 類型分類 172
8.5.4 探測方法實戰 172
8.5.5 工具實戰演練 176
8.5.6 BEEF 平台實戰攻擊利用 177
8.5.7 XSS 防禦措施 180
8.6 跨站請求偽造(CSRF) 183
8.6.1 CSRF 原理分析 183
8.6.2 CSRF 預防 183
8.7 小結 184
第 9 章 測試團隊管理實戰 185
9.1 測試流程制定與效率提升 186
9.1.1 測試流程的制定 186
9.1.2 工作流程的推行 187
9.1.3 流程最佳化與提效 188
9.2 打造一支靠譜的團隊 188
9.2.1 時刻讓團隊清楚目標 189
9.2.2 目標的衡量 190
9.2.3 目標達成的核心所在 191
9.2.4 言行合一,數據說話 192
9.2.5 互信合作,分享共贏 193
9.2.6 團隊文化與正能量打造 194
9.3 團隊成長 195
9.3.1 改變團隊的行為習慣 195
9.3.2 建立團隊技能模型 197
9.3.3 建立團隊分享機制 200
9.3.4 業務能力提升 201
9.3.5 技術能力提升 202
9.3.6 有效利用績效這把利劍 202
9.4 團隊管理漫談 203
9.4.1 團隊管理要“千人千法” 204
9.4.2 承認不足,方能更近一步 205
9.4.3 關於問責 206
9.5 小結 208