TDD
程序员文章站
2022-07-14 20:10:55
...
上次是敏捷,这次说说TDD。
TDD现在的路子不对,讲的再怎么天花乱坠也还是单元测试的路子,实际上在业务系统的开发中作用未必如所说的那么明显,否则这么好的东西也不可能推广的这么困难。
业务系统的核心是数据,开发过程是数据驱动的,在一开始做开发设计的时候,用例和场景应建立在数据的基础之上,粒度在服务这一层就够了,然后逐步细化。单元测试这个层级粒度太小,做得再多,也不能保证一个完整业务跑的是不是正确。
那么什么才是正确的TDD呢?站的角度要高一点点,层次也要高一点点。
TDD不应该用现在这样的套路,而是应该基于功能,将测试数据和业务代码、测试代码分开,在项目的一开始就由业务顾问负责,组织设计、开发人员等等等等一起来设计、完善测试场景和测试数据,并且随时和业务客户来审核验证。
测试场景和测试数据是TDD的关键,而不是写多少的测试代码。
TDD现在的路子不对,讲的再怎么天花乱坠也还是单元测试的路子,实际上在业务系统的开发中作用未必如所说的那么明显,否则这么好的东西也不可能推广的这么困难。
业务系统的核心是数据,开发过程是数据驱动的,在一开始做开发设计的时候,用例和场景应建立在数据的基础之上,粒度在服务这一层就够了,然后逐步细化。单元测试这个层级粒度太小,做得再多,也不能保证一个完整业务跑的是不是正确。
那么什么才是正确的TDD呢?站的角度要高一点点,层次也要高一点点。
TDD不应该用现在这样的套路,而是应该基于功能,将测试数据和业务代码、测试代码分开,在项目的一开始就由业务顾问负责,组织设计、开发人员等等等等一起来设计、完善测试场景和测试数据,并且随时和业务客户来审核验证。
测试场景和测试数据是TDD的关键,而不是写多少的测试代码。