• 0
  • 0
分享
  • 视觉回归测试—UI自动化的最后一公里
  • 恬恬圈 2019-10-14 13:33:55 字数 1318 阅读 3359 收藏 0

视觉回归测试

视觉测试用于评估Web应用程序跨浏览器的响应能力。通过执行视觉测试,您可以查看前端的UI / UX组件,以决定受测试的应用程序是否可以适配于各种浏览器,设备和屏幕分辨率,因为它们都提供了不同的体验。

据《The Selenium Guidebook》的作者Dave Haeffner介绍:

视觉测试是一种验证应用GUI是否正确地展示给用户的操作。测试目标是找出应用在可视化上存在的软件缺陷,例如,字体、布局和渲染问题。这使得所发现的软件缺陷可在被最终用户看到前得到修正。此外,视觉测试可用于验证页面的内容,非常适用于一些提供图形功能(例如图表、仪表盘等)的站点。如果使用传统的自动化功能测试工具,那么实现此类验证是非常具有挑战的工作。视觉测试在本质上是十分复杂的,其中需要考虑的因素很多,例如Web浏览器、操作系统、屏幕分辩、响应设计、国际化等。

之前业界里面对视觉测试的最佳实践就是: 截图比较用于视觉验证。


视觉回归测试包含以下几个主要的测试步骤:

1、对于产品版本进行截图(线上环境或者类线上环境) 

首先人工完成第一个软件版本的测试并部署上线,在第二个版本需要进行测试的时候首先对第一个版本的所有界面进行截图形成基线。

2、对于新的发行版进行截图(比如测试环境) 

然后对第二个需要进行测试的版本的所有界面也进行截图。

3、配对URL(忽略hostname) 

通过配对URL,对所有的截图按照相同的URL进行分组。当然有时候会出现新的界面,有时候老的界面会被删除。对于新的界面就需要人工进行首次验证测试 。

4、像素级别的图形比较 对于分组之后的截图进行像素级别的比较并生产差别图。

有时候为了降噪,可以只对局部关心的组件进行比较。

5、人工查看所有不同 最后通过人工审查差别图报告完成测试。


实质上,视觉回归测试就是用于图像比较的工具。比较好一点的图像比较工具还需要允许用户可以将需要忽略的区域设置为使用动态组件,从而避免误报。比如你的项目需求为开发只是改了一个CSS样式,而测试人员需要检查应该只影响一个点的布局更改时(例如,当您需要跨多个设备/屏幕分辨率进行跨浏览器测试和验证应用程序时),这将非常有用。 (例如当产品的小姐姐希望只有下图中的中间字体变化时)

1.jpg

修改1.png

  (最后发现,网站中的另外的不希望变化的网页也被变化了)

2.jpg

修改2.png

比较有名的视觉回归测试的开源框架有: - AET 基于Java的视觉回归测试工具 还在更新中 - Gemini 基于Selenium的 还在更新中 - Dpxdt 用Python编写的,忧伤的是最新的更新也是2016年的了。

商用的比较火的就是以下这家咯: - Applitools Eyes 云服务加AI的视觉回归测试工具,Applitools公司在2017年7月获800万美元B轮投资,到目前为止,它已经获取到了1500万美元的风投,也成为了2018年全球最值得关注的100家AI公司之一。


版权声明:本文出自51Testing原创,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  性能测试大致分以下几个步骤:  1.需求分析  2.脚本准备  3.测试执行  4.结果整理  5.问题分析  今天要说的是最后一个步骤——“问题分析”。  需求描述  有一个服务,启动时会加载一个1G的词表文件到内存,请求来了之后,会把请求词去词表里做模糊匹配,如果匹配到了就向一个后端服务发送一条http请求,拿回数据之后,返回给客户端的同时,向mysql记录请求的唯一标识和一个请求次数的标记;   其中有几个关键函数 :  ·模糊匹配(fuzzyMatching)   · 后端请求函数(sendingRequest)   · 拼...
            0 0 800
            分享
          •   fiddler抓手机app的请求,估计大部分都会,但是如何只抓来自app的请求呢?  把来自pc的请求过滤掉,因为请求太多,这样会找不到重要的信息了。  环境准备:  1.电脑上已装fiddler  2.手机和电脑在同一局域网  一、设置  1.fiddler>Tools>Fiddler Options>Connections 勾选Allow remote computers to connect。  2.记住这里的端口号:8888,后面会用到。  二、查看电脑IP  1.打开cmd,输入:ipconfig,记住这个IPv4地址。  >>ipconfig  三...
            0 0 2247
            分享
          • 易用性测试是否有快捷键,快捷键不能重复;是否有热键,热键不能重复;不要用数据将用户包围,使用便于拥护迅速吸取信息的方式表现信息;减少用户输入动作数量;默认按钮要支持Enter操作,即按Enter后自动执行默认按钮对应操作;完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离;同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示;分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab;消除冗余输入,绝不要让用户提供程序中可以自动获取或计算出来的信息;遵循可不用鼠标的原则:应用中的功能只用键盘也应当可以完成;为手工录入部分提供快速键盘录入方式,能仅使用小键盘时尽...
            0 0 1222
            分享
          •   哈喽,大家好,咱们今天的话题就从小灰的故事说起。小灰呢,他是一个兢兢业业的测试工程师,他的团队共有六位并肩作战的测试战友,再加上一位自带光环的测试组长。这组长可不得了,仿佛拥有隐身术,做起具体工作来踪迹难寻,但他却擅长于拿着团队努力换来的成果跑到大老板那里刷存在感,说得好像一切都是他亲自操刀完成的一样。这种情景在职场里屡见不鲜,让许多像小灰这样埋头苦干的“老实人”时常感到功劳被抢,工作热情也随之受损。  在职场这片广袤的森林里,"抢功劳"的上司无疑是一只狡猾的狐狸,但咱们也不能武断地将其贬低。在谈论“抢功劳的上司”之前,咱们得先来捋一捋,到底什么是管理者的职责。简单来讲...
            0 0 400
            分享
          •   随着将更多资源投入到生成式人工智能领域,Meta 公司已经解散了其负责任人工智能(RAI)团队。The Information 今天援引其看到的一篇内部文本爆料了这一消息。报道称,RAI 的大部分成员将转到公司的生成式人工智能产品团队,其他人则将在 Meta 的人工智能基础设施上工作。  Meta经常对外宣称要以负责任的方式开发人工智能,甚至还专门为此设立了一个页面,列出了其"负责任的人工智能支柱",包括问责制、透明度、安全性、隐私等。  The Information 的报道援引 Meta 公司代表乔恩-卡维尔(Jon Carvill)的话说,公司将"继续优...
            0 0 1002
            分享
      • 51testing软件测试圈微信