匿名吐槽 ui 自动化需要做数据准确性验证吗?

程雨泽 · 2020年03月20日 · 最后由 邹智辉 回复于 2020年03月26日 · 2327 次阅读

比如 app 有一个填写工单,填写之后在 app 就不展示了,那我需要把数据库的数据取出来和填写的数据对比吗?

又比如,我在后台发布了一个东西,app 某个页面会展示出来,那我需不需要往数据库里插入一条数据,然后提取 app 展示的数据与在数据库插入的数据做对比?还是说插入了两条数据,我就计算一下数据库的行数,还有看 app 展示几列就可以??

感觉 ui 自动化好多数据验证,不知道要做到什么程度。。因为 ui 某些地方要展示数据,你得在别的地方把数据插进去对吧,要么直接调用接口,要么直接往库里插,有数据了才会展示出来。

共收到 16 条回复 时间 点赞

要是我做 ui 自动化的话,我不验数据准确性。因为成本太高了,而且并没有什么意义。你说你从数据库里取个字段,然后再从前端取个控件的值比较是不是一样,有什么意义呢,前端显示这个值不就是从后端接口返回里取的么,后端的数据哪里来?还不是从数据库里拿的。这里只是举个简单的场景,在我看来 UI 自动化测什么,我下个订单,期望结果是支付成功,跳转到支付成功落地页,但是实际情况是没有跳到落地页,那我 UI 自动化可以判断出没满足要求,业务没走通,报警。这就够了

总体来说 是要对数据进行验证的。

绝对而言 如果 软件工程质量好的话 我意思是 比如 你们的业务测试质量很高, 那么 我们所做的 UI 自动化 就是个 分层测试的概念
尽量把问题 集中到 UI 界面上 而不去关注接口 或 数据库数据的 验证。 或者 前提面向 UI 自动化 初始化或构建好了 UI 页面场景依赖的数据, 重度把问题集中到对 UI 界面的 验证上来。 这种情景 就不太需要 对接口或数据库数据验证。

另一种 情况 就是相对的, 比如 你们的业务测试质量不高 一些接口 或 数据落地验证 不准确。 那么你可能 就需要 对 页面接口返回的数据 或 响应 做一些面向业务规则的断言 或者需要访问数据库 对如表单提交类的 做落地数据断言。 这就有点违背 UI 是一种分层测试的概念 战线扯的有点长了, 但没办法 国内或大多数全球企业 都是这样。
所以 业务测试是基石 , UI 自动化 是辅助 不要为了 UI 自动化而自动化 前提是你业务测试质量标准到了

你要明确 你 UI 自动化要解决的是 哪个端的问题 要重度面向 UI 适配 系统碎片化兼容 和前端问题 来精准。 否则就 会有点扯的长 做了业务测试验证的活。

总体来说 是要对数据进行验证的。

绝对而言 如果 软件工程质量好的话 我意思是 比如 你们的业务测试质量很高, 那么 我们所做的 UI 自动化 就是个 分层测试的概念
尽量把问题 集中到 UI 界面上 而不去关注接口 或 数据库数据的 验证。 或者 前提面向 UI 自动化 初始化或构建好了 UI 页面场景依赖的数据, 重度把问题集中到对 UI 界面的 验证上来。 这种情景 就不太需要 对接口或数据库数据验证。

另一种 情况 就是相对的, 比如 你们的业务测试质量不高 一些接口 或 数据落地验证 不准确。 那么你可能 就需要 对 页面接口返回的数据 或 响应 做一些面向业务规则的断言 或者需要访问数据库 对如表单提交类的 做落地数据断言。 这就有点违背 UI 是一种分层测试的概念 战线扯的有点长了, 但没办法 国内或大多数全球企业 都是这样。
所以 业务测试是基石 , UI 自动化 是辅助 不要为了 UI 自动化而自动化 前提是你业务测试质量标准到了

你要明确 你 UI 自动化要解决的是 哪个端的问题 要重度面向 UI 适配 系统碎片化兼容 和前端问题 来精准。 否则就 会有点扯的长 做了业务测试验证的活。

我感觉这些都没看到过比较正确的说法

几乎说的都是判断这个控件在不在,或者获取下属性值对比就完事了

哎,理不清 ui 的断言啊,有些地方不操作数据库插入数据,你就不知道有数据时 app 会不会展示出来,或者展示的有问题

我的理解是,看你的决心与时间

UI 回归,本质上发现的问题比较少,因为仅仅是回归又不是新功能测试,所以发现问题较少

但是,领导通常是对这个工程有期待的,如果因为一些运维的错误或者其它后台的问题,也被你发现了

那么这就是自动化的价值,绩效

当然,如果你紧紧是一个测试人员,只是在业务测试之余完成自动化,或者练手,或者业务测试都做不完,那就么必要了,反正做得再好,也没有绩效!!!!

邱哲瀚 回复

那比如公告显示之类的功能,后台新增一条公告,然后 app 在某个地方显示出来

那这个测试用例不就是需要操作数据库插入数据,然后 app 上检测数据有没有显示吗?

程雨泽 回复

看你们的产品设计了,像公告这种模块一般会设计为一个通用模块,并不是每次发布一个新的公告都要重新测试。这个只要在设计之初约定好了,服务端按规矩传参就不会有什么问题。

周越彬 回复

做什么类型的测试干什么事,你 UI 自动化什么都要验证,想过实施维护成本么

我这里到有个思路,就是利用爬虫手段,页面正则匹配对应数据插入到爬虫数据库中,然后用这些数据与数据库对应字段对比,既满足了你获取前端数据问题,也解决了业务侧数据验证。

这问题为啥要匿名问啊……

夏立轩 回复

这个思路我也想过,但是实施起来绝对一坨鸡毛……你怎么写这个 sql?

最近拿公司后台练手 web 自动化测试,写的用例全是做数据准确性验证的,可惜没有绩效,写了一年都只写了个雏形😹

UI 自动化不是做回归的吗,本身功能测试没问题才做自动化的吧??不做功能测试?

周绍辉 回复

看完了,大佬说的好

不做数据验证,做什么测试呢,仅仅看看界面是否跳转货主成功。这样的测试没有意义。只是验证什么数据要有代表性和针对性

成本太高, 数据验证还是接口来做吧。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册