2.1 单元测试应该谁来写?

GreyZeng GreyZeng 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

在《构建之法》第二章,对于单元测试,有这样一段描述:

单元测试必须由最熟悉代码的人(程序的作者)来写。
代码的作者最了解代码的目的,特点和实现的局限性。所以,写单元测试没有比作者更适合的人选了。

从我目前的经验和经历来看,假如我作为某个事物(不一定是代码)的作者,自己找自己的错误往往会有一种“我没有问题”的心理暗示,而帮别人做一些检查(也不一定是代码)时,因为自己相对作者来说是一个“傻子”,可能都没有理解他搞这个要做什么,所以更容易去给出一些作者从来没有考虑过的“用例”。“当局者迷,旁观者清”大概是这个道理吧。

最近我在一项工作上面临其他同学的检查,在这个期间我们工作小组共同完成的工作被其他组的同学谨慎检查后提出了几十个问题。我个人的体会是,因为我自己预先在心里给这个事情的前提条件设定了一些“期望”,而这些“期望”并不为其他人所知,所以其他人更能 hack 我。

我认为这种检查,和写单元测试属于一类事情,应该拥有类似的经验教训可以吸取,所以我目前觉得单元测试未必要交完全交给最熟悉代码的人来写。熟悉代码的人,比如作者,尽可能地去覆盖自己现有的路径;其他不太熟悉代码的人,可以在原有的单元测试上做补充工作,这些人由于有一个学习的过程,所以思路不是纯白盒测试,而是“从黑逐渐到白”盒测试,这样容易发现诸如原有代码的路径划分过于“粗糙”的一些问题。
————————————————
版权声明:本文为CSDN博主「战晨曦-18373466」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BUAA_Wander/article/details/123433306

...全文
评论 24
收藏 已收藏
分享
返回顶部
GreyZeng
构建之法 606 成员 524 内容