1
Macolor21 2022-08-26 09:19:48 +08:00 via iPhone 6
标题党,这东西也分项目组的啊
|
2
GentleFifth 2022-08-26 09:21:09 +08:00 via Android
业务变化快,review 和单测成本太高,适当放弃也是没什么问题,毕竟代码是死的人是活得。
|
3
liuidetmks 2022-08-26 09:21:55 +08:00
字节没有快速迭代能力也达不到今天的规模
互联网,就是要快。稳定反而没那么重要? |
4
INCerry 2022-08-26 09:26:31 +08:00
要标准和规范软件开发流程和软件工程实战,去外企吧,我朋友那单元测试覆盖率 80%+
|
5
golangLover 2022-08-26 09:27:00 +08:00 via Android
只要招的人水平足够,其实有 80 / 9 0 的准确度没有问题
|
7
yyysuo 2022-08-26 09:27:30 +08:00 18
写得再精致,业务一变,全部废弃。
|
8
janus77 2022-08-26 09:34:49 +08:00
正常,就算是外企的敏捷开发也有啊,并不是每个迭代都有单测,也有大版本统一做一次单测的。更别提国产的纯互联网企业了,这不是家常便饭么
|
9
zhuweiyou 2022-08-26 09:36:57 +08:00 1
顶多架构组写写吧...业务开发还写单测? 等你测试写完 需求都变了好几回了.
|
10
yangxin0 2022-08-26 09:43:09 +08:00 via iPhone 3
有啥大惊小怪的,十年前我在腾讯的时候,写完自测一下就发布到线上环境,然后去吃饭了。
|
11
frank1256 2022-08-26 09:43:43 +08:00
review 啥呢, 等你 gerrit 看出问题的时候, 我代码都提交好几版了, 前端等测试环境都急死了, 我们直接自己打包偷偷上去换包
|
12
HackerJax 2022-08-26 09:45:48 +08:00 via iPhone
复杂的业务逻辑写单测基本不可能,例如,过去一年每个月都有订单的客户自动升级为黄金会员,请问怎么写单测?
|
13
whypool 2022-08-26 09:45:55 +08:00 via Android 1
ut 纯面向 kpi ,劳命伤财
|
14
SeaTac 2022-08-26 09:48:21 +08:00 4
我只好奇这人在 fb 和 amazon 都干过为什么要回国
|
15
hahastudio 2022-08-26 09:51:17 +08:00
这些提升项目质量的方法都是看项目和人的
没有什么一定要或者一定不要的 |
16
zhouyg 2022-08-26 09:53:57 +08:00
字节双月 OKR ,比 KPI 还 KPI ,根本不给你写单测的时间啊
|
17
iloveoovx 2022-08-26 09:54:10 +08:00
我记得当年进 fb 参观零食柜里饮料是真的多,瓶装的那种星巴克咖啡之类的随便喝。有个 manager 桌上简直是酒展,威士忌什么的摆满,说一到晚上就开整。食堂也挺多样化的,室内的露天的各式都有。不过这个 youtuber 说一直 wfh 所以估计也没怎么享受到吧
|
18
dreamlike 2022-08-26 09:54:42 +08:00 via Android 1
我们这边确实不怎么写单测 靠在 pre 或者 boe 环境自测,最后找 qa 跑测试看覆盖率,覆盖率过了才能发版,没有后面这一步发流水线的时候 qa 不给点 也就发不了
|
19
BeautifulSoap 2022-08-26 09:56:15 +08:00 via Android
业务变了的话设计业务线上所有层级定义的接口可能都要变,意味着单侧全都要改。如果以 KPI 为导向或者业务变化极快的话,可能需要做出取舍
|
21
zhuangzhuang1988 2022-08-26 10:05:45 +08:00
不是基础设施 单元测试我也不想写。
|
22
cydysm 2022-08-26 10:11:39 +08:00
单元测试浪费生命(错误
|
23
loverg 2022-08-26 10:12:53 +08:00
也不是全部吧,我问了几个那边的朋友,说 cr 和单测已经逐步重视起来了,一些海外团队已经实行基于单测的代码合入检测了
|
24
ufan0 2022-08-26 10:19:02 +08:00
告诉你一个“秘密”,很多人都不会写单测,会写的也是毫无效果甚至错误的~
|
25
chendy 2022-08-26 10:19:35 +08:00
核心业务,基础设施,做
活不过几个月的小功能,做了干啥呢 |
26
dilu 2022-08-26 10:20:11 +08:00
阿节这里注重快速迭代,着重一个快速,一个产品出来,你可能就一两个月的时间去验证结果,做 ab 实验什么的
如果你按部就班,把需求提给外部,自己再慢慢悠悠的写单测 那你的业务早就凉了,2 年都没什么业务结果 而且不仅仅是没有单测,关键是到处都是缝合逻辑和 hack 逻辑 |
27
matrix1010 2022-08-26 10:20:45 +08:00 via iPhone
我很好奇美国的独角兽公司开发写不写测试,至少看以前 twitch 泄露的代码测试还挺多。也许开发不写测试也属于中国特色
|
28
ruiyinjinqu 2022-08-26 10:21:00 +08:00
我们公司刚要求新增代码单元测试 100%,工作量瞬间增加 40%,为了满足单元测试去改业务代码,为了单元测试而单元测试,无语了
|
29
wxiao333 OP 单元测试不写,根本没法 CI 啊,流程是这样的:
DEV 要做开发,就要先领故事卡,俗称开卡,自己选好一张故事卡,拉上 BA 和 QA 去过其中的细节,理清细节,然后才能上手开发,开发完后再拉上 BA 和 QA 去结卡,检查卡中的功能是不是都完成了,有问题就被打回去改,直到 BA 和 QA 觉得完善了,才能关卡。。。 代码质量要求很严格,遵循 TDD ,前端有 lint ,有单元测试(不能偷懒,而且有覆盖率要求),有 e2e 测试(必须写,和 QA 一起看),当你的代码走过这三个流程,提交到公共仓库,CI 自动构建会拉你的代码,再走一遍测试(挂了就要修代码),然后自动发布新版本到 Dev 环境。 你以为这就完了?还有代码嗅探器,时刻在扫描代码仓库,有两个重复的函数不行、重复率太高不行、使用了骚代码去做类型转换之类的不行、空间内有命名重叠不行。。。。这一套下来,再加上 code review ,菜鸟开发每天一半的时间都在改昨天的代码。 项目还有规定,CI 不能红过夜,当天的问题当天要修好。。。。 提交的时候,本地 git hook 会自动跑 lint 和测试,过了之后代码就进远程仓库了,远程仓库会触发 CI ,CI 会自动把本次提交后的代码拉给自己,跑测试、构建、代码质量分析。 所以只要本地测试能过,提交上去后 CI 会自己跑,这个时候开发一边写后面的代码,一边可以观察上一次提交的情况,上一次挂了就排查。 大家都是写一会儿,顺便看下 CI |
30
james2013 2022-08-26 10:33:01 +08:00
可以理解
当你正规按照 Review 和单测时,3 个月完成 1 次大版本,1 个月完成 1 次小版本 不用 Review 和单测,1 个月就完成 1 次大版本,10 天完成 1 次小版本 而且当技术人员水平高时,区别不大 |
31
Daniel17 2022-08-26 10:35:29 +08:00
写测试太费时间了
|
32
lanlanye 2022-08-26 10:37:37 +08:00 via iPhone
我记得之前看人提过他们在海外的情况,重 QA 轻单测,简单来说就是人肉测试
|
33
kaedea 2022-08-26 10:41:35 +08:00 via Android 1
国内因为绩效导向,单元测试和代码审查已经变成开发纯自嗨的模式了。不知道国际大厂怎么搞,但是国内现在是用平价,可稳定运营的人工集成测试和后期 QA 监管来代替这些开发阶段的工作。
|
34
yannxia 2022-08-26 10:43:35 +08:00
分团队,我们火山引擎这边,新人的第一次 MR ,大概要卡上半个月。。。
|
35
forgottencoast 2022-08-26 10:51:28 +08:00
上面评论的基本上都没看完视频吧。。。。
|
36
kera0a 2022-08-26 10:54:07 +08:00 3
我在某支付公司,直接线上服务器改 C 代码,然后 make 上线,唯一做的防范是备份了一下 bin
每次(是的,多次)改我都感觉要去坐牢了 |
37
mango111 2022-08-26 10:58:01 +08:00
怕啥,维护某亿级流量首页,不也是代码单测和 code review 一个都没有。
不慌,挂了也就一个上热搜加大家吃不上饭,讲究的就是胆大心细。 |
39
andyL 2022-08-26 11:11:20 +08:00
希望多一些这种讨论😂
|
40
maotao456 2022-08-26 11:17:52 +08:00
我在港企,每个功能必须写单测,而且一定有人 review 。
别提多舒服了。 |
41
chenxytw 2022-08-26 11:23:31 +08:00 1
不仅仅是字节啊,你猜为什么现在的软件 bug 那么多,别说 CR 和单元测试了,测试团队都快砍没了,现在拿用户当作免费的测试人员都快成主流了.....
|
43
xuanbg 2022-08-26 12:05:02 +08:00
完全可以理解。哪有这个美国功夫去写什么单测啊。哪有人愿意去 review 别人的狗屎代码啊。
|
44
yianing 2022-08-26 12:17:55 +08:00 via Android
看组
|
45
281x1h2ez12 2022-08-26 12:18:22 +08:00
@iloveoovx 饮料是多,但是喝甜的太多了也不好。食堂的话花样确实多,偶尔有个牛排啥的。洗澡间、roof garden 这些看似很 fancy 但用到的不多。
|
46
icyalala 2022-08-26 12:20:22 +08:00
不要说什么单测稳定性,就说快不快吧?
|
47
keith1126 2022-08-26 12:23:26 +08:00
字节的逻辑是,人力成本低,而且员工愿意加班,那么,与其让员工花时间写测试跑 CI ,直接让员工人肉运维,出问题 7*24 oncall 不是更划算也更简单粗暴吗?
|
48
lonenol 2022-08-26 12:28:53 +08:00
写单侧的时间够再开发一个需求了,所以。。
|
49
nothingistrue 2022-08-26 12:32:09 +08:00 3
我更惊讶与楼主为什么会认为字节这样的中国互联网大厂会有正规软件过程。中国互联网大厂,从来都是规模大,小聪明多,但软件工业化程度可能都不如小外包厂。出了互联网行业,到软件行业,才有可能有正规过程的开发,不过实际上完全正规的也不多。
@janus77 #8 不要误解敏捷开发。敏捷开发的测试程度,要远高于传统瀑布开发,可以说没测试就没敏捷。 |
50
msg7086 2022-08-26 12:39:40 +08:00 1
单测我无所谓,但是功能测试集成测试我一定要搞。不写测试等项目滚雪球滚大了以后就等着加班修 bug 吧。
我自己的项目,只要是会跑生产的,一定会有测试覆盖,搞完以后几乎就没有 bug ,也不需要修 bug 。 当然,因为国内的码农不值钱,加班也不用加班费,所以为什么要搞测试呢,让他们加班修就是了。 |
51
zhc 2022-08-26 12:41:22 +08:00
感觉还在蜜月期,等她干满一年被卷废就开始怀念 FB 了,就不会这么委婉客气的表达了。
|
52
kiwi95 2022-08-26 12:47:49 +08:00 via Android
在 tt 经历过新业务,老业务,中台系统,没有一个有单测的。最后改造了一个系统加了比较完整的单测然后跑路了。
字节绝大部分业务代码是没有单测的,代码质量不能说差,只能说混沌一片,没有单测维护所以经常出现一些诡异的 bug |
53
dangyuluo 2022-08-26 12:49:55 +08:00
字节跳动的面试时我面过所有公司中最恶心的一家。。虽然拿了 offer 也不想去
|
54
kiwi95 2022-08-26 12:53:06 +08:00 via Android
字节的测试人员大部分是外包,水平只能说点点点还行沟通也费劲。流水线要 qa 点了才能发布很多时候就是走过场,qa 的集成测试发现不了太多问题反而经常出问题导致发布卡壳。
实际上加了单测后研发的开发体验好太多了,只是单测质量要高。字节的项目要么没有单测要么单测跑不了,要么单测用 boe 的数据和环境,导致单测根本没法保证质量。 |
55
wu00 2022-08-26 12:53:39 +08:00
简单的业务可能就一行执行 insert 的代码,虽然单测写起来也简单,覆盖率还 100%,是不是觉得除了覆盖率没什么其他意义?
复杂的业务不知道大伙写单测是属于哪一种: 主流程走通就行,写一个成功的 case 就行,代码覆盖率可能不达标,[可接受] 代码覆盖率达标,需要写多少个 case 取决于业务上有多少个分支逻辑,[没有进度压力可接受] 代码覆盖率达标且尽可能覆盖到所有逻辑点,理想中的单测,[闲得慌] |
57
AyaseEri 2022-08-26 13:28:07 +08:00
高压连轴转的情况下,Code Review 大多数就是走过场,知道别人写了啥。除非是把调试时的 console.log 代码带上生产这种一眼就能发现的问题。
|
58
Sk8erBoi 2022-08-26 13:35:57 +08:00
学技术真得去软通,code review ,各种测试都有
|
59
ericgui 2022-08-26 13:44:18 +08:00
没有测试的代码,你们晚上睡得好吗
|
60
yaphets666 2022-08-26 13:51:30 +08:00
@Danswerme 当然不需要啦,我记得日本有个事情,股市的涨跌搞混了,好像损失几十亿日元吧,也没事。
|
61
ipwx 2022-08-26 14:02:11 +08:00
这就是迷信大厂了。
要我说字节就是小厂到大厂,身份转变了,管理没跟上。对外宣传算法工程师要负责到上线,很自豪的样子,其实就是管理方式低下,还在小厂的模式没有转过弯。 |
62
murmur 2022-08-26 14:04:03 +08:00
@ericgui 互联网的精髓不就是快速迭代加没有赔偿,所谓的什么两地三机房各种炫酷容灾冗余备份都是停留在课本上,炉石传说据说机房主干线被挖掘机一锅端停服 N 天也是一个赔偿直接叫爸爸
更何况某些大厂还掌握着封号权 |
63
ipwx 2022-08-26 14:04:05 +08:00
算法工程师要负责到上线意味着没有统一的基础设施、算法部署平台,顶多来个 Kubernetes 集群就丢给每个算法组了。是,容器时代、Kubernetes 时代,每个算法组自己搭 Database 成为了可能,但是这样的不专业分工就导致了不可能每个算法组都有完善的质量控制和测试机制。
字节不还发生过实习生删线上模型的傻逼事情么,还不能说明这套体制有问题吗。 |
64
bloomy8 2022-08-26 14:05:16 +08:00
大惊小怪
|
66
holy_sin 2022-08-26 14:35:30 +08:00
业务代码 刚搞完单测 就 AB 负向了
|
67
qeqv 2022-08-26 14:46:22 +08:00
@wxiao333 #29 这个测试流程太强了,我们是直接发布到 DEV ,运营自己用不出问题后,直接生产环境灰度,有问题直接回滚,没人管你代码怎么写的 233
|
68
Jooooooooo 2022-08-26 14:46:57 +08:00
大厂是业务大, 技术的话说不定.
|
69
qeqv 2022-08-26 14:48:31 +08:00
@murmur 游戏公司是这样的,反正游戏资产说是值钱,实际上还不是运营动动手指的事情。而且旧的游戏资源贬值很快,比如炉石,给你发点卡包金币根本不算事,反正新卡包出来你还是得买新的。
|
70
iamqk 2022-08-26 14:50:34 +08:00
人工测试成本更低?
|
71
menc 2022-08-26 14:52:33 +08:00
反而不要这么迷信测试,软件工程在发展,TDD 是过去式了,现在测试在软件工程中的地位在逐渐降低。
|
72
Narcissu5 2022-08-26 14:57:12 +08:00 1
单测这东西对于开发是加速的,因为可以大大缩短测试特别是回归测试的时间。不过楼上也说得对,如果你的老板一天一个想法,基本上开发这边只有做 demo 的时间,测试也就无从谈起了。所以单测的一个隐含条件是业务方得靠谱。
国内的软件开发水平是很差的,可靠性基本是靠人堆出来的,像 whatsapp 那种几十个工程师一亿多用户在中国是不可想象的。 |
73
ah64zzpk 2022-08-26 15:04:32 +08:00
自己不测试,靠 qa 测试没有好结果,qa 不产生 bug ,也不消除 bug ,产生和消除都是开发自己,写的 bug 越多,发现的越晚,消除它们消耗的时间和精力指数级增加,挖的坑永远是自己填。
|
74
xiao109 2022-08-26 15:10:21 +08:00
只要代码变的够快,漏洞就没机会出现
|
75
sy20030260 2022-08-26 15:59:20 +08:00 3
在零单测的国内大厂待过,后面出来创业公司严格单测也搞过,深有体会。
从整个团队的角度,写单测必然是正向收益的。写单测的时间成本真的没有大多数人想象中巨大,项目刚开始写单测可能会占用你 40%-50% 的时间,但随着单测数量变多,有越来越多支持单测的工具方法和示例代码,开发单测的时间会急剧缩短。多花一点时间写单测,省下的是未来大量重复排查、定位问题的时间,绝对的正向收益 但回归到现实中,在国内大厂搞单测覆盖的困境在于,如果和你协作的同事不写单测,只有你自己写,那这样的单测维护起来既困难,而且实际效益也极低。况且,单测终究是一项花费个人的时间精力,但是带来的收益更多却是团队收益的工作。所以可想而之,在国内这种 KPI 导向、排期倒挂的大环境下,没有人会愿意做这种牺牲小我成就团队的傻子 你为了快点上线不写单测,那我还干嘛还吃力不讨好地维护单测呢?最后大家只能被动地选择一种对团队收益更低的方案。说白了也是一种 KPI 导向下的内卷形式 |
76
exonuclease 2022-08-26 16:04:34 +08:00
外企大厂的路过 我们有 UT 的 基础库有覆盖率要求 业务代码凭良心写 e2e 测试也有 甚至页面都有
|
78
Terry05 2022-08-26 16:22:13 +08:00
业务线不做单元测试太正常不过了
|
79
byte10 2022-08-26 16:39:25 +08:00
@ruiyinjinqu 哈哈🤣,有体会,当时因为有 80%的阈值,所以我就干脆生成几个假的 bean.java ,骗过测试覆盖率之后,在下一个版本删除掉这无用的代码。
|
80
xsqfjys 2022-08-26 16:47:34 +08:00
中国并没有几个真正的软件公司,所谓大厂技术牛也不知道是怎么得出这种结论的,面向 KPI 编程怎么会出优秀的软件
|
81
Yuan2One 2022-08-26 16:52:21 +08:00
来华为看看,单侧,集测各种,代码不合规范根本都合不进去
|
82
soupu626 2022-08-26 16:56:52 +08:00
阿里现在都是靠流量回放来跑 case 了吧,基本等于外置单测,但是流量回放跑 case 容易出一些奇奇怪怪的问题,发布的时候设卡点,整个个发布完了才合进 master ,之前都是在 feat 分支上
|
83
wangyzj 2022-08-26 17:24:56 +08:00
这完全取决于业务的实际情况
中国公司的扩张速度 要是再把 review 和 unittest ,就是会把人干死 |
84
shakespark 2022-08-26 17:34:46 +08:00
emmm ,多来一点这种讨论软件工程的帖子
|
85
R6A53X 2022-08-26 17:46:33 +08:00
@chenxytw 你是在开玩笑吗? 拿用户当成免费的测试人员都快主流了?这是哪里让你产生这样的看法? 比较精密的工程软件,TOB 的大型采购,你让用户来做测试?
|
86
essicaj 2022-08-26 18:22:27 +08:00
这没什么好惊讶的,流水的业务需求,写什么单测。这个版本上,下个版本就砍掉了。产品的需求规划很多时候都搞不好,开发写那么精致的代码做什么?
|
87
lwydyby 2022-08-26 18:38:44 +08:00
为什么我们组 要求 80%单测覆盖率+2 个人以上 codereview(approve)
|
88
JounQin 2022-08-26 18:58:34 +08:00 via iPhone
虽然我不喜欢这些大公司,但是离开字节 /阿里你什么都不是。
|
89
chenxytw 2022-08-26 19:58:34 +08:00
@R6A53X 为什么我这么明显的夸张吐槽语你都看不出来我也是无语了。
问我哪里产生这样的看法,我说得很明白了:“为什么现在的软件 bug 这么多。” 我作为用户,在不同的软件上都遇到了蠢到难以置信的 Bug ,只要所在的那个功能被测试人员稍微使用一下,就能发现的浅显程度,都被发布出来,我吐槽一下我被当成了免费测试有问题? |
90
qiaobeier 2022-08-26 20:02:12 +08:00
TikTok SDK 随心所欲改 API 简直了,通知都没有的,流量那么大的平台这点都不保证,要不是能带来很多流量和$$,早就不用你们了,哈哈
|
93
shadeofgod 2022-08-26 22:12:41 +08:00
@seaiaddca #14 点开她 youtube 主页里有,就这视频的前一个,每个人个人规划不一样,很正常
|
94
moonkiller 2022-08-26 23:47:08 +08:00
最晚 8 点半下班…
还能再假点不 字节 80%的人都不可能 |
95
linghutf 2022-08-27 00:05:30 +08:00 via iPad
@nothingistrue 真的是人肉小作坊
|
96
janxin 2022-08-27 06:57:22 +08:00
国内互联网公司通病,CR 和单测约等于 0 ,大厂也没什么特别变化,只能说好一点但是很多也是靠测试人员堆的。
好听一点叫拥抱变化 难听一点叫 XXXX |
97
pkupyx 2022-08-27 13:27:10 +08:00
核心逻辑还是要 CR 和单测的。你说写个根据主键返回实体信息的没 QPS 没存储量级没安全问题不在意一致性的接口,那确实没单测。
|