一、什么是视觉测试
视觉检测就是用机器代替人眼来做测量和判断。视觉检测是指通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。是用于生产、装配或包装的有价值的机制。它在检测缺陷和防止缺陷产品被配送到消费者的功能方面具有不可估量的价值。
二、为什么需要视觉测试
比如,我们开发了一个在线商城。第一次测试的时候所有的功能都能正常运行,但是当部署到另一个测试环境时,就有可能出现以下情况,这些都是因为界面布局 bug 导致用户无法正常使用,视觉测试就是用来发现这些界面布局导致的产品缺陷。
购买按钮忽然被一个弹框遮住,用户无法下单;
商品的详细描述文字互相堆叠错乱,导致用户无法正常阅读;
购物车没有正常悬浮在窗口的底部,无法查看加入了哪些商品;
电脑上能正常下单,但是在手机上却只显示了部分页面;
所有的图片无法正常加载等等。
三、视觉测试和UI功能测试的区别
功能测试确实能发现大部分主要的功能缺陷,甚至可以发现一些页面布局的缺陷,比如某些元素因为布局问题无法交互,某些元素缺失。 但是功能测试的问题在于它需要覆盖的路径太多,执行效率太慢,在迭代比较快的研发周期上,有些看似不太重要的特性不会去测试。而有些布局问题非常微小,但足以影响用户体验,功能测试无法做到。
四、视觉测试尽量自动化
视觉测试最好采用自动化方式实现,它需要对每一个元素都要校验它的大小、形状和位置差异,有的差异非常微小,肉眼观察很困难。 手工的视觉测试更像是在玩大家来找茬的游戏,只是关卡的难度和关卡的数量都急剧上升,你得到的只有少量的成就感,更多的是沮丧和措手不及。
python.org 官方,把这个重要的缺陷找出来吗?
五、视觉测试自动化工具
分别上传baseline 图片和实际图片。
六、视觉测试工作流程
设置 baseline 对照组,表示产品本来应该的状态。
运行用例、通过截图等方式获取当前界面状态。
和 baseline 对比、生成报告,报告最好能直观看到页面差异。
更新 baseline。
七、视觉测试对于精准化测试的意义
视觉测试的主要目的是发现页面布局的缺陷
在视觉回归测试中,能立即发现界面哪些地方进行了修改。