公司正准备推行单元测试,但在单元测试应该由开发写还是测试写这方面,引起了一些讨论。个人觉得这个问题还是比较有意思的,所以也放在这里大家一起讨论下。
优:开发对代码最熟悉,而且开发技能也强,开发自己写单元测试效率上和覆盖率上都比较高。而且单元测试有时候需要开发对代码进行部分重构才方便进行,开发自己做这些重构也比较顺手。
缺:开发平时写业务代码就忙不过来了,哪有时间写单元测试?而且大部分开发没有太好的测试思想,单元测试可能只是写个最简单的用例就完了,最终可能单元测试通过,但基本的功能还是有问题,这样的单测没有太大作用。
优:测试有比较好的测试思想,可以更好地保证用例的覆盖。而且通过写单测测试能更好地了解具体代码结构、流程,对于后续的业务测试也有利。
缺:有比较好代码能力的测试人员不多,而且测试对代码没有开发熟悉,遇上为了可测性需要重构的时候还是得开发花时间配合。效率上不如开发自己写。
大家的观点如何?或者方便的话分享下大家公司中单测是开发还是测试写的?
单测开发写,测试可以提供培训和测试框架等支持。
开发写
我们这边也是开发写,不过这事具体情况具体分析,如果测试人员配比足够,可以让测试做
开发写
小公司,服务端有规定强制写,是开发写,客户端没看到。但是看了下,基本上是简单的正向流程,调通就算了。
单元测试一定是开发自己写的。
开发写,测试可关注覆盖率
同意 7 楼说法,可以借助静态代码扫描工具来关注覆盖率。但,开发人员基本都只写了很简单的正向操作,应付下 KPI(自家公司);这种时候就需要测试出马,推动这些
单元测试本身就属于开发活动的一部分,可以被看做是开发人员对自己产出的单元级别的 “确认”。在 TDD 中,单元测试是作为设计的 “验收标准” 而存在,那就更有理由由开发人员在开始开发之前完成。
有能力就测试写 测试没能力就不要上单元测试了。
当然也不是说一定是测试写单元用例 但是测试一定要有能力写单元测试 。如果测试能力不足的话 让开发写单元测试只会变成一个需要完成的政治任务
这种东西 产品迭代块和测试资源紧张的情况的话 一般开发写较合适,传统的公司,产品较稳定的公司测试都希望把这一块拿过来作为产出的一部分!
目前我们测试团队正在尝试介入这块内容,效果和产出,还有待观察
#12 楼 @xushizhao 赞,后面问下你那边效果如何
#13 楼 @chenhengjie123 我现在不深入到具体项目里,不过以前单位的单元测试是开发做的,但是因为测试没能力鉴定测试结果 所以基本开发都是随便搞个报告就结束了
测试接入比较好,不会可以学;我这边也正在做,开发免费教学
😂我们这边架构师写的一些单测 case,用到策略模式,抽象类写法,测试跟进学习,自己成长还是很大的
—— 来自 TesterHome 官方 安卓客户端
这个问题提了一两年了,开发还是不写,测试更没机会介入。
我们公司功能都不能按期完成,让他们写单测,至少我没见过哪个项目组开发写过单测,至于测试人员,我们目前的做法是用静态代码扫描工具协助完成一部分检查,主要目的还是要快速、准确、有效。让测试人员写单测,我上家公司试过,ROI 非常低,测试开发比过高,收效远远低于预期,且白盒测试人员难招。
目前我们公司单测是开发在研究和写的。
我们的测试会去关注其覆盖率等内容。
测试要有写单元测试的能力,但是一定不要去写单元测试,因为如果测试负责写单元测试,你会发现代码根本就是不可测的,如果开发不自己写单元测试,他在开发代码的时候就不会考虑测试的情况,从而导致其开发的代码无法被测试,这也是为什么要想把单元测试搞好,一定要推 TDD
我们公司用 Winams 做单元测试,一般开发做,来不及的时候,测试做.