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

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

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

定 價(jià):¥89.80

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

購(gòu)買(mǎi)這本書(shū)可以去


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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

目錄

研發(fā)自測(cè)基礎(chǔ)篇
第 1章 研發(fā)自測(cè)基礎(chǔ) 3
1.1 軟件測(cè)試的基本概念 3
1.1.1 軟件測(cè)試 3
1.1.2 缺陷 4
1.1.3 測(cè)試用例 5
1.1.4 測(cè)試金字塔 6
1.1.5 測(cè)試策略 7
1.1.6 測(cè)試左移和測(cè)試右移 8
1.1.7 質(zhì)量度量 8
1.2 軟件的測(cè)試分類(lèi) 10
1.2.1 單元測(cè)試 10
1.2.2 集成測(cè)試 11
1.2.3 系統(tǒng)測(cè)試 11
1.2.4 驗(yàn)收測(cè)試 11
1.2.5 靜態(tài)代碼分析 12
1.2.6 安全測(cè)試 12
1.2.7 性能測(cè)試 12
1.3 測(cè)試用例設(shè)計(jì)入門(mén) 13
1.3.1 劃分等價(jià)類(lèi) 13
1.3.2 邊界值分析法 14
1.3.3 場(chǎng)景法 15
1.4 開(kāi)發(fā)人員自測(cè)范圍 16
1.4.1 新交付的需求 18
1.4.2 缺陷處理 18
1.4.3 重構(gòu) 18
1.4.4 數(shù)據(jù)遷移 18
1.5 測(cè)試數(shù)據(jù)的構(gòu)造和安全 18
1.5.1 高效構(gòu)造測(cè)試數(shù)據(jù) 19
1.5.2 測(cè)試數(shù)據(jù)的安全 21
1.6 小結(jié) 22
第 2章 代碼評(píng)審 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 人工代碼評(píng)審 47
2.2.1 代碼評(píng)審的場(chǎng)景 47
2.2.2 代碼評(píng)審的工具 48
2.2.3 代碼評(píng)審的注意事項(xiàng) 48
2.2.4 Java代碼評(píng)審清單 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章 單元測(cè)試基礎(chǔ) 55
3.1 單元測(cè)試 55
3.1.1 什么是單元測(cè)試 55
3.1.2 為什么需要單元測(cè)試 56
3.1.3 怎么學(xué)習(xí)單元測(cè)試 56
3.1.4 搭建JUnit環(huán)境 57
3.1.5 給“Hello, world!”寫(xiě)一個(gè)單元測(cè)試 58
3.2 斷言 59
3.2.1 編寫(xiě)一個(gè)簡(jiǎn)單的斷言庫(kù) 60
3.2.2 JUnit內(nèi)置的斷言方法 60
3.2.3 使用assertThat和Matcher方法 61
3.2.4 編寫(xiě)自己的Matcher方法 63
3.2.5 斷言并不只是單元測(cè)試中的概念 63
3.2.6 思考題 64
3.3 單元測(cè)試的設(shè)計(jì) 64
3.3.1 準(zhǔn)備并清理測(cè)試數(shù)據(jù) 65
3.3.2 設(shè)計(jì)單元測(cè)試用例 66
3.3.3 參數(shù)化單元測(cè)試用例 69
3.4 單元測(cè)試的使用技巧 70
3.4.1 測(cè)試異常 70
3.4.2 測(cè)試覆蓋率 72
3.4.3 使用JUnit Rule 73
3.4.4 其他技巧 74
3.4.5 新手容易犯的錯(cuò)誤 75
3.5 基于JUnit 5實(shí)現(xiàn)測(cè)試 76
3.5.1 JUnit 5的架構(gòu)說(shuō)明 76
3.5.2 使用JUnit 5 77
3.5.3 更強(qiáng)的斷言能力 78
3.5.4 嵌套測(cè)試 78
3.5.5 拓展的變化 80
3.6 Java單元測(cè)試的原則和約定 80
3.6.1 FIRST原則 80
3.6.2 單元測(cè)試的約定 81
3.7 小結(jié) 81
第4章 測(cè)試替身 82
4.1 測(cè)試替身簡(jiǎn)介 82
4.2 Mockito 84
4.2.1 使用mock方法 85
4.2.2 捕捉參數(shù)對(duì)象 87
4.2.3 設(shè)置模擬對(duì)象的行為 88
4.2.4 參數(shù)匹配器 89
4.2.5 使用spy方法 90
4.2.6 使用注解 91
4.2.7 其他技巧 93
4.3 增強(qiáng)測(cè)試:靜態(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 測(cè)試代碼的結(jié)構(gòu)模式 100
4.4.1 準(zhǔn)備-執(zhí)行-斷言 100
4.4.2 四階段測(cè)試 100
4.5 基于測(cè)試替身的反思 101
4.5.1 “大泥球” 101
4.5.2 分層過(guò)多 102
4.5.3 濫用測(cè)試替身 102
4.6 小結(jié) 103
第5章 Spring應(yīng)用的測(cè)試 104
5.1 理解Spring測(cè)試體系 105
5.2 啟動(dòng)Spring上下文測(cè)試 106
5.3 啟動(dòng)Spring Boot上下文測(cè)試 109
5.3.1 @SpringBootTest注解 109
5.3.2 對(duì)Bean的模擬和監(jiān)視 112
5.3.3 Spring Boot切片配置 113
5.4 分層測(cè)試和測(cè)試策略 117
5.4.1 分層測(cè)試策略 117
5.4.2 MockMvc的執(zhí)行原理 118
5.4.3 內(nèi)嵌基礎(chǔ)設(shè)施 120
5.5 常用的測(cè)試工具集 122
5.5.1 Spring Test庫(kù)提供的工具集 122
5.5.2 spring-boot-test庫(kù)提供的工具集 123
5.6 小結(jié) 125
第6章 RESTful API測(cè)試 126
6.1 RESTful API測(cè)試工具集 126
6.1.1 REST Assured 127
6.1.2 MariaDB 128
6.1.3 DbUnit 129
6.2 API測(cè)試實(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)化測(cè)試策略 150
6.7.1 應(yīng)用API 151
6.7.2 領(lǐng)域API 152
6.8 小結(jié) 154
研發(fā)自測(cè)高級(jí)篇
第7章 性能和并發(fā)檢測(cè) 157
7.1 微基準(zhǔn)性能測(cè)試 158
7.1.1 使用Maven構(gòu)建微基準(zhǔn)性能測(cè)試 158
7.1.2 一個(gè)直觀(guān)的示例 160
7.1.3 使用JUnit運(yùn)行微基準(zhǔn)性能測(cè)試 161
7.2 API性能測(cè)試 163
7.2.1 JMeter介紹 163
7.2.2 安裝JMeter 164
7.2.3 設(shè)計(jì)測(cè)試計(jì)劃 165
7.2.4 執(zhí)行測(cè)試計(jì)劃 170
7.2.5 理解JMeter 173
7.3 并發(fā)檢測(cè) 176
7.3.1 幾種并發(fā)模型 176
7.3.2 并發(fā)問(wèn)題類(lèi)型 180
7.3.3 并發(fā)測(cè)試技術(shù) 181
7.3.4 并發(fā)問(wèn)題的檢測(cè)實(shí)例 182
7.4 小結(jié) 190
第8章 測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 191
8.1 理解TDD 191
8.1.1 TDD的多重含義 191
8.1.2 TDD的操作過(guò)程 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 只為必要的代碼編寫(xiě)測(cè)試 203
8.5 總結(jié) 203
第9章 測(cè)試工程化 204
9.1 測(cè)試工程化簡(jiǎn)介 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 普通流水線(xiàn) 218
9.3.3 多分支流水線(xiàn) 223
9.3.4 并行流水線(xiàn) 227
9.4 配置測(cè)試報(bào)告發(fā)布工具并統(tǒng)計(jì)測(cè)試覆蓋率 228
9.4.1 配置測(cè)試報(bào)告發(fā)布工具 229
9.4.2 統(tǒng)計(jì)Java測(cè)試覆蓋率 231
9.5 小結(jié) 235
第 10章 測(cè)試守護(hù)重構(gòu) 236
10.1 理解接口 237
10.2 守護(hù)“類(lèi)”級(jí)別的重構(gòu) 239
10.2.1 提取測(cè)試數(shù)據(jù) 240
10.2.2 參考測(cè)試覆蓋率 241
10.3 使用契約測(cè)試保護(hù)API重構(gòu) 242
10.3.1 契約測(cè)試介紹 242
10.3.2 Pact 244
10.4 為數(shù)據(jù)遷移腳本編寫(xiě)測(cè)試 248
10.4.1 Spring Batch 248
10.4.2 為Spring Batch腳本編寫(xiě)測(cè)試 252
10.4.3 Reader、Writer和Processor的測(cè)試說(shuō)明 254
10.5 漸進(jìn)式重構(gòu) 255
10.5.1 特性開(kāi)關(guān) 255
10.5.2 灰度開(kāi)關(guān) 265
10.5.3 切換 266
10.5.4 數(shù)據(jù)雙寫(xiě) 267
10.5.5 關(guān)于特性開(kāi)關(guān)的測(cè)試策略 269
10.6 小結(jié) 269
源碼分析篇
第 11章 測(cè)試框架的源碼分析 273
11.1 源碼分析的技巧 273
11.2 JUnit源碼分析 274
11.2.1 使用命令行方式運(yùn)行測(cè)試 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 針對(duì)mock方法的分析 292
11.3.2 針對(duì)when方法的分析 297
11.3.3 針對(duì)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探針的插樁過(guò)程 316
11.4.5 IntelliJ IDEA測(cè)試覆蓋率的實(shí)現(xiàn) 327
11.5 小結(jié) 327
附錄A 測(cè)試策略模板 329
附錄B 測(cè)試反模式 332

本目錄推薦

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