个人开发者写单元测试的人多吗?

2023-03-24 09:19:04 +08:00
 debugger0
写了单元测试的话,覆盖率有多少?如果单元测试覆盖率 100%的话,基本可以保证极低的线上 bug 量吗?
5799 次点击
所在节点    程序员
58 条回复
xsen
2023-03-24 12:50:10 +08:00
按照经验(非中间件或基础组件),实际项目中大多数 bug 单元测试都无法测试出来
n3r0
2023-03-24 14:48:08 +08:00
后端必写,前端可以交给用户测(逃
mmdsun
2023-03-24 14:54:48 +08:00
@n3r0 后端可以让前端测 ,前端让用户测
TWorldIsNButThis
2023-03-24 15:17:31 +08:00
用空安全的语言,
用代数数据类型表达一个 model 的多态性而不是一股脑全可为 null ,
尽量写声明式而不是命令式代码,
尽量使用不可变变量,
尽量缩减变量的作用域,
尽量减少或者推迟副作用的出现,
减少数据竞争
代码上就这些了

最重要的还是业务要想清楚,大部分 bug 都是业务上没想到,代码写得再好也避免不了
AoEiuV020CN
2023-03-24 17:11:31 +08:00
我个人项目只针对个别容易出问题或者容易不准确的算法写测试,
比如一些涉及到正则或者对比之类有规则正常使用只能覆盖部分场景的代码,就专门写个 unit test 测试正常不正常的数据,
weicools
2023-03-24 17:30:41 +08:00
我觉得还需要看看是什么类型的项目吧,前端,后端,客户端……
Pythondr
2023-03-24 17:56:41 +08:00
现在可以交给 chatGPT 写了
https://www.codium.ai
8355
2023-03-24 17:58:00 +08:00
最开始我经理写单元测试和接口,后来我自己当负责人理解了我也写,其他人写业务代码。

这是最简单的方式保证团队代码产出的方式
可以保证基本的代码结构不会偏离你的最初设计同时可以一定程度上约束团队规范的执行
可以最快速了解你实际没有直接参与项目的代码结构
在长时间后再维护系统时单元测试代码可以快速梳理之前的代码功能和调用逻辑比看文档效率高得不知道多少
减少愚蠢问题导致的冒烟测试无法通过,可长期保持团队良好形象不被产品 /业务 /测试吐槽,只有我们喷别人的。
debugger0
2023-03-24 18:04:57 +08:00
@TWorldIsNButThis #24 尽量使用不可变变量, 非常认同
SuperMild
2023-03-24 18:52:16 +08:00
我写个人项目是为了快乐,单测带了的痛苦远大于快乐,因此决定不写。

有 bug ,宁愿辛苦点修 bug ,我感觉总体上修 bug 的时间比写单测的时间还要少很多。
gzf6
2023-03-24 19:02:18 +08:00
业务没固定可以先不写
matrix1010
2023-03-24 19:22:04 +08:00
看到很多回复感觉挺无奈,国内找工作写单元测试说不定都是减分项
BeautifulSoap
2023-03-24 20:51:40 +08:00
公司项目写,个人项目随缘。公司项目的那业务单元测试复杂得,我现在看得都头大,不是工作真懒得去碰
ixixi
2023-03-24 21:02:17 +08:00
简单的增删改查 不可能写的;
数据操作复杂的一般都会写 不然 f5 f5 f5 ..... ?
pengtdyd
2023-03-24 21:02:57 +08:00
不写!!!没必要,自己的项目可以全程把控,每一行代码我都知道自己的干了啥,这还写测试不是多此一举吗。
streamrx
2023-03-24 21:23:00 +08:00
从来都不写
Felldeadbird
2023-03-24 21:40:21 +08:00
个人项目不写,因为 BUG 来了马上发布新版就覆盖了。

想过写,可一个人精力有限,不如全力开发。
Kaciras
2023-03-24 21:42:22 +08:00
API 稳定了就写,尽量全覆盖,可能有点完美主义吧
beimenjun
2023-03-24 21:57:52 +08:00
“是不是也有人一开始不写,到后面补上单元测试后,发现是真香的?”

感觉 OP 是想得到某种倾向的回答啊。

但是实际上,一开始不写必然有不写的理由,后面的收获也未必会影响之前的决策。

个人项目如果是做出来给其他人用的,先做出来,避免技术层面自嗨我觉得挺重要。
SimonOne
2023-03-24 22:22:44 +08:00
我的工作接触的是 sap abap 语言,我搞不懂什么是单元测试,为什么这么神奇能自动化测,我都是自己手动输入参数打断点直接测试的😓sap 似乎有看到过单元测试的功能,但大家好像都没用过。

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

https://www.v2ex.com/t/926722

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

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

© 2021 V2EX