公司要推行单元测试,但是执行太过于困难,大部分同事不支持怎么办?

66 天前
 GallifreyCAR

公司想定了新的开发规则(为了收归测试人手,减少测试人力的投入,降本增效),推行单元测试(根据不同项目等级,覆盖率到 50-70%)

但是目前我们使用了 go 全局变量的框架,没有使用依赖注入,没有使用接口和抽象,导致非常难写单测

做了一下同事间的调研,大部分同事都不愿意写单测,理由大概是

领导让我看一下这个事情怎么做,我尝试了一下,得出了三种方案。

  1. 使用 sqlmock/连接内灰数据库来适配当前框架,可以做到没有外部调用系统的服务 mock 测试,但是遇到要调用外部服务的情况,无法 mock ,只能临时注释掉(因为没有使用依赖注入)。但是连接数据库不能算 mock ,用 sqlmock 要写的测试代码又太多,反对者比较多

  2. 改造当前框架,拆分抽象层和实现层,使用依赖注入。这样单测想怎么写就怎么写就好了,但是增加大家平时要写更多代码,也有不少反对者

  3. 听从同事建议,反馈领导,不推行单测,自行自测。(全靠自觉性,感觉领导层都不会同意

对此大家有什么比较好的建议吗?

另外最近在学英语,有什么英语读物推荐也可以分享一下(摸鱼/晨间日常)

13311 次点击
所在节点    职场话题
153 条回复
hellopz
65 天前
@zuosiruan 我们降本增效研发剩下一半,测试全裁了,研发自己解决测试
Bluecoda
65 天前
国内就是这样,大部分都是鄙视测试的人,这些人大多都是落伍并且即将被淘汰的群体

测试不能消灭 bug ,但是可以防止代码被改坏。其价值不言而喻,在开发新功能并且动到老代码的时候,改坏马上就能知道,这里可以节省多少时间成本?

我几乎可以简单粗暴认为不屑写 test 的人=水平很烂,test 都不写,还能写什么东西?尤其 AI 时代,让其帮写测试不要太简单。以前写 rails 团队硬性要求必须要有基本 test ,也不要不过度 test 。现在写 python ,我一样要求团队写 test ,没有借口,不写就滚。

可能这么说有人不服,但是 AI 驱动开发的时代,写测试,让 AI agent 自己运行并且修改逻辑代码,这本身就是一个 best practice ,不用?等着被新人新技术淘汰呗
ShawnLeex
65 天前
就我的关注点在楼主想要英语读物推荐吗哈哈,话说楼主找到了吗,同找
irrigate2554
65 天前
想要代替测试人员的话单元测试没用,得写集成测试和 UI 测试
lthon
65 天前
@winRain 平均一天 100 个的话,一年按 250 天算,也要 100 年
LazyYum
65 天前
单测想要落实,必须融入到需求迭代的工作流程里,如果之前是快糙猛的流程,那不但不会减少时间,还会增加开发时间。
Rorysky
65 天前
你说的 依赖注入 和 单元测试没什么必然关系呀

依赖注入 只是 模块解耦 的一种方式
icyalala
65 天前
✅单测可以提升代码质量
❌单测可以降低人力成本
dingyaguang117
63 天前
长期主义的话,还是要改造框架。接口的一个重要应用就是单侧
dingyaguang117
63 天前
可测试性也是评价代码优劣的一个标准,虽然要改造很多,但是如果是长期维护的项目是值得投入的。 最最重要的是,领导一定要意识到改造是要投入人力的。我想目前大家抵触的原因是: 原有的业务需求不变,额外增加单侧工作。 所以这个是最重要的矛盾
wxiao333
63 天前
国内的互联网公司,比如字节阿里,确实很多项目没有单元测试的
kkeep
63 天前
太简单了。真不懂为什么你们觉得难
wangxinyu
60 天前
主要还是接口测试,业务逻辑代码不需要测试,所有开发多提供接口才是重要的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1153924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX