注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件工程及软件方法学构建高质量软件:持续集成与持续交付系统实践

构建高质量软件:持续集成与持续交付系统实践

构建高质量软件:持续集成与持续交付系统实践

定 价:¥99.00

作 者: 心蓝(汪文君)
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111690207 出版时间: 2021-09-01 包装: 平装-胶订
开本: 16开 页数: 364 字数:  

内容简介

  本书共10 章,分为四大部分。部分(第1~4 章)主要围绕如何提高软件的开发质量和效率展开,详细讲述了单元测试的常用工具和实践,并展开阐述了持续集成、持续交付、持续部署等概念;第二部分(第5~6 章)详细讲解两个常用的mock 工具——Mockito 和Powermock,通过实例详尽地讲解了它们的语法规则和使用场景,目的是让开发者在不修改软件源代码和程序结构的前提下尽可能确保软件具备可测试性;第三部分(第7~8 章)详细讲述两个行为驱动开发工具(功能测试)Concordion 和Cucumber,这两个工具可以帮助我们很好地完成功能测试、验收测试、回归测试等工作;第四部分(第9~10 章)综合前面三部分的知识点,并引入代码风格检查、静态代码分析、第三方依赖安全性检查、企业内部私服的原理和搭建、Ansible 自动化软件部署工具、Jenkins Pipeline 等知识,帮助读者构建完整的CI/CD 流程。

作者简介

  心蓝,某外资零售银行电子渠道高级开发总监、技术专家,有超过十年的系统设计、一线开发经验。对团队管理、项目管理有自己独到的见解。拥有多年的移动网关通讯研发经验,以及移动互联网开发与产品运营、云计算、B2C电子商务平台开发经验,热衷于技术分享,目前已录制20余套技术视频,在互联网上广泛传播。所著图书包括《Java高并发编程详解:多线程与架构设计》、《Java高并发编程详解:深入理解并发核心库》等。

图书目录

【部分 提高软件的开发质量及开发效率】
 
第1章 单元测试与TDD3
1.1 单元测试的定义3
1.2 单元测试的好处5
1.3 单元测试的FIRST原则6
1.4 JUnit实践10
1.5 测试驱动开发14
1.5.1 红–绿–重构15
1.5.2 TDD工作流程16
1.5.3 TDD实践17
1.6 本章总结26
 
第2章 Hamcrest:优雅强大的对象匹配器27
2.1 Hamcrest概述27
2.2 Hamcrest对象匹配器详解34
2.2.1 org.hamcrest.core34
2.2.2 org.hamcrest.beans37
2.2.3 org.hamcrest.collection38
2.2.4 org.hamcrest.number41
2.2.5 org.hamcrest.text42
2.2.6 org.hamcrest.xml43
2.3 自定义对象匹配器44
2.4 REST-Assured的使用47
2.5 本章总结51
 
第3章 Git及Git工作流程52
3.1 快速上手Git53
3.2 文件状态生命周期及Git中的对象56
3.2.1 文件状态生命周期56
3.2.2 Git中的对象59
3.3 Git与本地仓库64
3.3.1 add与commit命令64
3.3.2 log命令65
3.3.3 diff与blame命令65
3.3.4 Git的分支及操作66
3.3.5 stash命令69
3.3.6 reset命令70
3.3.7 标签的操作73
3.3.8 “.gitignore”文件的规则74
3.4 Git与远程仓库75
3.4.1 远程仓库的管理76
3.4.2 远程仓库的操作77
3.4.3 本地仓库与远程仓库的其他协同操作78
3.5 Git的配置和别名操作81
3.5.1 Git的基本配置81
3.5.2 Git的别名82
3.6 Git工作流程82
3.7 本章总结85
 
第4章 持续集成与持续交付86
4.1 什么是持续集成87
4.2 什么是持续交付89
4.3 什么是持续部署91
4.4 本章总结94
 
【第二部分 mock:构造测试对象的替身】
 
第5章 Mockito:热门的mock工具97
5.1 mock技术97
5.2 快速上手Mockito98
5.2.1 引入Mockito98
5.2.2 测试用户登录99
5.3 创建mock“替身”对象实例104
5.3.1 四种mock方式104
5.3.2 深度mock108
5.4 Stubbing语法详解111
5.4.1 when...thenReturn和doReturn...when语法111
5.4.2 doNothing...when语法112
5.4.3 when...thenThrow和doThrow...when语法115
5.4.4 when...thenAnswer和doAnswer...when语法117
5.4.5 多值返回的Stubbing语法117
5.4.6 级联风格的Stubbing语法118
5.4.7 when...thenCallRealMethod和doCallRealMethod...when语法119
5.5 Spying详解120
5.6 Argument对象匹配器详解123
5.6.1 Argument对象匹配器在Stubbing语法中的使用123
5.6.2 自定义Argument对象匹配器125
5.6.3 集成Hamcrest中的对象匹配器126
5.7 Mockito Verify与ArgumentsCaptor127
5.7.1 Mockito Verify操作127
5.7.2 VerificationMode详解130
5.7.3 ArgumentCaptor与@Captor132
5.8 InjectMocks134
5.9 Mockito对BDD风格的支持135
5.10 Mockito Inline136
5.11 本章总结138
 
第6章 Powermock详解140
6.1 快速入门Powermock141
6.1.1 为什么需要Powermock141
6.1.2 搭建Powermock环境141
6.1.3 Powermock入门143
6.2 Powermock如何通过mock操作局部变量145
6.3 Powermock如何通过mock操作静态方法148
6.4 Powermock如何通过mock操作final修饰的类151
6.5 Powermock如何通过mock操作私有方法152
6.6 Powermock中的Spying154
6.7 Powermock与JaCoCo155
6.8 本章总结160
 
【第三部分 行为驱动开发】
 
第7章 Concordion:测试即文档163
7.1 Concordion的开发流程164
7.2 搭建Concordion环境174
7.2.1 搭建Concordion基础环境174
7.2.2 Concordion与Maven进行集成176
7.3 Concordion的指令详解178
7.4 在Specification文档中处理Java返回的结果183
7.4.1 简单的数据类型183
7.4.2 复杂的数据类型188
7.5 table和list中的指令191
7.5.1 使用table标签批量执行测试用例191
7.5.2 使用list标签批量执行测试用例193
7.6 拾遗补漏194
7.7 本章总结196
 
第8章 Cucumber:热门的行为驱动开发工具197
8.1 Cucumber简介198
8.1.1 快速上手Cucumber199
8.1.2 Cucumber与IntelliJ IDEA集成204
8.1.3 Cucumber的执行流程207
8.2 Feature文档的语法基础:Gherkin208
8.2.1 什么是Gherkin209
8.2.2 Gherkin语法基础209
8.2.3 Gherkin中的注释212
8.2.4 Gherkin对其他语系的支持213
8.3 Step Definitions详解214
8.3.1 步骤的匹配215
8.3.2 通过正则表达式捕获参数217
8.3.3 通过Cucumber表达式捕获参数220
8.3.4 使用Java 8 Lambda表达式定义步骤方法223
8.3.5 Step Definitions的常见问题225
8.3.6 Cucumber中Step的执行过程227
8.4 Cucumber进阶228
8.4.1 Background关键字228
8.4.2 Data Table229
8.4.3 Scenario Outline关键字233
8.4.4 Doc String 235
8.4.5 Tagging & Hooks236
8.5 CucumberOptions239
8.6 Cucumber整合Selenium进行Web自动化测试241
8.7 Cucumber功能测试报告246
8.8 本章总结248
 
【第四部分 遇见Jenkins】
 
第9章 Jenkins的基础知识253
9.1 Jenkins的安装及快速构建Job253
9.1.1 Jenkins的安装253
9.1.2 Jenkins Job的快速构建258
9.2 配置Jenkins261
9.2.1 Jenkins的基本配置261
9.2.2 为Jenkins配置集群节点264
9.2.3 Jenkins插件管理268
9.2.4 基于Role Strategy配置权限270
9.2.5 构建Maven项目类型的Job272
9.3 Jenkins参数化及可视化构建274
9.3.1 参数化构建275
9.3.2 可视化构建280
9.4 Jenkins构建Pipeline Job282
9.4.1 Groovy Pipeline Script282
9.4.2 Jenkinsfile285
9.4.3 Blue Ocean286
9.5 本章总结288
 
第10章 基于Jenkins构建持续集成与持续交付290
10.1 Spring Boot开发RESTful应用291
10.1.1 搭建Spring Boot环境291
10.1.2 代码检查与分析295
10.1.3 基于测试驱动开发完成应用程序开发303
10.1.4 使用Cucumber开发自动化功能测试程序311
10.2 Nexus私服317
10.2.1 搭建Nexus私服318
10.2.2 私服仓库配置319
10.3 RedHat Ansible326
10.3.1 Ansible的安装326
10.3.2 Ad-hoc及Playbook简介330
10.3.3 Ansible模板引擎jinjia2333
10.3.4 通过Playbook逐步完成软件自动化部署335
10.4 创建Jenkins Pipeline343
10.4.1 创建CI/CD Jenkins Pipeline Job343
10.4.2 GitHub WebHook自动触发Jenkins Job348
10.5 本章总结351

本目录推荐