问答 大家公司里面,单元测试是开发写还是测试写?

陈恒捷 · 2017年02月15日 · 最后由 Lorance Wang 回复于 2018年11月04日 · 3538 次阅读

背景

公司正准备推行单元测试,但在单元测试应该由开发写还是测试写这方面,引起了一些讨论。个人觉得这个问题还是比较有意思的,所以也放在这里大家一起讨论下。

开发写单测

  • 优:开发对代码最熟悉,而且开发技能也强,开发自己写单元测试效率上和覆盖率上都比较高。而且单元测试有时候需要开发对代码进行部分重构才方便进行,开发自己做这些重构也比较顺手。

  • 缺:开发平时写业务代码就忙不过来了,哪有时间写单元测试?而且大部分开发没有太好的测试思想,单元测试可能只是写个最简单的用例就完了,最终可能单元测试通过,但基本的功能还是有问题,这样的单测没有太大作用。

测试写单测

  • 优:测试有比较好的测试思想,可以更好地保证用例的覆盖。而且通过写单测测试能更好地了解具体代码结构、流程,对于后续的业务测试也有利。

  • 缺:有比较好代码能力的测试人员不多,而且测试对代码没有开发熟悉,遇上为了可测性需要重构的时候还是得开发花时间配合。效率上不如开发自己写。

大家的观点如何?或者方便的话分享下大家公司中单测是开发还是测试写的?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 27 条回复 时间 点赞

单测开发写,测试可以提供培训和测试框架等支持。

开发写

我们这边也是开发写,不过这事具体情况具体分析,如果测试人员配比足够,可以让测试做

小公司,服务端有规定强制写,是开发写,客户端没看到。但是看了下,基本上是简单的正向流程,调通就算了。

单元测试一定是开发自己写的。

开发写,测试可关注覆盖率

同意 7 楼说法,可以借助静态代码扫描工具来关注覆盖率。但,开发人员基本都只写了很简单的正向操作,应付下 KPI(自家公司);这种时候就需要测试出马,推动这些

单元测试本身就属于开发活动的一部分,可以被看做是开发人员对自己产出的单元级别的 “确认”。在 TDD 中,单元测试是作为设计的 “验收标准” 而存在,那就更有理由由开发人员在开始开发之前完成。

有能力就测试写 测试没能力就不要上单元测试了。
当然也不是说一定是测试写单元用例 但是测试一定要有能力写单元测试 。如果测试能力不足的话 让开发写单元测试只会变成一个需要完成的政治任务

这种东西 产品迭代块和测试资源紧张的情况的话 一般开发写较合适,传统的公司,产品较稳定的公司测试都希望把这一块拿过来作为产出的一部分!

目前我们测试团队正在尝试介入这块内容,效果和产出,还有待观察

#10 楼 @dongdong 你们公司现在是测试在写单元测试吗?具体是怎么做的?

#12 楼 @xushizhao 赞,后面问下你那边效果如何

#13 楼 @chenhengjie123 我现在不深入到具体项目里,不过以前单位的单元测试是开发做的,但是因为测试没能力鉴定测试结果 所以基本开发都是随便搞个报告就结束了

测试接入比较好,不会可以学;我这边也正在做,开发免费教学

😂我们这边架构师写的一些单测 case,用到策略模式,抽象类写法,测试跟进学习,自己成长还是很大的

—— 来自 TesterHome 官方 安卓客户端

这个问题提了一两年了,开发还是不写,测试更没机会介入。

我们公司功能都不能按期完成,让他们写单测,至少我没见过哪个项目组开发写过单测,至于测试人员,我们目前的做法是用静态代码扫描工具协助完成一部分检查,主要目的还是要快速、准确、有效。让测试人员写单测,我上家公司试过,ROI 非常低,测试开发比过高,收效远远低于预期,且白盒测试人员难招。

目前我们公司单测是开发在研究和写的。
我们的测试会去关注其覆盖率等内容。

#20 楼 @Anikikun 我们现在也打算这么干,不过测试也会一起参与和提供一些支持咯,相当于开发是主力,测试打辅助。

#18 楼 @jet 这个要靠老大觉悟了

#19 楼 @simple 关于没时间写单测这点,我觉得根本原因是没有重视起单测,没有预留时间去做单元测试。至于测试开发比过高,不知道能不能说细一些?

我们目前打算是找测试开发先和开发一起参与,开发主力,测试辅助,目前其实也没有专职的白盒测试,还是在探索阶段。

testly 回复

特别同意你的说法,迭代快的公司,基本上都是正反走通就算了,基本上都是开发自己写

测试要有写单元测试的能力,但是一定不要去写单元测试,因为如果测试负责写单元测试,你会发现代码根本就是不可测的,如果开发不自己写单元测试,他在开发代码的时候就不会考虑测试的情况,从而导致其开发的代码无法被测试,这也是为什么要想把单元测试搞好,一定要推 TDD

我们公司用 Winams 做单元测试,一般开发做,来不及的时候,测试做.

49875183 回复

你好,问一下测试同学参与单元测试的编写效果如何?我最近也有所打算在公司做类似的提议。谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册