测试进阶:集成测试、代码覆盖与版本控制挂钩
一、集成测试与系统测试
1.1 测试冗余性
在测试过程中,冗余性是一个常见的现象。每个测试都应该是独立的,我们无需关心测试的运行顺序,也不必在意其他测试是否存在。这种独立性使得一些基础内容会被多次测试,在简单项目中,这种冗余性可能更为明显。
不过,冗余性并不是问题。所谓的 DRY(Don’t Repeat Yourself)原则并不特别适用于测试,多次测试某些内容并没有太大的弊端。但这并不意味着复制粘贴测试代码是个好主意。当看到测试之间存在相似性时,不必惊讶或担忧,但也不能以此为借口。
1.2 集成测试相关问题
以下是一些关于编写集成测试的常见问题:
1. 应该先编写哪些集成测试?
2. 当有一大块集成代码,但接下来要引入的部分完全没有集成测试时,会发生什么?
3. 编写检查代码块自身集成情况的测试有什么意义?
4. 什么是系统测试,它与集成测试有什么关系?
1.3 实践:为自己的程序编写集成测试
可以先为自己的一个程序绘制集成图,然后根据该图为代码编写集成测试。
二、其他测试工具和技术
2.1 代码覆盖
2.1.1 代码覆盖的概念
测试能告诉我们被测试的代码是否按预期工作,但无法告知未测试的代码情况。代码覆盖是一种解决这一缺陷的技术,代码覆盖工具会在测试运行时监控,并记录哪些代码行被执行,哪些未被执行。测试运行结束后,工具会生成一份报告,描述测试对整个代码体的覆盖程度。
虽然期望代码覆盖率接近