我想知道我们在大型产品中遵循“测试优先设计”方法所获得的可行性和实际收益。
尽管我坚信在开始编码之前确定范围,但对于更大的产品,我真的不确定TDD是否成立。
较大产品的实际问题:
1. 产品的大小使得维护所有测试用例变得更加困难。
2. 单元边界逐渐变得不那么明确,有时会在不同单元之间产生不希望的耦合。
3. 测试一个单元可能不足以满足所开发结构的功能本身(紧密耦合的可能结果)
4. 最初的思考过程和愿景可能会随着产品大小而被稀释。这反过来又淡化了单元的定义,测试用例变成了单纯的过程需求,而不是成为一段代码 的守护者。
我的观点是,这种产品增长的情况是停止产品的增长并删除不需要的部分。开始清理产品以仅具有定义产品的那些功能。已经开发或正在开发的其他功能可以作为插件提供。产品的这些核心功能集需要使用一组强大的单元测试用例来保护,这些用例单独定义了单元的功能。
还有什么建议吗?我很想听听你们的意见,因为我目前正面临这种单元耦合的情况和实际上并没有多大作用的冗余测试用例。所有这些都是由于产品的规模几乎每天都在增长而引入的。