自动化的视觉测试系统需要验证应用程序用户界面的视觉方面和元素。它着眼于内容和布局在大小和形状方面正确放置在屏幕上的正确性。它还会检查是否有重叠,隐藏元素或视觉不匹配的内容以及正确的字体,颜色和图像。
在执行视觉测试时,软件供应商有两种选择:手动测试它或构建内部工具以执行即席视觉测试自动化。从手动测试开始,这是一个缓慢且昂贵的过程,而且容易出错,并且不足以容纳大型矩阵。另一方面,临时自动化需要手动维护各种分辨率,浏览器和设备的预期屏幕图像的基线,这些分辨率必须随着应用程序的发展而不断更新。在进行测试时,关键是要确定执行自动化测试的内容和数量。从维护的角度来看,太多会变得麻烦,而太少则会损害所讨论网站的质量。
那么,我们对实用的可视化测试自动化工具有何功能?
测试工具必须自动对内容,布局或外观缺陷进行分类,以查明导致特定UI元素的缺陷。该工具应该只能突出显示和解决每个检测到的更改一次。
能够自动收集和分区应用程序的每个不同执行环境(浏览器,设备,屏幕尺寸)的预期UI图像的功能。例如,iOS应用程序在iPhone和iPad上的外观有很大不同。因此,执行应自动反映到其他环境上以简化维护。
该工具必须保留预期的基线图像和显示缺陷的实际图像。它应该有足够的存储空间,以采用极端的图像压缩技术与错误条目一起永久存在,而不会引起爆炸。
企业或项目的规模不应妨碍并行运行的测试数量,并且应该有一个无缝的过程来满足所有需求。
人与机器之间在视觉测试方面的基本区别在于它们对像素的感知不同。看起来与人类完全相同的系统将采用1:1算法。这可能发生在浏览器版本,云平台上的基础硬件更改以及类似情况之间。因此,图像,阴影等的渲染方式也可能有所不同。
但是,更强大的服务结合了机器学习和启发式技术来解决此问题,因为系统经过培训可以区分可接受的变化和不可接受的变化。虽然该机器的图形卡与测试服务器和其他开发人员的图形卡不同,但他们受过培训,可以“观察”我们所做的事情,并超越像素级别。测试的速度带来了另一个问题。通常将测试与不需要完整浏览器的更轻量级的单元测试进行比较。