第1章 开发者测试概述 1
1.1开发者与软件测试 1
1.1.1测试和调试 1
1.1.2开发者测试 3
1.1.3 PIE模型 4
1.2开发者测试方法与技术 6
1.2.1静态测试与动态测试 6
1.2.2黑盒测试与白盒测试 8
1.2.3失效重现 9
1.3开发者测试工具 9
1.3.1静态测试扫描工具 9
1.3.2测试覆盖分析工具 12
1.4开发者测试趋势 14
1.4.1软件开发和运营困境 14
1.4.2 DevOps介绍 16
1.4.3 DevOps中的开发者测试 17
1.5慕测开发者测试 19
1.6小结 27
习题1 28
第2章 程序静态分析 29
2.1程序静态分析概述 29
2.1.1代码评审 30
2.1.2结构分析 31
2.2程序流程分析 32
2.2.1控制流分析 32
2.2.2数据流分析 33
2.3符号执行 35
2.3.1静态符号执行 36
2.3.2动态符号执行 38
2.4编程规范和规则 39
2.5程序静态分析工具 42
2.5.1工具简介 42
2.5.2工具安装与评估 42
2.6小结 48
习题2 48
第3章 白盒测试 50
3.1逻辑覆盖测试 50
3.1.1语句覆盖 52
3.1.2分支覆盖 54
3.1.3条件覆盖 56
3.1.4条件/判定覆盖 58
3.1.5修正条件/判定覆盖 61
3.1.6条件组合覆盖 63
3.2路径覆盖测试 65
3.2.1环复杂度 65
3.2.2基本路径覆盖 66
3.2.3主路径覆盖 69
3.2.4循环结构测试 72
3.3小结 74
习题3 74
第4章 程序插桩与变异测试 77
4.1程序插桩 77
4.1.1程序插桩概述 77
4.1.2程序插桩示例 78
4.1.3程序插桩工具JaCoCo 79
4.2变异测试 84
4.2.1变异测试概述 84
4.2.2变异测试方法 85
4.2.3变异测试工具PITest 89
4.3小结 91
习题4 91
第5章 单元测试 94
5.1单元测试概述 94
5.2单元测试框架 95
5.3单元测试内容 96
5.3.1算法逻辑 96
5.3.2模块接口 97
5.3.3数据结构 97
5.3.4边界条件 98
5.3.5独立路径 98
5.3.6错误处理 99
5.3.7输入数据 99
5.3.8表达式与SQL语句 100
5.4慕测单元测试实例 100
5.5小结 102
习题5 103
第6章 集成测试 105
6.1集成测试概述 105
6.1.1集成测试过程 106
6.1.2集成测试缺陷类型 107
6.2集成测试分析 110
6.3集成测试策略 112
6.3.1一次性集成与增量式集成 112
6.3.2自顶向下与自底向上集成 114
6.3.3基于调用图的集成 117
6.3.4其他集成测试策略 118
6.4小结 124
习题6 124
第7章 JUnit基础 127
7.1一个JUnit实例 127
7.2注解 132
7.3测试类与测试方法 135
7.3.1 Assert 135
7.3.2 TestCase 139
7.3.3 TestResult 141
7.3.4 TestSuite 142
7.4错误与异常处理 143
7.4.1错误和异常 143
7.4.2异常处理 144
7.5批量测试 146
7.5.1参数化测试 146
7.5.2打包测试 149
7.6小结 150
练习7 150
第8章 JUnit深入应用 152
8.1匹配器 152
8.2 JUnit测试进阶 154
8.2.1 Controller测试 154
8.2.2 Stup测试 155
8.2.3 Mock测试 159
8.2.4 Private测试 162
8.3 JUnit集成 165
8.3.1 JUnit-Ant集成 165
8.3.2 JUnit-Maven集成 169
8.4小结 171
练习8 171
附录 慕测科技——开发者测试平台 172
参考文献 192