前端自动化测试有必要吗?

2020-05-29 09:55:06 +08:00
 onfuns

做为前端工程化中的一员,自动化测试也经常被提起,各种高大上的文章百出不穷。但是除了库这种偏工具函数类的有详细的测试,其余项目化的测试少之又少,因为交互都是变化的,也可能版本迭代就改头换面导致测试代码无效,那这个自动化的实际意义何在?不管是面试还是各种分享会,都有自动化测试的身影,实际上纯项目有必要做自动化测试吗?仅仅是对几个核心函数做测试也叫测试吗?

6256 次点击
所在节点    程序员
37 条回复
xwhxbg
2020-05-29 15:21:03 +08:00
没必要,一般一个页面活不过 1 个月就要改版,与其保证它的稳健不如直接砍掉重练。
Exin
2020-05-29 15:31:23 +08:00
业务代码都没能跟上需求变化,自动化测试代码不知道要被甩几条街
hardname
2020-05-29 16:11:40 +08:00
我认为如果是涉及到金额计算这种敏感数据的,还是有必要做的。不然改动之后人肉测试会很痛苦。
maplerecall
2020-05-29 16:35:54 +08:00
当项目大到一定程度的时候就变动有必要了,因为你不知道你的一行改动会影响到多少地方,我们现在用的是一套根据配置的 test case 使用静态数据包在服务端跑浏览器截图与之前保存的基准做像素对比的方式做 UI 测试,绝大多数交互情况都能覆盖。虽然增加了很多时间但是的确发挥了非常大的用处,避免了很多问题。
seki
2020-05-29 16:37:13 +08:00
自己取舍吧

我们是有很全面的 selenium test,一些 image diff 。代价是 ci 跑一次要半个小时,功能开发时间按周计算

但是我还是觉得很好,至少不担心会有太恶性的 bug
hupose
2020-05-29 16:51:24 +08:00
单测还是需要的
至于业务上的全页面测试,改动太快,实在不建议
onfuns
2020-05-29 17:09:07 +08:00
@maplerecall 这个有亮点啊,有点端对端的感觉,但是会涉及到交互吗?不会仅限于像素的位移比吧
ps4512
2020-05-29 17:23:43 +08:00
可以试一下 backstop test, 对前端网页 snapshot 进行对比,上手简单。可以用多线程跑,比较快。
maplerecall
2020-05-29 17:46:42 +08:00
@onfuns 涉及到交互的就是截图交互后的图片,比如可以设定隔多久点哪个元素,滚动多少距离之类的,涉及到 ajax 的还可以定义返回内容,然后就会截取所有操作完成后的图片
codingguy
2020-05-29 17:53:14 +08:00
工具库、组件库这些最好还是加上,因为影响面太广。
业务代码没太大必要(业务开发的时间都压很紧)
dxcqcv
2020-05-29 23:10:56 +08:00
@maplerecall 是 JEST 吗
lbw
2020-05-30 10:23:55 +08:00
对于前端来说,核心稳定的底层模块,很有必要有对应的测试,非稳定的业务场景,看投入的测试成本,如果需求变动频繁,对应的测试成本较高,那么可能为了排期而简化其测试,简化程度和业务的变化频率成反比
lbw
2020-05-30 10:25:33 +08:00
正比
persistz
2020-05-30 14:40:11 +08:00
类似门户网站这种 UI 基本不变且内容无限次迭代的首页,当然要上自动化。对于小作坊,需求天天变,UI 不稳定,有修改自动化代码的时间还不如点点点,自动化再搞出了 flaky bug 就更得不偿失了。

所以,当然有必要,但是这个必要性针对项目需求是在变动的。
xiaowei007
2020-06-01 00:04:32 +08:00
真心想了解下,现在一线大厂测试开发到底都干啥
qxqsxbd
2022-01-10 11:29:59 +08:00
@seki 问一下你们的 image diff 是如何解决不同操作系统中字体渲染不一致的问题?
seki
2022-01-10 14:04:07 +08:00
@qxqsxbd 都在同一个操作系统测就不会有这个问题了……

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

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

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

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

© 2021 V2EX