本書主要介紹敏捷測試的流程方法及技術實踐過程。本書以當下主流的敏捷體系實踐為藍本,從用戶故事地圖開始逐步梳理迭代過程、構建迭代交付計劃,為研發(fā)域構建持續(xù)集成和持續(xù)發(fā)布流水線,從而進行特性分支開發(fā),進一步完成主流微服務架構代碼編寫及分層自動化體系構建,配套基于容器化的管理維護體系,最終完成整個交付生存周期的知識體系梳理。本書可讓讀者清晰、完整地了解整個敏捷測試流程下的端到端過程,從而拓展眼界,逐步提升測試意識及能力,達到敏捷測試所需要的技術全棧要求。
本書適合測試人員、測試管理人員、程序員學習,還可作為高等院校相關專業(yè)師生的學習用書和培訓學校的教材。
1.業(yè)界大咖朱少民、茹炳晟等聯(lián)袂推薦的測試專家云層的ZUI新力作;
2.全面講解微服務和敏捷模式下的軟件測試知識,知識系統(tǒng),逐層推進;
3.從理論到實踐,全面闡述構建敏捷測試的技術;
4.分享一線敏捷、測試、研發(fā)、運維測試專家的實戰(zhàn)知識,涵蓋一線客戶交付實戰(zhàn);
5.覆蓋敏捷測試的全面技術,從版本控制利器Git/Github/GitLab、持續(xù)集成工具Jenkins、容器 Docker CE/DockerRegistry、Kubernetes等搭建與使用,一直擴展到微服務、大數(shù)據(jù)的測試。幫助讀者實戰(zhàn)落地和測試轉型;
6.提供完整代碼及容器化技術。
陳霽,DevOps、敏捷測試資深專家,騰訊課堂認證講師、EXIN認證DevOps講師、華為云MVP、阿里云MVP、阿里巴巴研發(fā)效能事業(yè)部認證解決方案架構師,《測試敏捷化白皮書》項目經(jīng)理,PMI-ACP、EXIN DOM/ASM、SAFe5 Agilist證書獲得者,TMMI會員。
陸怡頤,美國質量學會認證的質量工程師、項目管理與質量管理專家,CSTQB認證講師。曾供職于中國航天研究所軟件檢測站、華為、中國平安等多家知名企業(yè)。
王朝陽,Oracle ACE、阿里云MVP、Oracle年輕專家。就職于海通證券股份有限公司,主要負責云計算、容器化、數(shù)據(jù)庫、存儲和SDN等方面的工作。具有10多年的工作經(jīng)驗,熱衷于分享技術心得和最佳實踐,先后在許多技術峰會上做過主題分享。
傅江如,大數(shù)據(jù)架構師及數(shù)據(jù)分析專家、項目管理與質量管理專家,PMP、CMMI評估師、FRM證書獲得者,ISO27001&9001內審員,CSTQB金融組組員等。目前就職于申萬宏源證券有限公司,負責大數(shù)據(jù)平臺架構和數(shù)據(jù)服務提供工作。
目錄
第 1章 敏捷測試理念 1
1.1 敏捷的價值 2
1.1.1 VUCA的行業(yè)背景 2
1.1.2 敏捷的核心價值觀 2
1.2 DevOps解決問題更快 3
1.2.1 團隊組織的變化 3
1.2.2 流水線對測試的依賴 4
1.2.3 為系統(tǒng)制造問題 5
1.3 測試與行業(yè)發(fā)展 5
1.3.1 有效自動化 6
1.3.2 測試運維的興起 6
1.3.3 測試的三大階段 7
1.4 測試敏捷化之路 8
1.4.1 敏捷測試 8
1.4.2 測試敏捷化 10
第 2章 敏捷測試的相關體系 11
2.1 從UserStory開始 12
2.1.1 UserStory定性 12
2.1.2 UserStory編寫格式 13
2.1.3 基本的格式模板 13
2.1.4 進階的基本格式模板 13
2.1.5 高級格式模板 14
2.1.6 UserStory中的優(yōu)先級與
故事點數(shù) 15
2.1.7 UserStory實例化、驗收
標準與完成定義 15
2.1.8 驗收標準 16
2.1.9 完成定義 16
2.1.10 UserStory骨干、地圖和
迭代規(guī)劃 17
2.2 看板看出名堂 19
2.3 Scrum的流程 22
2.4 DevOps帶來的價值流 24
2.5 從敏捷測試到測試敏捷化 25
第3章 敏捷用戶故事實戰(zhàn) 26
3.1 引言 27
3.2 用戶故事背景 27
3.2.1 規(guī)劃角色 27
3.2.2 羅列用戶故事 28
3.2.3 評估用戶故事優(yōu)先級 29
3.2.4 評估用戶故事大小 31
3.2.5 用戶故事地圖 33
3.2.6 用戶故事迭代計劃 33
3.3 用戶故事范例 34
第4章 版本控制利器——Git 35
4.1 為何要版本控制 36
4.2 版本控制的演進歷史 36
4.2.1 本地版本控制 36
4.2.2 集中化版本控制 37
4.2.3 分布式版本控制 38
4.3 Git的基本概念 39
4.3.1 Git的3個工作區(qū)域 39
4.3.2 本地、遠程以及Origin 41
4.4 Git的安裝 41
4.5 開啟Git協(xié)議 41
4.6 Git命令簡介 43
第5章 GitHub入門 46
5.1 初識GitHub 47
5.2 賬號安全 48
5.3 Repository(倉庫) 49
5.4 事務管理 52
5.4.1 Assignees(指派人) 53
5.4.2 Labels(標簽) 54
5.4.3 Projects(項目) 54
5.4.4 Milestone(里程碑) 56
5.5 豐富的項目文檔——Wiki 56
5.6 Pull Request 57
5.7 Fork功能 59
5.8 代碼分享功能——Gist 60
5.9 GitHub CI/CD 61
5.9.1 準備代碼 61
5.9.2 編寫GitHub CI/CD腳本 64
5.9.3 運行工作流 66
第6章 微服務 67
6.1 為什么要微服務 68
6.2 微服務架構 68
6.3 微服務實例 69
6.3.1 Spring Cloud簡介 69
6.3.2 快速構建Spring Cloud
項目 70
6.3.3 Spring Cloud演示項目的
實現(xiàn) 77
6.3.4 驗證微服務 99
6.4 API管理 103
第7章 GitLab 106
7.1 GitLab的安裝 107
7.1.1 硬件要求 107
7.1.2 操作系統(tǒng) 108
7.1.3 綜合安裝包安裝 109
7.2 GitLab的配置與啟動 111
7.2.1 修改GitLab服務端口 111
7.2.2 啟動與停止服務 112
7.3 GitLab的使用 112
7.3.1 系統(tǒng)管理 112
7.3.2 GitLab基本使用 116
7.3.3 運行器(Runner) 116
7.4 CI/CD 118
7.4.1 GitLab-CI基本用法 118
7.4.2 CI/CD實戰(zhàn) 124
第8章 Jenkins 135
8.1 Jenkins的持續(xù)集成 136
8.2 什么是Jenkins Pipeline 136
8.3 Jenkins Pipeline實戰(zhàn) 136
8.3.1 安裝Jenkins 136
8.3.2 定義CI/CD流程 137
8.3.3 多分支Pipeline任務 137
8.3.4 Pipeline任務進階 142
8.4 API自動化測試 154
8.5 基于敏捷模式的開發(fā)實踐 162
8.5.1 一切從Story開始 162
8.5.2 和諧的結對編程與TDD 163
8.5.3 特性分支合入 174
8.5.4 提交測試分支 175
第9章 容器概述 176
9.1 容器技術棧介紹 177
9.1.1 容器核心技術 177
9.1.2 容器平臺技術 178
9.1.3 容器支持技術 179
9.2 為什么使用容器 179
9.2.1 容器與虛擬機技術 179
9.2.2 容器的優(yōu)點 180
9.2.3 容器的業(yè)務價值 180
9.3 Docker簡介 181
9.3.1 Docker平臺 181
9.3.2 Docker引擎 181
9.3.3 Docker架構 182
9.3.4 Docker使用的底層
技術 185
第 10章 安裝Docker CE 186
10.1 實驗環(huán)境介紹 187
10.1.1 服務器信息 187
10.1.2 基本配置 187
10.2 Docker版本概覽 188
10.3 單主機安裝Docker CE 188
10.3.1 卸載舊版本(推薦全新
環(huán)境安裝) 189
10.3.2 使用YUM安裝
Docker 189
10.3.3 使用RPM包安裝
Docker 190
10.3.4 卸載Docker CE 192
10.4 多主機安裝Docker CE 192
10.4.1 使用Docker Machine批量
安裝Docker主機 193
10.4.2 卸載Docker Machine 197
10.4.3 使用Ansible批量安裝
Docker主機 197
10.5 查閱Docker幫助文檔 201
10.5.1 在線查閱文檔 201
10.5.2 離線查閱文檔 202
第 11章 搭建私有Docker Registry 204
11.1 Docker Hub簡介 205
11.2 搭建私有鏡像倉庫 205
11.3 鏡像打標簽的最佳實踐 209
第 12章 Kubernetes概述 210
12.1 Kubernetes架構簡介 211
12.1.1 Master節(jié)點 211
12.1.2 Worker節(jié)點 213
12.1.3 插件 213
12.2 Kubernetes的高可用集群方案
介紹 214
12.2.1 堆疊etcd拓撲 214
12.2.2 外部etcd拓撲 215
第 13章 使用kubeadm搭建Kubernetes
v1.13.2單主節(jié)點集群 216
13.1 實驗環(huán)境介紹 217
13.1.1 服務器信息 217
13.1.2 基本的配置 217
13.2 安裝Docker CE 219
13.2.1 解壓縮安裝包 219
13.2.2 RPM包方式安裝
Docker CE 220
13.2.3 啟動服務,并檢查服務
狀態(tài) 221
13.3 安裝Kubernetes組件 221
13.3.1 解壓縮安裝包 221
13.3.2 安裝kubeadm、kubectl、
kubelet軟件包 222
13.3.3 準備Docker鏡像 222
13.4 初始化主節(jié)點 224
13.4.1 設置主節(jié)點相關配置 224
13.4.2 初始化的過程 226
13.5 安裝Pod網(wǎng)絡插件 227
13.5.1 檢查Pod的狀態(tài) 227
13.5.2 安裝插件 227
13.6 注冊新節(jié)點到集群 228
13.6.1 導入所需鏡像 229
13.6.2 配置新節(jié)點 229
13.6.3 注冊新節(jié)點 230
13.6.4 檢查Pod和節(jié)點的
狀態(tài) 230
13.7 安裝可視化圖形界面
(可選) 231
第 14章 初探大數(shù)據(jù) 233
14.1 無處不在的大數(shù)據(jù) 234
14.2 大數(shù)據(jù)特征 235
14.2.1 數(shù)據(jù)量 236
14.2.2 速度 237
14.2.3 多樣性 237
14.2.4 價值 238
14.3 Hadoop生態(tài)系統(tǒng) 239
14.3.1 Hadoop技術概覽 239
14.3.2 HDFS 241
14.3.3 YARN 242
14.3.4 Spark 244
14.3.5 SQL解決方案 244
14.3.6 對流數(shù)據(jù)的處理 246
14.3.7 NoSQL型數(shù)據(jù)庫 251
14.3.8 任務調度 252
14.3.9 協(xié)調和管理 253
14.3.10 ETL工具 255
14.3.11 寫給測試人員的話 257
第 15章 大數(shù)據(jù)測試探索 258
15.1 從用戶故事開始 259
15.2 大數(shù)據(jù)系統(tǒng)設計 260
15.3 搭建Hadoop系統(tǒng) 261
15.3.1 安裝CentOS虛擬機 261
15.3.2 安裝JDK 262
15.3.3 配置SSH免密登錄 263
15.3.4 安裝Hadoop系統(tǒng) 263
15.3.5 開通虛擬機防火墻
端口 266
15.4 安裝Hive組件 268
15.4.1 安裝MySQL 268
15.4.2 安裝Hive組件 270
15.5 平臺架構測試 274
15.5.1 可靠性測試 274
15.5.2 性能測試 276
15.6 業(yè)務應用測試 278
15.6.1 數(shù)據(jù)ETL測試 279
15.6.2 業(yè)務邏輯測試 283
15.6.3 應用性能測試 287