Embrace TDD and save 30% development time

Embrace TDD and save 30% development time

Goal: Change everyone’s perception of single testing as a waste of time

Solve pain points

1. 开发过程中重复准备数据
2. 避免开发者修改数据库数相互干扰
3. 避免修改代码逻辑引入bug
4. 节省后续维护的时间

Introduction to TDD

TDD:test-driven-development即测试驱动开发,
是指在实际开发逻辑代码前,先写好测试用例。

整个TDD开发流程:

	开发(定义顶层抽象)-> 编写用例 -> 准备数据 ->跑用例->失败->开发->跑用例->成功->交付

非TDD开发

	开发->手工测试->失败->开发->手工测试->成功->交付

Comparison between traditional development model and TDD

对比两种开发模式,

传统:
	
	传统耗费时间 =  开发代码  +  测试次数 * 每次覆盖场景数 * 准备一个场景需要的时间 
	
	测试次数 = 开发过程中失败次数 + 测试打回 + 后续迭代次数
	
	时间指数级增长:每次测试都需要准备全场景的数据,如果一次不成功需要准备多次
	
	
TDD:
	
	TDD耗费时间 = 开发代码 +  准备数据覆盖场景数 * 准备一个场景需要的时间 
   
	时间线性增长(每次只需要准备本次新增的场景数据)。

测试次数 = n

每次覆盖场景数 = x

准备一个场景需要的时间 = m
	
理想状况下(每次修改测试都是一次过):

节省时间 = 传统耗费时间 - TDD耗费时间  = n*x*m - m*x =  (n-1) * (m * x)


所以从上面可以看出,使用TDD开发相比传统的开发,在最开始开发的时候就已经节省了时间(每次验证,不需要重复准备数据),
	后续每次修改逻辑,都省了时间。

Necessary conditions for implementing TDD

- cicd 
- 预备数据的工具(data-uploader工具)

Guess you like

Origin blog.csdn.net/u013565163/article/details/128048492
TDD