读《测试驱动开发》 2022-07-06 11:08 看到王垠的《测试驱动开发》:http://www.yinwang.org/blog-cn/2013/04/07/test-driven-dev 这篇2013年的文章之后,心里有点看法记录下来。 就程序员自己写单元测试来说,不论是否“驱动”开发,我都觉得这是一件不值得推广的事情。让写代码的人写代码测试自己写的代码,这本身就是一件很搞笑的事情。 不否认这确实可以检查出部分代码错误,可是也仅仅是很明显的“部分错误”,我当然不反对有些人用这方法检查自己的代码,可是这么浪费时间且低效的方法不应该被捧做编程界的教条一般被到处宣扬且在公司这样一个需要赚钱需要效率看中结果的地方推广。 这方法的坏处王垠已经在文中说了,不再重复。我认同王垠的观点:程序是需要清晰严密的“逻辑推理”来证明它的正确性的,可是后半部分感觉王垠说的太玄乎了。太过注重或依赖“清晰的逻辑推理”就像太过相信单元测试一样不可靠且浪费时间。这都是一种编程人员主观的思维,很容易陷入误区。这和我曾经陷入对“心流”的误区中一样。 检验代码最好的方法还是需要测试人员介入,专业的白盒黑盒能够做到使用场景中的绝大部分事情。剩下的除了上线让时间来检测,任谁也无法做到。 测试驱动开发,这个概念被提出后好像最早是由Google大规模实践推广的,然后就被很多公司、编程人员追捧,一看到Google也推广这种概念,就说“啊,好好好,很好,我们也要这样的实践”,这也是一种很简单的随大流错误,适合Google的方法论并不一定适合其他公司,就像一段代码可以有很多业务解释一样,一种方法论应用到不同行业不同量级的公司,也会产生不同效果。这样的盲从行为实在不可取。 --END--
发表评论