1.为什么要TDD?TDD的优点?
1.高效地保证软件质量,提高代码可维护性、健壮性。
2.表现当前的开发进度,让开发者轻松地掌控编码过程。
2.TDD是什么?
TDD(Test Driven Development)测试驱动开发是一种开发方式。 它要求我们在编写功能代码前,首先编写测试代码来验证将要实现的功能,然后在编写功能代码直到测试通过。 并且在每次重构或改动代码后都要保证之前所有的测试都能通过。
3.如何TDD?
1. 确定实现某功能所需的所有检查项
2. 取一个检查项,编写出对应的自动化测试代码
3. 运行该自动化测试,并先修复出现的编译(方法未定义等..)错误
4. 可以先用不合理的方式快速实现该检查项,使该自动化测试通过
5. 重构优化该检查项的实现代码,直到满意为止,并再次让自动化测试通过
6. 重复上述2~5步,直到完成整个功能
7. 推送代码前运行项目中所有的测试,保证测试全部通过后再推送代码
也可通过Git hooks、GitLab-Runner、GitLab Webhooks、Jenkins等工具实现强制在运行测试通过后再推送、合并代码
4.谁来TDD?
最好是由开发人员自己来写测试,以便自己掌控实际开发进度及速度。当然如果能让团队其他成员来 review 测试代码,效果可能会更好。其次可选择由专业测试人员来编写测试代码。
5.在哪里TDD?
可以选择对以下目标进行测试:
函数、组件、接口、用户界面、验收标准、兼容性、安全性、性能(负载、压力、并发)
6.TDD到什么程度?
可能是由你所在的团队来决定项目中测试覆盖的强度,这里只提供测试覆盖率的对比:
语句覆盖 < 判定覆盖 < 条件覆盖 < 判定-条件覆盖 < 条件组合覆盖 < 路径覆盖