注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Java研發(fā)自測入門與進(jìn)階

Java研發(fā)自測入門與進(jìn)階

Java研發(fā)自測入門與進(jìn)階

定 價(jià):¥89.80

作 者: 林寧、魏兆玉
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115629739 出版時(shí)間: 2024-03-01 包裝: 平裝
開本: 128開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  本書是一部基于大量自測實(shí)踐詳細(xì)介紹如何編寫高質(zhì)量 Java 代碼的作品。全書共 11 章,分為三篇。研發(fā)自測基礎(chǔ)篇(第 1~6 章),主要介紹了日常工作使用頻率高的基礎(chǔ)知識,包括軟件測試的基本概念、代碼評審的方式、單元測試等內(nèi)容。為了讓測試的編寫更容易,這一篇還介紹了測試替身,以及如何與 Spring框架相結(jié)合來編寫測試等內(nèi)容。研發(fā)自測高級篇(第 7~10 章),首先介紹了驗(yàn)證程序性能的方法和程序并發(fā)安全的相關(guān)知識,然后深入講解了什么是 TDD 和如何為重構(gòu)編寫測試等內(nèi)容。源碼分析篇(第 11 章),對常見測試框架和庫的源碼(包括 JUnit、Mockito、JaCoCo 等)進(jìn)行了分析。通過探究測試框架和庫的源碼,讓讀者更為深刻地掌握測試技術(shù)。本書適合 Java 開發(fā)人員、負(fù)責(zé)公司軟件質(zhì)量的相關(guān)人員和測試人員閱讀。

作者簡介

  林寧,Thoughtworks 軟件工程師、咨詢師,目前專注于微服務(wù)架構(gòu)設(shè)計(jì)、中間件開發(fā)和領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),有大量的單元測試、API自動(dòng)化測試等經(jīng)驗(yàn)。長期從事國內(nèi)外企業(yè)軟件開發(fā),熟悉敏捷實(shí)踐,為國內(nèi)多家大型企業(yè)據(jù)供與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和軟件建模相關(guān)的咨詢和培訓(xùn)服務(wù)。魏兆玉,Thoughtworks 咨詢師,從業(yè)10余年,專注于敏捷軟件開發(fā),,并為國內(nèi)外知名企業(yè)提供過人才培養(yǎng)服務(wù),其中包含敏捷全棧開發(fā)、測試驅(qū)動(dòng)開發(fā)、整潔代碼與重構(gòu)、軟件設(shè)計(jì)、敏捷實(shí)踐以及Web應(yīng)用安全等方面的人才培養(yǎng),擔(dān)任過開發(fā)工程師、項(xiàng)目經(jīng)理和培訓(xùn)師。

圖書目錄

目錄

研發(fā)自測基礎(chǔ)篇
第 1章 研發(fā)自測基礎(chǔ) 3
1.1 軟件測試的基本概念 3
1.1.1 軟件測試 3
1.1.2 缺陷 4
1.1.3 測試用例 5
1.1.4 測試金字塔 6
1.1.5 測試策略 7
1.1.6 測試左移和測試右移 8
1.1.7 質(zhì)量度量 8
1.2 軟件的測試分類 10
1.2.1 單元測試 10
1.2.2 集成測試 11
1.2.3 系統(tǒng)測試 11
1.2.4 驗(yàn)收測試 11
1.2.5 靜態(tài)代碼分析 12
1.2.6 安全測試 12
1.2.7 性能測試 12
1.3 測試用例設(shè)計(jì)入門 13
1.3.1 劃分等價(jià)類 13
1.3.2 邊界值分析法 14
1.3.3 場景法 15
1.4 開發(fā)人員自測范圍 16
1.4.1 新交付的需求 18
1.4.2 缺陷處理 18
1.4.3 重構(gòu) 18
1.4.4 數(shù)據(jù)遷移 18
1.5 測試數(shù)據(jù)的構(gòu)造和安全 18
1.5.1 高效構(gòu)造測試數(shù)據(jù) 19
1.5.2 測試數(shù)據(jù)的安全 21
1.6 小結(jié) 22
第 2章 代碼評審 23
2.1 常用的靜態(tài)代碼分析工具 24
2.1.1 Checkstyle 24
2.1.2 FindBugs 34
2.1.3 ArchUnit 40
2.1.4 OWASP DependencyCheck 46
2.2 人工代碼評審 47
2.2.1 代碼評審的場景 47
2.2.2 代碼評審的工具 48
2.2.3 代碼評審的注意事項(xiàng) 48
2.2.4 Java代碼評審清單 50
2.3 Git工作流和保護(hù) 50
2.3.1 Git工作流 50
2.3.2 Git Hooks 51
2.3.3 分支保護(hù) 53
2.4 小結(jié) 53
第3章 單元測試基礎(chǔ) 55
3.1 單元測試 55
3.1.1 什么是單元測試 55
3.1.2 為什么需要單元測試 56
3.1.3 怎么學(xué)習(xí)單元測試 56
3.1.4 搭建JUnit環(huán)境 57
3.1.5 給“Hello, world!”寫一個(gè)單元測試 58
3.2 斷言 59
3.2.1 編寫一個(gè)簡單的斷言庫 60
3.2.2 JUnit內(nèi)置的斷言方法 60
3.2.3 使用assertThat和Matcher方法 61
3.2.4 編寫自己的Matcher方法 63
3.2.5 斷言并不只是單元測試中的概念 63
3.2.6 思考題 64
3.3 單元測試的設(shè)計(jì) 64
3.3.1 準(zhǔn)備并清理測試數(shù)據(jù) 65
3.3.2 設(shè)計(jì)單元測試用例 66
3.3.3 參數(shù)化單元測試用例 69
3.4 單元測試的使用技巧 70
3.4.1 測試異常 70
3.4.2 測試覆蓋率 72
3.4.3 使用JUnit Rule 73
3.4.4 其他技巧 74
3.4.5 新手容易犯的錯(cuò)誤 75
3.5 基于JUnit 5實(shí)現(xiàn)測試 76
3.5.1 JUnit 5的架構(gòu)說明 76
3.5.2 使用JUnit 5 77
3.5.3 更強(qiáng)的斷言能力 78
3.5.4 嵌套測試 78
3.5.5 拓展的變化 80
3.6 Java單元測試的原則和約定 80
3.6.1 FIRST原則 80
3.6.2 單元測試的約定 81
3.7 小結(jié) 81
第4章 測試替身 82
4.1 測試替身簡介 82
4.2 Mockito 84
4.2.1 使用mock方法 85
4.2.2 捕捉參數(shù)對象 87
4.2.3 設(shè)置模擬對象的行為 88
4.2.4 參數(shù)匹配器 89
4.2.5 使用spy方法 90
4.2.6 使用注解 91
4.2.7 其他技巧 93
4.3 增強(qiáng)測試:靜態(tài)、私有方法的處理 94
4.3.1 模擬靜態(tài)方法 94
4.3.2 模擬構(gòu)造方法 97
4.3.3 模擬私有方法 98
4.3.4 反射工具箱 99
4.4 測試代碼的結(jié)構(gòu)模式 100
4.4.1 準(zhǔn)備-執(zhí)行-斷言 100
4.4.2 四階段測試 100
4.5 基于測試替身的反思 101
4.5.1 “大泥球” 101
4.5.2 分層過多 102
4.5.3 濫用測試替身 102
4.6 小結(jié) 103
第5章 Spring應(yīng)用的測試 104
5.1 理解Spring測試體系 105
5.2 啟動(dòng)Spring上下文測試 106
5.3 啟動(dòng)Spring Boot上下文測試 109
5.3.1 @SpringBootTest注解 109
5.3.2 對Bean的模擬和監(jiān)視 112
5.3.3 Spring Boot切片配置 113
5.4 分層測試和測試策略 117
5.4.1 分層測試策略 117
5.4.2 MockMvc的執(zhí)行原理 118
5.4.3 內(nèi)嵌基礎(chǔ)設(shè)施 120
5.5 常用的測試工具集 122
5.5.1 Spring Test庫提供的工具集 122
5.5.2 spring-boot-test庫提供的工具集 123
5.6 小結(jié) 125
第6章 RESTful API測試 126
6.1 RESTful API測試工具集 126
6.1.1 REST Assured 127
6.1.2 MariaDB 128
6.1.3 DbUnit 129
6.2 API測試實(shí)例 131
6.3 使用JsonPath斷言 136
6.4 鑒權(quán) 138
6.4.1 Basic鑒權(quán) 138
6.4.2 Token鑒權(quán) 138
6.4.3 Cookie鑒權(quán) 139
6.5 文件處理 140
6.6 模擬第三方API 140
6.6.1 使用適配器模式模擬 140
6.6.2 WireMock 143
6.7 API自動(dòng)化測試策略 150
6.7.1 應(yīng)用API 151
6.7.2 領(lǐng)域API 152
6.8 小結(jié) 154
研發(fā)自測高級篇
第7章 性能和并發(fā)檢測 157
7.1 微基準(zhǔn)性能測試 158
7.1.1 使用Maven構(gòu)建微基準(zhǔn)性能測試 158
7.1.2 一個(gè)直觀的示例 160
7.1.3 使用JUnit運(yùn)行微基準(zhǔn)性能測試 161
7.2 API性能測試 163
7.2.1 JMeter介紹 163
7.2.2 安裝JMeter 164
7.2.3 設(shè)計(jì)測試計(jì)劃 165
7.2.4 執(zhí)行測試計(jì)劃 170
7.2.5 理解JMeter 173
7.3 并發(fā)檢測 176
7.3.1 幾種并發(fā)模型 176
7.3.2 并發(fā)問題類型 180
7.3.3 并發(fā)測試技術(shù) 181
7.3.4 并發(fā)問題的檢測實(shí)例 182
7.4 小結(jié) 190
第8章 測試驅(qū)動(dòng)開發(fā) 191
8.1 理解TDD 191
8.1.1 TDD的多重含義 191
8.1.2 TDD的操作過程 192
8.1.3 TDD的價(jià)值 193
8.2 TDD的操作指南 193
8.3 TDD的實(shí)例演示 195
8.3.1 任務(wù)拆解和環(huán)境搭建 195
8.3.2 第 一輪任務(wù) 196
8.3.3 第二輪任務(wù) 198
8.3.4 第三輪任務(wù) 199
8.4 使用TDD的技巧 201
8.4.1 任務(wù)的拆解技巧 201
8.4.2 善于使用快捷鍵 202
8.4.3 只為必要的代碼編寫測試 203
8.5 總結(jié) 203
第9章 測試工程化 204
9.1 測試工程化簡介 204
9.2 搭建構(gòu)建平臺(tái) 206
9.2.1 CI/CD工具選型 206
9.2.2 使用Jenkins搭建構(gòu)建平臺(tái) 207
9.2.3 Jenkins插件的介紹 208
9.3 創(chuàng)建Jenkins項(xiàng)目 212
9.3.1 Freestyle 212
9.3.2 普通流水線 218
9.3.3 多分支流水線 223
9.3.4 并行流水線 227
9.4 配置測試報(bào)告發(fā)布工具并統(tǒng)計(jì)測試覆蓋率 228
9.4.1 配置測試報(bào)告發(fā)布工具 229
9.4.2 統(tǒng)計(jì)Java測試覆蓋率 231
9.5 小結(jié) 235
第 10章 測試守護(hù)重構(gòu) 236
10.1 理解接口 237
10.2 守護(hù)“類”級別的重構(gòu) 239
10.2.1 提取測試數(shù)據(jù) 240
10.2.2 參考測試覆蓋率 241
10.3 使用契約測試保護(hù)API重構(gòu) 242
10.3.1 契約測試介紹 242
10.3.2 Pact 244
10.4 為數(shù)據(jù)遷移腳本編寫測試 248
10.4.1 Spring Batch 248
10.4.2 為Spring Batch腳本編寫測試 252
10.4.3 Reader、Writer和Processor的測試說明 254
10.5 漸進(jìn)式重構(gòu) 255
10.5.1 特性開關(guān) 255
10.5.2 灰度開關(guān) 265
10.5.3 切換 266
10.5.4 數(shù)據(jù)雙寫 267
10.5.5 關(guān)于特性開關(guān)的測試策略 269
10.6 小結(jié) 269
源碼分析篇
第 11章 測試框架的源碼分析 273
11.1 源碼分析的技巧 273
11.2 JUnit源碼分析 274
11.2.1 使用命令行方式運(yùn)行測試 274
11.2.2 IntelliJ IDEA引導(dǎo)JUnit運(yùn)行的原理 277
11.2.3 JUnitCore的分析 282
11.2.4 JUnit4 Runner的分析 283
11.2.5 斷言分析 289
11.2.6 完成JUnit源碼分析的收獲 290
11.3 Mockito的源碼分析 292
11.3.1 針對mock方法的分析 292
11.3.2 針對when方法的分析 297
11.3.3 針對verify方法的分析 300
11.4 JaCoCo的源碼分析 301
11.4.1 Java agent的基本用法 302
11.4.2 Java agent的調(diào)試方法 310
11.4.3 JaCoCo agent的啟動(dòng)原理 312
11.4.4 JaCoCo探針的插樁過程 316
11.4.5 IntelliJ IDEA測試覆蓋率的實(shí)現(xiàn) 327
11.5 小結(jié) 327
附錄A 測試策略模板 329
附錄B 測試反模式 332

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號