科技
类型
可以朗读
语音朗读
95千字
字数
2023-06-01
发行日期
展开全部
主编推荐语
本书对软件单元测试进行了详细介绍。
内容简介
全书共8章。第1章与第2章介绍软件单元测试的概念和基础知识;第3章到第5章介绍C语言、Java语言和Python语言的单元测试框架和技巧;第6章与第7章介绍代码覆盖率工具和代码语法规范检查工具;第8章通过两个案例详细介绍TDD。另外,为了巩固大家的学习效果,每一章结尾都有相应的习题。
本书适合软件开发工程师、测试工程师、项目经理和大学计算机专业本科高年级学生与研究生阅读。
目录
- 版权信息
- 内容简介
- 推荐语
- 序
- 前言
- 第1章 软件单元测试简介
- 1.1 桩对象和测试驱动函数
- 1.2 测试驱动开发
- 1.3 软件测试应该贯彻始终
- 1.4 软件测试金字塔
- 1.5 单元测试在传统开发模式中的地位
- 1.6 单元测试在敏捷开发模式中的地位
- 1.7 精准测试
- 1.8 单元测试和白盒测试
- 1.9 单元测试的FIRST原则和AIR原则
- 1.10 习题
- 第2章 软件单元测试基础知识
- 2.1 动态自动化单元测试
- 2.1.1 被测程序
- 2.1.2 语句覆盖
- 2.1.3 分支覆盖
- 2.1.4 条件覆盖
- 2.1.5 条件/分支覆盖
- 2.1.6 MC/DC
- 2.1.7 路径覆盖
- 2.1.8 几种覆盖率的强弱关系
- 2.1.9 控制流覆盖
- 2.2 静态自动化单元测试:代码扫描
- 2.3 手工单元测试:代码调试
- 2.4 手工单元测试:代码评审
- 2.5 单元测试中的问题
- 2.5.1 功能层面的问题
- 2.5.2 性能层面的问题
- 2.5.3 安全层面的问题
- 2.6 习题
- 第3章 C语言动态自动化单元测试框架
- 3.1 在Windows下安装C语言运行环境
- 3.1.1 安装配置MinGW
- 3.1.2 安装配置MSYS2
- 3.1.3 安装配置IDE
- 3.2 安装编译CUnit
- 3.2.1 在Windows下安装CUnit
- 3.2.2 在Linux下安装CUnit
- 3.2.3 创建被测文件和测试文件
- 3.2.4 在Windows下运行测试文件
- 3.2.5 在Linux下运行测试文件
- 3.2.6 运行结果
- 3.3 查看测试报告
- 3.4 CUnit介绍
- 3.4.1 CUnit的四种运行模式
- 3.4.2 CUnit头文件
- 3.4.3 CUnit支持的断言
- 3.4.4 CUnit架构
- 3.4.5 CUnit的基本测试步骤
- 3.5 案例
- 3.5.1 指针操作
- 3.5.2 返回结构体
- 3.5.3 文件的读写操作
- 3.6 习题
- 第4章 Java语言动态自动化单元测试框架
- 4.1 在Eclipse中创建Maven项目
- 4.2 在Eclipse中配置JUnit和TestNG运行环境
- 4.2.1 配置JUnit运行环境
- 4.2.2 配置TestNG运行环境
- 4.3 JUnit 4
- 4.3.1 JUnit 4的测试代码
- 4.3.2 与JUnit 4相关的API
- 4.3.3 JUnit 4的装饰器
- 4.3.4 JUnit 4的断言
- 4.3.5 超时测试
- 4.3.6 JUnit 4参数化测试
- 4.3.7 测试异常
- 4.3.8 批量运行
- 4.3.9 利用Ant运行
- 4.3.10 利用Maven运行
- 4.3.11 配合Allure生成漂亮的JUnit 4测试报告
- 4.4 JUnit 5
- 4.4.1 JUnit 5的测试代码
- 4.4.2 与JUnit 5相关的API
- 4.4.3 JUnit 5的装饰器
- 4.4.4 JUnit 5的断言
- 4.4.5 JUnit 5的依赖注入
- 4.4.6 传递自定义参数
- 4.4.7 JUnit 5参数化测试
- 4.4.8 内嵌测试类
- 4.4.9 重复测试
- 4.4.10 动态测试
- 4.4.11 分组断言assertAll
- 4.4.12 批量测试
- 4.4.13 利用Maven运行
- 4.4.14 配合Allure生成漂亮的JUnit 5测试报告
- 4.5 TestNG
- 4.5.1 TestNG的使用和运行
- 4.5.2 testng.xml文件与Suite测试
- 4.5.3 与TestNG相关的API
- 4.5.4 TestNG的装饰器
- 4.5.5 TestNG的断言
- 4.5.6 异常测试
- 4.5.7 忽略测试
- 4.5.8 超时测试
- 4.5.9 分组测试
- 4.5.10 依赖测试
- 4.5.11 TestNG参数化测试
- 4.5.12 TestNG报告
- 4.5.13 利用Maven运行
- 4.5.14 配合Allure生成漂亮的TestNG测试报告
- 4.6 测试替身
- 4.6.1 桩对象
- 4.6.2 伪造对象
- 4.6.3 间谍对象
- 4.6.4 模拟对象
- 4.7 利用EvoSuite自动生成测试用例
- 4.7.1 在Eclipse中运行
- 4.7.2 在命令行中运行
- 4.8 变异测试
- 4.8.1 变异测试引出
- 4.8.2 变异测试简介
- 4.8.3 PITest在Eclipse中的安装和使用
- 4.8.4 PITest测试报告
- 4.8.5 修改测试数据
- 4.9 在Jenkins中配置JUnit 4、JUnit 5、TestNG和Allure
- 4.9.1 Jenkins安装和基本配置
- 4.9.2 JUnit在Jenkins中的配置
- 4.9.3 TestNG在Jenkins中的配置
- 4.9.4 Allure JUnit在Jenkins中的配置
- 4.10 习题
- 第5章 Python语言动态自动化单元测试框架
- 5.1 unittest
- 5.1.1 计算器案例
- 5.1.2 unittest的装饰器
- 5.1.3 unittest的断言
- 5.1.4 通过parameterized.expand实现参数化
- 5.1.5 测试异常
- 5.1.6 批量运行生成报告
- 5.2 Pytest
- 5.2.1 Pytest安装
- 5.2.2 案例
- 5.2.3 Pytest的装饰器
- 5.2.4 Pytest常用命令行选项
- 5.2.5 Pytest实现并发测试
- 5.2.6 Pytest特有的参数化功能
- 5.2.7 配合Allure生成漂亮的Pytest测试报告
- 5.2.8 在Jenkins中配置Allure Pytest
- 5.3 Python的模拟对象
- 5.3.1 产品代码
- 5.3.2 通过unittest使用模拟对象
- 5.3.3 通过Pytest使用模拟对象
- 5.4 变异测试工具mutpy
- 5.4.1 mutpy的安装
- 5.4.2 mutpy的使用
- 5.5 习题
- 第6章 代码覆盖率工具
- 6.1 C语言覆盖率工具gcov和lcov
- 6.1.1 lcov与gcov的安装和运行
- 6.1.2 lcov报告
- 6.1.3 lcov在Jenkins中的应用
- 6.2 Java语言覆盖率工具JaCoCo
- 6.2.1 JaCoCo在Eclipse中的应用
- 6.2.2 JaCoCo在Maven中的应用
- 6.2.3 JaCoCo在Jenkins中的应用
- 6.3 Python语言覆盖率工具Coverage和pytest-cov
- 6.3.1 Coverage
- 6.3.2 pytest-cov
- 6.3.3 Python语言覆盖率工具在Jenkins中的应用
- 6.4 习题
- 第7章 代码语法规范检查工具
- 7.1 Java语言静态分析工具PMD
- 7.1.1 PMD在Eclipse中的配置
- 7.1.2 PMD在Maven中的配置
- 7.1.3 PMD在Jenkins中的配置
- 7.2 Python语言静态分析工具flake8和pylint
- 7.2.1 flake8
- 7.2.2 pylint
- 7.2.3 flake8和pylint在Jenkins中的应用
- 7.3 多代码语法规范检查平台SonarQube
- 7.3.1 安装JDK
- 7.3.2 SonarQube支持的数据库
- 7.3.3 SonarQube
- 7.3.4 安装sonar-scanner
- 7.3.5 SonarQube的配置及应用
- 7.3.6 SonarQube在Jenkins中的配置
- 7.4 习题
- 第8章 TDD案例
- 8.1 斐波那契数列
- 8.1.1 初始化
- 8.1.2 第一次需求变更
- 8.1.3 第二次需求变更
- 8.1.4 第三次需求变更
- 8.1.5 第四次需求变更
- 8.2 完善计算器产品代码
- 8.3 利用Jenkins分析TDD代码
- 8.4 习题
- 附录A 在写作过程中发现开源软件中的Bug
- 参考文献
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。