@
index90 对于“业务系统是否应该写测试”,我觉得我们都是一致的,不写测试带来的都是短期的时间收益,和长期的整体研发效能损失。所以对于“为了开发速度牺牲质量——不写测试”,我也是觉得不可取的。
但是我更想知道的是“ [业务] 系统里只写 E2E 不写单元来达到时间和收益的最佳 tradeoff”是不是合适的?
我举一个量化的例子
我假设写 E2E 测试能 COVER 90%的业务 BUG,需要花费 1 个单位的时间
如果我再补上单元测试,能再补上 9.9%的业务 BUG,但是需要额外花费 1 个单元的时间
那么此时我认为,只写 E2E,不写单元是比较划算的。
这里有两个问题
1. E2E 测试能不能 COVER 90%的业务问题?
2. E2E 测试环境的搭建是否真的比单元测试简单?
其中
1.我觉得对于中小系统都是适用的,写完正常流和异常流的 E2E,我认为能够覆盖 80 90 的问题。
2. E2E 的测试环境,如今在各种中大型开发团队,比如阿里,都是日常、预发、线上,三套或以上环境 ,天然就有公司准备好的环境,不需要你再去搭建什么,所有的系统都遵守了这个规则,所以在中大型团队,我认为这个没什么成本。在小型团队,那可能写不写测试都是问题了。
综合来说,我想说的观点,一句话就是
“在大部分非核心中小型系统里,只写 E2E 测试是权衡了效率和质量的好选择”