【腾讯TMQ】看图测试指南——图像识别在测试中的应用

本文介绍了将图像识别技术应用于自动化测试的思路,特别是使用SIFT算法和Canny算子来辅助测试。SIFT算法具有尺度不变性,适合识别控件位置,而Canny算子用于轮廓识别。文中还提出了一种基于图像识别的控件点击方法和深度遍历测试工具,旨在提高测试覆盖率和复现问题的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

也许我们使用过Uiautomator编写过自动化测试脚本,也许我们也使用过Monkey来测试过应用的稳定性。但在使用过程中总觉得有或多或小的问题,用Uiautomator写脚本,总觉得有时候控件没法识别;用Monkey来进行稳定性测试,总觉得没法复现问题……本文将使用一个新的角度(图像识别)来看待这类型的测试问题。增加一种图像识别的方法来补充Uiautomator与Monkey的限制。

本文仅作为“抛砖”篇把图像应用到测试这个思路引出来,希望能引出更多的“玉”能参与其中一起研究。

二、图像识别及算法介绍

也许图像识别对于我们来说也不怎么陌生,或多或少都有所接触,但能把图像识别直接应用到我们测试工作中的同学好像并不是特别多。图像识别这名词官方的说法是“利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术”。其实说白了,图像识别重要的是“识别”二字。对于测试来说就是通过“识别”让计算机辅助我们测试,让计算机代替我们进行测试。

以下将就如何去“识别”的问题,介绍笔者在使用图像识别作为辅助工具所采用到的一些算法与算子。

2.1 SIFT算法

SIFT算法的主要方法是提取图片中物体上的一些局部外观兴趣点的特征值与特征方向。这些兴趣点的特征值与特征方向与图片的大小以及旋转角度无关、而且对光线与微视角的改变容忍度相当高,而且SIFT算法对于部分物体遮蔽的侦测率相当高,而且在当前电脑硬件的速度下,辨识速度接近即时运算。

SIFT算法的主要特点是尺度不变,也就是图片放大缩小不影响匹配、图片旋转任意角度不影响匹配、图片亮度增减不影响匹配、拍摄视角高低不影响匹配。

2.1.1 SIFT算法计算过程

由于SIFT算法计算过程涉及的数学知识比较多,本文不是主要以讲解数学知识为目的,所以计算过程只是笔者简略理解后得出的几个关键步骤。以下均为网上参考的资料。

1)图片去噪:算法采用去噪的算法是高斯模糊,先对输入图片进行一次高斯模糊处理。

2)构建高斯金字塔:高斯金字塔是把原图片经过连续变化尺度参数得到的一个图片组。

3)构建高斯差分金字塔:刚获得的模糊化后的高斯金字塔的每一层相邻两张图进行差分运算构建出差分金字塔。

4)提取空间极值点:通过对差分金字塔进行极值点分析,得到每张图的空间极值点。

5)获取主梯度方向:主梯度方向是极值点变化最大的那个方向为极值点的主梯度变化方向。

经过上述几个步骤后便可得出一张图在几个不同尺度下的特征点以及特征方向。

下图为使用KingRoot主页面运算得到的特征点位置及特征方向。其中圆的半径大小为极值大小,半径指向方向为特征方向。

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值