拥抱TDD吧,节省30%开发时间
Posted 我爱看明朝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拥抱TDD吧,节省30%开发时间相关的知识,希望对你有一定的参考价值。
拥抱TDD吧,节省30%开发时间
目标: 改变大家对单测浪费时间的认知
解决痛点
1. 开发过程中重复准备数据
2. 避免开发者修改数据库数相互干扰
3. 避免修改代码逻辑引入bug
4. 节省后续维护的时间
TDD介绍
TDD:test-driven-development即测试驱动开发,
是指在实际开发逻辑代码前,先写好测试用例。
整个TDD开发流程:
开发(定义顶层抽象)-> 编写用例 -> 准备数据 ->跑用例->失败->开发->跑用例->成功->交付
非TDD开发
开发->手工测试->失败->开发->手工测试->成功->交付
传统开发模式与TDD的比较
对比两种开发模式,
传统:
传统耗费时间 = 开发代码 + 测试次数 * 每次覆盖场景数 * 准备一个场景需要的时间
测试次数 = 开发过程中失败次数 + 测试打回 + 后续迭代次数
时间指数级增长:每次测试都需要准备全场景的数据,如果一次不成功需要准备多次
TDD:
TDD耗费时间 = 开发代码 + 准备数据覆盖场景数 * 准备一个场景需要的时间
时间线性增长(每次只需要准备本次新增的场景数据)。
测试次数 = n
每次覆盖场景数 = x
准备一个场景需要的时间 = m
理想状况下(每次修改测试都是一次过):
节省时间 = 传统耗费时间 - TDD耗费时间 = n*x*m - m*x = (n-1) * (m * x)
所以从上面可以看出,使用TDD开发相比传统的开发,在最开始开发的时候就已经节省了时间(每次验证,不需要重复准备数据),
后续每次修改逻辑,都省了时间。
实行TDD的必要条件
- cicd
- 预备数据的工具(data-uploader工具)
以上是关于拥抱TDD吧,节省30%开发时间的主要内容,如果未能解决你的问题,请参考以下文章
SAE 助力「海底小纵队学英语」全面拥抱 Serverless,节省 25% 以上成本