持续发酵的TDD

TDD系列

Posted by Bruce Wong on July 15, 2022

今年有机会在团队中尝试一系列工程实践,TDD是最基本也是最有效果的一个。在之前说的接手一个已存在系统维护,并增加测试代码之后,逐步开始添加更多的测试,而TDD的好处一直在持续发酵。今天就分享一下我的真实感受。 在最近一个半月,我告别单兵作战,加入一个3年工作经验的研发和我一起来维护当前系统。而TDD的效力持续发酵中。

  1. 接手产品速度很快 通过测试来做为抓手,熟悉当前逻辑更有条理性。而且测试作为或文档,比注释更新及时,并可以更快的给修改提供反馈。

  2. 大胆修改code加速队产出 新加入的成员因为有测试的覆盖更敢于对代码进行修改。甚至可以和其他第三方SDK团队讨论需求改进,并进行联调。

  3. 开始质疑修改业务逻辑单没有测试问题的场景 这块其实是TDD的一个范例,但是对于处于TDD转型过程中的团队成员来说,意识的转变已经是很不错的了。当开发改动一些代码之后,他发现测试都通过了,但是这段代码其实是修改了已有业务逻辑,应该添加新的测试或者导致已有测试错误。没有修改已有测试,但测试通过的时候,大家会思考并验证测试逻辑,保证测试始终可以覆盖并保证业务逻辑的正确性。而这在以往是不太可能的。也可见测试对Team的认可程度。

  4. 快速定位问题范围 以往当涉及到调用第三方SDK的时候,一旦出现问题,无法快速定位是SDK的问题还是我们调用SDK前业务逻辑出现了哪些bug。有了测试之后,对SDK的测试能够让问题确定更简单,只要跑一下SDK相关的测试,就可以确定是否是SDK出了问题。

践行敏捷实践,让工作变得更美好。欢迎关注我的公众号,交流落地经验。