APP下载

基于Hausdorff距离算法自动化测试平台的设计实现

2020-06-08徐质彬王娟

现代信息科技 2020年19期
关键词:自动化测试

徐质彬 王娟

摘  要:软件测试是确保软件质量的重要手段,贯穿整个项目流程,在软件生命周期中占据重要地位。基于此对移动端的广告样式和交互功能测试人员的需求进行分析,设计并实现测试任务触发模块、配置更新模块、样式渲染模块、样式校验模块和线上收入监控模块五大功能模块,这五个模块协同作用,分析测试人员输入的测试环境模块的配置信息,调度手机资源进行样式展现、样式抓取,对生成的样式图像进行模板匹配,确定相似度。

关键词:自动化测试;Hu不变矩;Hausdorff距离;模板匹配;组件化

Absrtact:Software testing is an important means to ensure software quality,which runs through the whole project process and occupies an important position in the software life cycle. Based on this,this paper analyzes the needs of mobile advertising style and interactive function testers,designs and implements five functional modules:test task trigger module,configuration update module,style rendering module,style verification module and online revenue monitoring module. These five modules work together to analyze the configuration information of the test environment module input by testers,dispatch mobile phone resources for style display and style capture,and template matching on the generated style images to determine similarity.

Keywords:automated test;Hu invariant moment;Hausdorff distance;template matching;component

0  引  言

由于软件行业的迅速发展,软件测试日趋成熟,传统的人工测试模式无法满足持续集成的快节奏测试需要[1]。自动化测试可以在软件快速迭代的同时更有效地确保代码质量,使测试人员不需要频繁地重复环境搭建等耗时的工作,最大限度地保证测试的效率。为了避免软件投放在市场以后产生安全问题,软件公司必须提高软件质量,并确保软件的稳定性和可靠性,以提高软件公司的竞争力[2]。

本文设计并实现的自动化测试平台应用于公司实际业务中,是对搜索推广服务管理平台的推广信息的前端样式及交互进行自动化测试,加入模板匹配算法进行样式的精准校验,以期为测试人员减负。笔者主要负责该项目的理论设计与测试工作,故本文主要针对前期设计与功能测试进行论述。搜索推广服务管理平台的主要业务是高效地管理与优化搜索推广信息、更为科学地评估推广效果[3]。通过分析测试流程中可自动化的部分,得到自动化测试平台的业务流程如下:测试人员输入包含测试用例和测试环境配置等信息的文本文件并触发任务后,平台分析用户输入的测试环境模块的配置信息、测试用例信息和其他信息,创建连续集成任务或回归任务,利用时间片轮转算法选取不同品牌的四部手机进行样式抓取,使用Hu不变矩计算特征值、Hausdorff距离计算相似度的方法,将生成的图像与基准图片进行模板匹配以保证广告样式能够兼容不同尺寸的屏幕。

1  自动化测试平台相关理论及技术综述

1.1  Hu不变矩

本文所设计的自动化测试平台通过计算七个不变矩得到图像对应的特征值。Hu不变矩算法的七个不变矩具有平移、旋转和尺度不变特性。通过计算图像的几何矩、混合中心矩、归一化中心矩、七个不变矩,得到图像的特征值。对灰度分布为f(x,y)的图像,其(p+q)阶矩用式(1)的mpq表示,对(p+q)阶混合中心矩用式(2)upq表示,归一化中心矩用式(3)ηpq表示。式(3)中γ=(p+q+2)/2;p,q=0,1,2,…。七个不变矩用式(4)中的φ1~φ7表示。

Hu不变矩对于物体的形状描述得比较好,一般用来识别纹理特征清晰的图像。本文中,将图像经过预处理后生成的水平投影图的纹理特征清晰,选取Hu不变矩进行特征值提取,识别的准确率高,识别效果精准。

1.2  Hausdorff距离

为判断待校验样式是否为模板样式,进行待校验样式和模板样式的相似性度量。由于Hausdorff距离已经应用在人脸识別、图像匹配、事物识别以及目标跟踪等多个领域中[4],所以,本论文在进行模板匹配算法选择时,主要使用Hausdorff距离作为相似性度量的函数。

计算前向Hausdorff距离的方法:对于待校验图像的特征集合P={p1,p2,…,pi,…,pN}和模板图像的特征集合T={t1,t2,…,tj,…,tM},用式(5)、式(6)、式(7)计算待校验图像与模板图像之间的Hausdorff距离[5]。

按照同样的方法计算模板图像和待校验图像的前向Hausdorff距离,得到的就是待校验图像和模板图像的后向Hausdorff距离,取待校验图像和模板图像的前向Hausdorff距离和后向Hausdorff距离的最大值就是待校验图像和模板图像的Hausdorff距离。通过对两幅图像的Hausdorff距离进行计算,进而对两图像的相似度进行评价。

2  自动化测试平台设计与实现

本章重点阐述自动化测试平台的设计与实现过程。概要设计是从总体平台设计,功能体系结构设计和数据存储设计三个部分进行的,这三个部分相互补充。平台的详细设计和实现将根据平台的概要设计为标准进行扩展和完善。

2.1  总体架构

基于模块分离的思想,本平台应用OSI体系将平台的总体架构设计划分为七部分:应用层、调度层、接口层、组件层、存储层、公共服务层和工具层。总体架构设计如图1所示。

2.2  功能结构

在自动化测试平台需求分析的过程中,本文共获得五个核心功能,分别为测试任务触发功能、配置更新功能、样式渲染功能、样式校验功能、线上收入监控功能。按照功能模块划分,得到平台的功能模块如图2所示。

2.3  测试任务触发模块的设计与实现

测试任务触发模块是平台的入口模块,持续对MySQL数据库中的任务表进行测试任务读取操作。测试任务触发模块主要实现测试任务的新建和触发运行,分为自动化的持续集成任务触发模块和回归任务触发模块。流程图如图3所示。

2.4  配置更新模塊的设计与实现

测试任务触发完毕,生成的测试用例信息传入配置更新模块,由配置更新模块获取虚拟机地址,在虚拟机上更新测试环境的配置。对配置文件进行Md5格式长度大小进行判断,若长度不一致,则有新增,需更新配置,若长度一致,则无新增,不需更新配置。具体流程图如图4所示。

2.5  样式渲染模块的设计与实现

配置更新操作完成,由样式渲染模块的资源调度模块调度手机,进行样式渲染展现,再调用样式抓取模块,进行模拟点击交互操作。具体流程图如图5所示。

2.6  样式校验模块的设计与实现

旧版本的样式校验模块采用语义切割的方式解析广告图片,生成字典类型的info信息。涉及到的OCR识别流程如图6所示。

由于实际图片都是真机运行的截图,在MVP平台上已经做过预处理,图片内容较为清晰,故不需要再进行处理。本模块主要进行字符切割工作,生成info信息。对图片进行水平投影,找到每一行的上界限和下界限,进行行切割;对切割出来的每一行,进行垂直投影,找到每一个字符的左右边界,进行单个字符的切割。按行将元素内容、横纵坐标位置、元素类型保存为JSON格式。通过比对语义切割模块所生成的JSON信息与模板信息,遍历判断每行的元素是否同一类型、是否位于同一位置,来判断是否匹配成功。

经过实验发现,这种方式在执行过程中的可靠性差。当出现图片尺寸发生变化、广告模板图片不一致时,判断就会出现错误,匹配率只有44.5%。当出现图片尺寸一致,并且广告模板图片一致的情况时,样式匹配结果受到语义切割精确度的影响,匹配率为83.7%。实验结果如表1所示。

为了提升样式匹配的准确率,确保广告内容不会对样式匹配产生影响,改进方案对图像进行预处理,采用OpenCV的Mat类生成水平投影图将广告模板图片和文字内容作投影处理,对投影图采用模板匹配的算法优化匹配过程,通过不变矩计算图像特征值,Hausdorff距离判断相似度的方法,进行样式校验。流程图如图7所示。

3  系统测试

本章主要从对主要模块进行功能测试、安全性测试、性能测试三方面对自动化测试平台进行测试。

3.1  功能测试

按模块将自动化测试平台的功能测试点划分为四个,分别为测试任务触发模块功能测试、配置更新模块功能测试、样式渲染模块功能测试、样式校验模块功能测试。

3.1.1  测试任务触发模块功能测试

测试定制不同的样式渲染版本的测试任务,查看测试任务是否依靠正确版本进行。部分测试用例如表2所示。

从表2中可以看出不论是自动获取最新版本,还是输入版本信息、指定构建号,或者输入版本信息、获取最新构建号,平台均能生成和渲染正确的样式,测试触发功能测试通过。

3.1.2  配置更新模块功能测试

分别设计测试用例进行不同版本的ASP、Vui、桩数据配置更新,确定三个模块均能正常启动。部分测试用例如表3所示。

从表3中可以看出平台能够成功触发新、旧配置更新,且不论是单一模块配置更新还是指定模块进行配置更新,均不影响其他模块启动。配置更新模块的数量不会对模块启动造成影响。配置更新功能测试通过。

3.1.3  样式渲染模块功能测试

设计测试用例进行资源调度和样式抓取,确定资源调度和样式抓取的功能符合预期。部分测试用例如表4所示。

从表4中可以看出该模块能够实现调度四部手机进行样式展现,抓取的样式能与样式展现一一对应。样式渲染模块功能测试通过。

3.1.4  样式校验模块功能测试

测试任务中,分别对通栏留白大于45 px、右侧组件超高、左侧留白大于45 px、图片右侧超高或缺少组件、正常模板样式广告这五种情况进行验证,查看输出结果是否符合预期。部分测试用例如表5所示。

从表5中可以看出,当样式正常显示时,能够成功匹配到相应的模板;当样式显示有误时,通栏留白大于45 px、右侧组件超高、左侧留白大于45 px、图片右侧超高或缺少组件、正常模板样式广告这五种情况均能够实现问题拦截。样式校验模块功能测试通过。

3.2  安全性测试

出于数据安全性考虑,本平台只为公司内部测试人员开放,只在内网环境下进行访问,且限制用户权限,避免数据泄露。对平台进行安全性测试,测试用例如表6所示。

猜你喜欢

自动化测试
基于Java反射的APP自动化混合测试框架的研究与实现
Hadoop性能测试自动化研究
数据驱动和关键字驱动的研究与应用
浅谈空调控制器自动化测试
基于多总线结构的电路板测试系统设计研究
航空航天与国防电子新形势下自动化测试系统的应用
基于CTI—TET和SeleniumWebdriver的Web应用自动化测试框架的设计与实现
自动化测试实现研究
一种航空交换机中CAN总线的自动化测试方法
基于Selenium进行Web应用测试研究