万本电子书0元读

万本电子书0元读

顶部广告

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

当下,越来越多的公司和团队在追求以快的速度交付软件,从而应对灵活多变的业务场景需求。“快”的前提是高质量的交付,高质量的交付离不一套稳健的持续环境。所谓持续并不是一直运行的意思,而是具备持续运行的能力。基于持续概念衍生出持续集成、持续交付、持续部署等工程实践,在每一个细分领域又诞生了琳琅满目的工具和工具组合。如何在如此之多的工具中挑选出合适的工具集来构建自己的持续环境?这正是本书所要解决的问题。只有真正理解了什么是持续集成、持续交付、持续部署,才能理解单元测试、功能测试,以及集成环境中每一个环节的作用和重要性。

售       价:¥

纸质售价:¥71.50购买纸书

29人正在读 | 0人评论 6.3

作       者:心蓝

出  版  社:机械工业出版社

出版时间:2021-09-01

字       数:35.4万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书共10 章,分为四大部分。 部分(第1~4 章)主要围绕如何提高软件的发质量和效率展,详细讲述了单元测试的常用工具和实践,并展阐述了持续集成、持续交付、持续部署等概念; 第二部分(第5~6 章)详细讲解两个常用的mock 工具——Mockito 和Powermock,通过实例详尽地讲解了它们的语法规则和使用场景,目的是让发者在不修改软件源代码和程序结构的前提下尽可能确保软件具备可测试性; 第三部分(第7~8 章)详细讲述两个行为驱动发工具(功能测试)Concordion 和Cucumber,这两个工具可以帮助我们很好地完成功能测试、验收测试、回归测试等工作; 第四部分(第9~10 章)综合前面三部分的知识,并引代码风格检查、静态代码分析、第三方依赖安全性检查、企业内部私服的原理和搭建、Ansible 自动化软件部署工具、Jenkins Pipeline 等知识,帮助读者构建完整的CI/CD 流程。<br/>【推荐语】<br/>当下,越来越多的公司和团队在追求以快的速度交付软件,从而应对灵活多变的业务场景需求。“快”的前提是高质量的交付,高质量的交付离不一套稳健的持续环境。所谓持续并不是一直运行的意思,而是具备持续运行的能力。基于持续概念衍生出持续集成、持续交付、持续部署等工程实践,在每一个细分领域又诞生了琳琅满目的工具和工具组合。如何在如此之多的工具中挑选出合适的工具集来构建自己的持续环境?这正是本书所要解决的问题。只有真正理解了什么是持续集成、持续交付、持续部署,才能理解单元测试、功能测试,以及集成环境中每一个环节的作用和重要性。 本书结合理论和实践为读者讲解持续集成、持续部署环节不同工具的整合使用,以便读者能够快速搭建适合自己团队的持续构建环境。 本书的主要内容和特色: ●循序渐  本书内容由浅深,结合实际应用发精准阐述如何基于测试驱动发的方法论行软件发,能帮助读者系统化地对知识行梳理和归纳。 ●内容丰富  不仅囊括了Hamcrest对象匹配库中各种匹配器的用法及其与JUnit的整合,还展示了众多工具和插件的使用方法,从而帮助发者发出高质量的代码。 ●真实案例  书中所包含的案例都源于实践,通过案例重解读了当下主流的单元测试mock工具(Mockito、Powermock)和功能测试框架(Cucumber、Concordion),读者在练习过程中会发现这些案例与日常工作十分切合。 ●延展阅读  每章的后都会给出拓展资料,方便读者在掌握本书知识的基础上一步提升。   【在本店书可免费获得“心蓝说Java”配套视频课程,关注“IT阅读排行榜”回复“69020”加读者群,了解获取方式】<br/>【作者】<br/>心蓝,某外资零售银行电子渠道高级发总监、技术专家,有超过十年的系统设计、一线发经验。对团队管理、项目管理有自己独到的见解。拥有多年的移动网关通讯研发经验,以及移动互联网发与产品运营、云计算、B2C电子商务平台发经验,热衷于技术分享,目前已录制20余套技术视频,在互联网上广泛传播。所著图书包括《Java高并发编程详解:多线程与架构设计》、《Java高并发编程详解:深理解并发核心库》等。<br/>
目录展开

版权页

前言

第一部分 提高软件的开发质量及开发效率

第1章 单元测试与TDD

1.1 单元测试的定义

1.2 单元测试的好处

1.3 单元测试的FIRST原则

1.4 JUnit最佳实践

1.5 测试驱动开发

1.5.1 红–绿–重构

1.5.2 TDD工作流程

1.5.3 TDD实践

1.6 本章总结

第2章 Hamcrest:优雅强大的对象匹配器

2.1 Hamcrest概述

2.2 Hamcrest对象匹配器详解

2.2.1 org.hamcrest.core

2.2.2 org.hamcrest.beans

2.2.3 org.hamcrest.collection

2.2.4 org.hamcrest.number

2.2.5 org.hamcrest.text

2.2.6 org.hamcrest.xml

2.3 自定义对象匹配器

2.4 REST-Assured的使用

2.5 本章总结

第3章 Git及Git工作流程

3.1 快速上手Git

3.2 文件状态生命周期及Git中的对象

3.2.1 文件状态生命周期

3.2.2 Git中的对象

3.3 Git与本地仓库

3.3.1 add与commit命令

3.3.2 log命令

3.3.3 diff与blame命令

3.3.4 Git的分支及操作

3.3.5 stash命令

3.3.6 reset命令

3.3.7 标签的操作

3.3.8 “.gitignore”文件的规则

3.4 Git与远程仓库

3.4.1 远程仓库的管理

3.4.2 远程仓库的操作

3.4.3 本地仓库与远程仓库的其他协同操作

3.5 Git的配置和别名操作

3.5.1 Git的基本配置

3.5.2 Git的别名

3.6 Git工作流程

3.7 本章总结

第4章 持续集成与持续交付

4.1 什么是持续集成

4.2 什么是持续交付

4.3 什么是持续部署

4.4 本章总结

第二部分 mock:构造测试对象的替身

第5章 Mockito:热门的mock工具

5.1 mock技术

5.2 快速上手Mockito

5.2.1 引入Mockito

5.2.2 测试用户登录

5.3 创建mock“替身”对象实例

5.3.1 四种mock方式

5.3.2 深度mock

5.4 Stubbing语法详解

5.4.1 when...thenReturn和doReturn...when语法

5.4.2 doNothing...when语法

5.4.3 when...thenThrow和doThrow...when语法

5.4.4 when...thenAnswer和doAnswer...when语法

5.4.5 多值返回的Stubbing语法

5.4.6 级联风格的Stubbing语法

5.4.7 when...thenCallRealMethod和doCallRealMethod...when语法

5.5 Spying详解

5.6 Argument对象匹配器详解

5.6.1 Argument对象匹配器在Stubbing语法中的使用

5.6.2 自定义Argument对象匹配器

5.6.3 集成Hamcrest中的对象匹配器

5.7 Mockito Verify与Arguments Captor

5.7.1 Mockito Verify操作

5.7.2 VerificationMode详解

5.7.3 ArgumentCaptor与@Captor

5.8 InjectMocks

5.9 Mockito对BDD风格的支持

5.10 Mockito Inline

5.11 本章总结

第6章 Powermock详解

6.1 快速入门Powermock

6.1.1 为什么需要Powermock

6.1.2 搭建Powermock环境

6.1.3 Powermock入门

6.2 Powermock如何通过mock操作局部变量

6.3 Powermock如何通过mock操作静态方法

6.4 Powermock如何通过mock操作final修饰的类

6.5 Powermock如何通过mock操作私有方法

6.6 Powermock中的Spying

6.7 Powermock与JaCoCo

6.8 本章总结

第三部分 行为驱动开发

第7章 Concordion:测试即文档

7.1 Concordion的开发流程

7.2 搭建Concordion环境

7.2.1 搭建Concordion基础环境

7.2.2 Concordion与Maven进行集成

7.3 Concordion的指令详解

7.4 在Specification文档中处理Java返回的结果

7.4.1 简单的数据类型

7.4.2 复杂的数据类型

7.5 table和list中的指令

7.5.1 使用table标签批量执行测试用例

7.5.2 使用list标签批量执行测试用例

7.6 拾遗补漏

7.7 本章总结

第8章 Cucumber:热门的行为驱动开发工具

8.1 Cucumber简介

8.1.1 快速上手Cucumber

8.1.2 Cucumber与IntelliJ IDEA集成

8.1.3 Cucumber的执行流程

8.2 Feature文档的语法基础:Gherkin

8.2.1 什么是Gherkin

8.2.2 Gherkin语法基础

8.2.3 Gherkin中的注释

8.2.4 Gherkin对其他语系的支持

8.3 Step Definitions详解

8.3.1 步骤的匹配

8.3.2 通过正则表达式捕获参数

8.3.3 通过Cucumber表达式捕获参数

8.3.4 使用Java 8 Lambda表达式定义步骤方法

8.3.5 Step Definitions的常见问题

8.3.6 Cucumber中Step的执行过程

8.4 Cucumber进阶

8.4.1 Background关键字

8.4.2 Data Table

8.4.3 Scenario Outline关键字

8.4.4 Doc String

8.4.5 Tagging & Hooks

8.5 CucumberOptions

8.6 Cucumber整合Selenium进行Web自动化测试

8.7 Cucumber功能测试报告

8.8 本章总结

第四部分 遇见Jenkins

第9章 Jenkins的基础知识

9.1 Jenkins的安装及快速构建Job

9.1.1 Jenkins的安装

9.1.2 Jenkins Job的快速构建

9.2 配置Jenkins

9.2.1 Jenkins的基本配置

9.2.2 为Jenkins配置集群节点

9.2.3 Jenkins插件管理

9.2.4 基于Role Strategy配置权限

9.2.5 构建Maven项目类型的Job

9.3 Jenkins参数化及可视化构建

9.3.1 参数化构建

9.3.2 可视化构建

9.4 Jenkins构建Pipeline Job

9.4.1 Groovy Pipeline Script

9.4.2 Jenkinsfile

9.4.3 Blue Ocean

9.5 本章总结

第10章 基于Jenkins构建持续集成与持续交付

10.1 Spring Boot开发RESTful应用

10.1.1 搭建Spring Boot环境

10.1.2 代码检查与分析

10.1.3 基于测试驱动开发完成应用程序开发

10.1.4 使用Cucumber开发自动化功能测试程序

10.2 Nexus私服

10.2.1 搭建Nexus私服

10.2.2 私服仓库配置

10.3 RedHat Ansible

10.3.1 Ansible的安装

10.3.2 Ad-hoc及Playbook简介

10.3.3 Ansible模板引擎jinjia2

10.3.4 通过Playbook逐步完成软件自动化部署

10.4 创建Jenkins Pipeline

10.4.1 创建CI/CD Jenkins Pipeline Job

10.4.2 GitHub WebHook自动触发Jenkins Job

10.5 本章总结

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部