1 目标
直接目的:是为了提高代码质量,减少自己的代码出现线上bug。
实现思路:覆盖代码实现的路径。保证每条路径都能覆盖到,并且值在预期之内。
长远意义:保证代码在修改bug前后、重构前后的逻辑一致。更像是留给后期维护的代码逻辑文档。
温习下大学的知识。
这里写图片描述
测试过程 | 参与人 | 测试方法 |
---|---|---|
单元测试 | 开发 | 白盒(语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖) |
集成测试 | 开发或自动化测试 | 白盒+黑盒 |
系统测试 | 测试组 | 黑盒 |
验收测试 | 客户 | 黑盒 |
这里比较值得说的是,单元测试以及集成测试的边界。
单元测试只关注自身程序内部逻辑结构。以实现代码中调用的其他接口已稳定为前提,所以才会有“伪造对象”之说。
2 计划
2.1 相关技术
步骤 | 实现思想 | 相关工具 |
---|---|---|
1.实例化对象 | stub (state-base)、mock (function-base) | mockito、easymock |
2.执行目标代码 | Spring-Test 、Junit 、TestNG | |
3.监测代码执行覆盖率 | Cobertura 、Jacoco | |
4.形成报告 |
2.2 问题
Q:配置文件相关(比如dao.xml / log4j.properties等)等是否需要测试?如何测试?
A:
2.
2.3 规则
1.创建实例比较复杂或者要求比较高(需要连接特定数据库等)的实体要Mock