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

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

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

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

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

共收到 16 条回复 时间 点赞

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

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

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

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

绝对而言 如果 软件工程质量好的话 我意思是 比如 你们的业务测试质量很高, 那么 我们所做的 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 在某个地方显示出来

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

程雨泽 回复

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

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

周绍辉 回复

看完了,大佬说的好

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

周越彬 回复

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

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

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

夏立轩 回复

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

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

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