CN115269359A - 终端界面测试方法及装置 - Google Patents
终端界面测试方法及装置 Download PDFInfo
- Publication number
- CN115269359A CN115269359A CN202110473068.1A CN202110473068A CN115269359A CN 115269359 A CN115269359 A CN 115269359A CN 202110473068 A CN202110473068 A CN 202110473068A CN 115269359 A CN115269359 A CN 115269359A
- Authority
- CN
- China
- Prior art keywords
- image
- terminal interface
- test
- interface
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请适用于软件测试领域,具体公开了一种终端界面测试方法及装置,在该方法中,获取至少一个终端界面测试请求;解析各个所述终端界面测试请求中的终端界面图像和测试用例标识;基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果;根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。由此,无需人工检测UI界面,可以自动生成针对测试用例的UI检测结果,满足了UI测试的检查量大的需求,提升测试效率并节省了大量资源。
Description
技术领域
本申请属于软件测试领域,尤其涉及一种终端界面测试方法及装置。
背景技术
随着业务的增长和客户需求的提升,对APP终端的UI(User Interface,用户界面)的要求越来越高,以及客制项目的增多,越来越多的APP的UI界面出现了向复杂化发展的趋势。
在APP产品上线前,测试人员需要对APP终端的各个界面进行测试,以识别是否存在APP界面图裂、未加载完整错误图标、按钮/图标重叠、页面加载异常、页面排版和页面错误信息等界面异常情形,有时候会导致所需要检查的界面数量多达1000+,图片的数量2000+。如果所有页面都要人工检查,则需要投入大量的测试成本,导致UI测试成本增大。
发明内容
鉴于此,本申请实施例提供了一种终端界面测试方法及装置,以至少降低现有技术中人工检查UI界面异常所导致的测试成本过大的问题。
本申请实施例的第一方面提供了一种终端界面测试方法,应用于服务端,所述方法包括:获取至少一个终端界面测试请求;解析各个所述终端界面测试请求中的终端界面图像和测试用例标识;基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果;根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。
本申请实施例的第二方面提供了一种终端界面测试方法,应用于客户端,所述方法包括:获取自动化测试指令,所述自动化测试指令包括至少一个测试用例标识;根据各个所述测试用例标识执行相应的测试操作,并对各个所述测试操作所对应的终端界面进行截图;根据各个终端界面截图和相应的测试用例标识,发送终端界面测试请求至服务端,使得所述服务端调用图像异常检测模型而生成图像界面测试报告,其中所述图像界面测试报告包含各个所述测试用例标识和相应的所述图像异常识别结果。
本申请实施例的第三方面提供了一种终端界面测试装置,包括:请求获取单元,被配置为获取至少一个终端界面测试请求;请求解析单元,被配置为解析各个所述终端界面测试请求中的终端界面图像和测试用例标识;模型识别单元,被配置为基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果;报告生成单元,被配置为根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。
本申请实施例的第四方面提供了一种终端界面测试装置,包括:用例获取单元,被配置为获取自动化测试指令,所述自动化测试指令包括至少一个测试用例标识;截图单元,被配置为根据各个所述测试用例标识执行相应的测试操作,并对各个所述测试操作所对应的终端界面进行截图;发送单元,被配置为根据各个终端界面截图和相应的测试用例标识,发送终端界面测试请求至服务端,使得所述服务端调用图像异常检测模型而生成图像界面测试报告,其中所述图像界面测试报告包含各个所述测试用例标识和相应的所述图像异常识别结果。
本申请实施例的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
本申请实施例的第六方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备实现如上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:
通过本申请实施例,服务端可以接收终端界面测试请求,并自动生成针对测试用例的界面图像的测试报告,无需人工检测UI界面,可以有效降低测试成本。另外,通过调用图像异常检测模型来确定图像异常识别结果,利用机器学习技术,可以提高对正常图像和异常图像的识别准确度,并保障对异常图像的识别效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的终端界面测试方法的一示例的信号传输时序图;
图2示出了根据本申请实施例的对图像异常检测模型进行优化的一示例的流程图;
图3示出了根据本申请实施例的图像异常检测模型的一示例的结构框图;
图4示出了根据本申请实施例的终端界面测试方法的一示例的架构示意图;
图5A示出了根据本申请实施例的待模型处理的终端界面截图的示例图;
图5B示出了根据本申请实施例的待模型处理的终端界面截图的示例图;
图5C示出了根据本申请实施例的待模型处理的终端界面截图的示例图;
图5D示出了根据本申请实施例的待模型处理的终端界面截图的示例图;
图6示出了根据本申请实施例的模型构建训练过程的一示例的原理流程示意图;
图7示出了根据本申请实施例的模型重训练过程的一示例的原理流程示意图;
图8示出了根据本申请实施例的终端界面测试装置的一示例的结构框图;
图9是本申请实施例的电子设备的一示例的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的电子设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,上述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器)的计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的电子设备。然而,应当理解的是,电子设备可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
可以在电子设备上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
需说明的是,在目前相关技术中,一些专家或学者提出,通过图像像素比对方式来识别异常图像,例如可以将检测图像与标准图像的RGB值进行比较,从而识别检测图像是否正常。然而,在图像比对的过程中,需要对图片进行截取裁剪、图片读取返回RGB值、对比RGB等处理过程。
这里,图片的截取裁剪包含了大量图片预处理过程,比如图片部分帖白,就是把不需要做对比的地方通过帖白的方式处理,此过程需要测量出图片中需要帖白的位置,不同分辨率手机的尺寸会发生变化,导致需要帖白的位置往往和实际我们需要的位置是有偏差的,而在实际使用过程中需要对每款手机上APP显示的尺寸量取需要帖白的尺寸,使得整个过程不仅繁琐耗时,而且在不考虑对比效果是否有效的情况下,维护起来几乎是不可能的。
另外,在将帖白的图片进行裁剪的过程中,需要裁剪出待对比的图片区域部分,而受到帖白的影响,要求帖白位置的精确度是像素级别,才能保证裁剪的质量和精确度将不受到影响。
在接下来的图片对比操作中,先加载和处理需要对比的图片和预期图片,并返回图像的直方图,直方图返回为像素计数列表,源中每个像素值对应一个形象,如果图像有多个波段,则所有波段连接在一起(例如,一个波段的直方图RGB图像包含768个值),如果提供了掩码,将返回这些掩码的直方图遮罩图像不为零的图像部分。具体地,面具图像必须与图像大小相同,并且可以是双层图像(模式“1”)或灰度图像(“L”);通过对比两张图片上的RGB值输出一张对比后存在差异的图片和diff值,通过判断diff是否为0.0,如果是这两张图片是完全一样的,而且是像素级别的一样,如果diff不等于0.0则说明两张图是不一样的。通常来说如果diff值越大,则说明这两张图片上存在的差异性就越大;反之,越接近0.0,则说明差异性越小。但是,要使得两张图片对比后达到0.0对图片的要求是极高的,因为不同尺寸的手机截取的图片大小和像素也是不同的,即便是相同的手机截取的图片也存在差异,APP界面的内容会随数据在改变,可能每次都不一样,还有手机状态栏显示的手机信号、时间、点亮都会对图片对比造成很大的影响。
综上,图像像素RGB比对方式虽然能实现一定程度上的终端界面自动化测试,但是其对设备资源的消耗量大,难以在多样化的业务场景中适用,无法满足众多定制型APP的需求。
现在结合附图来描述本申请实施例的终端界面测试方法及装置。
图1示出了根据本申请实施例的终端界面测试方法的一示例的信号传输时序图,该方法涉及在客户端(或终端)10与服务端20之间的信号交互过程。
如图1所示,在步骤110中,客户端10获取自动化测试指令。这里,自动化测试指令包括至少一个测试用例标识。
需说明的是,客户端可以是安装或运行了APP(例如,待测试的软件程序)的终端,并对APP和终端的类型,在此应不作限制。此外,自动化测试指令可以表示用于触发自动化测试功能的交互指令,并且客户端10可以在检测到用户操作符合预设操作规则时生成相应的自动化测试指令,例如用户可以点击客户端10上的控件“UI测试”,从而在客户端10中生成自动化测试指令。
应理解的是,客户端的系统版本可以是Android或IOS等,在此应不加限制。此外,测试用例可以是针对APP的一项或多项功能目标而编制的一组测试输入、执行条件,可用于核实是否满足某个特定软件需求,而APP一般需要利用多个测试用例来进行全面测试。术语“测试用例标识”可以表示一个完整的测试用例的标识信息,另外,其还可以表示测试用例下具体某个用例步骤的标识信息。
在步骤120中,客户端10根据各个测试用例标识执行相应的测试操作,并对各个测试操作所对应的终端界面进行截图。
示例性地,当测试用例标识表示完整的测试用例的标识信息,客户端10可以顺序执行测试用例所对应的各个用例步骤,并在各个用户步骤时通过界面截图操作而得到相应的终端界面截图;另外,当测试用例标识标识测试用例中的用例步骤的标识信息,客户端10可以执行相应的用例步骤,并执行界面截图操作而得到相应的终端界面截图。
在步骤130中,客户端10根据各个终端界面截图和相应的测试用例标识,发送终端界面测试请求至服务端20。示例性地,客户端10可以将终端界面截图和相应的测试用例标识封装成终端界面测试请求。在一些实施方式中,客户端10可以利用测试用例标识来对各个终端界面截图进行命名,使得终端界面截图关联上相应的测试用例标识。
在一些实施方式中,客户端10可以通过接口请求的方式来实现与服务端20之间的数据通讯传输。具体地,通过客户端10在APP自动化测试过程中对不同界面的图片进行自动截取,然后可以将图片按照“项目名称+sheet名称+用例编号+用例标题+当前时间”方式来生成精确到用例步骤的图片路径.png,进而存储在当前项目下,然后可以将截图通过接口方式发送给服务端20。这样,服务端20可以集成识别服务功能,对所接收到的图片进行识别,并在APP自动化测试结束后在报告和/或日志中体现具体的图像异常识别结果以及判定结果。
在步骤140中,服务端20可以解析各个终端界面测试请求中的终端界面图像和测试用例标识。这里,终端界面测试请求的数量可以是一个或多个,例如服务端20可以针对每个终端界面测试请求分别进行单独响应处理,另外服务端20也可以针对终端界面测试请求进行批量化响应处理。
需说明的是,服务端20还可以同时为多个客户端提供测试服务,例如终端界面测试请求还可以是分别来源于多个不同的客户端的。
在步骤150中,服务端20基于图像异常检测模型,确定各个终端界面图像所对应的图像异常识别结果。示例性地,服务端20可以将终端界面图像输入至图像异常检测模型,以由图像异常检测模型确定相应的识别结果是“图像异常”还是“图像正常”。
需说明的是,在本申请实施例中,可以并不限制模型所检测的图像异常的类型,其可以包含UI测试中所涉及的各种图像异常类型,例如图裂、未加载完整错误图标、按钮/图标重叠、页面加载异常、页面错误信息等。此外,可以通过设计覆盖多样化的图像异常类型的图像训练样本,使得图像异常检测模型能够完成对各种图像异常类型的识别。
在步骤160中,服务端20根据各个测试用例标识和相应的图像异常识别结果,生成图像界面测试报告。
在一些实施方式中,服务端20可以将图像界面测试报告反馈至客户端10,或者,服务端20还可以将图像界面测试报告发送至测试中心的显示屏,以供研发人员查看。这样,利用图像界面测试报告,研发人员可以直观、快速地获知哪个测试用例或那个测试用例步骤下的UI界面出现了异常,便于研发人员对所测试的软件产品进行高效维护。由此,在自动化测试中,可以实时地对终端的当前页面的截图进行图像识别,发现UI界面是否存在异常情况,并反馈相应的识别结果。
结合应用场景来说,在客户端10启动软件自动化测试操作后,客户端10可以对界面进行截图,并通过预设的测试用例命名规则来生成精确到用例步骤的图片路径,将截图保存在该路径下面。进而,通过隐式等待检查当前图片是否存在,用例中默认对每个步骤进行图像识别,也可单独配置#UI识别来跳过UI异常检查步骤。当进行UI异常检查步骤时,服务端可以调用已部署的模型来识别当前截图,从而输出相应的异常识别结果。在一些示例中,输出结果可以包括分数最大分数的结果、最大分数、以及最大分数结果的图片被分类保存的位置。示例性地,当“正常图像”(correct)或“异常图像”(error)所对应的得分均低于80分时,则该图像很有可能会显示异常,此时将保留原图拷贝一份到error分类保存。进而,在图像识别结束时,可以对结果检查抛出异常,并在报告日志中捕获和展示。
通过本申请实施例,引入机器学习技术来自动识别出图像异常,能保障较高的识别准确率,实现了软件自动化测试中对UI界面的识别检查系统,满足了UI测试的检查量大的需求,提升测试效率并节省大量资源。
关于上述步骤150的实施细节,在本申请实施例的一些示例中,服务端20可以针对各个测试用例标识,在服务端的多个图像异常检测单元中选择与测试用例标识匹配的目标图像异常检测单元,并将相应的终端界面图像分配至目标图像异常检测单元。这里,术语“图像异常检测单元”一方面可以表示用于对图像异常进行检测的功能单元或结构,其可以表示在服务器设备中的独立单元或结构;另一方面,其还可以表示在服务中心平台中不同的服务器设备,并通过流量调度来实现对批量化测试请求的并行处理。进而,基于各个目标图像异常检测单元中的图像异常检测模型,分别确定被分配的终端界面图像所对应的图像异常识别结果。
由此,通过在多个图像异常检测单元中调度不同的终端界面测试请求,使得不同测试用例标识的请求能并行地在服务端得到响应,可以显著UI测试效率。
图2示出了根据本申请实施例的对图像异常检测模型进行优化的一示例的流程图。
如图2所示,在步骤210中,基于图像异常检测模型,确定各个终端界面图像所对应的图像异常识别结果。关于步骤210的实施细节,可以参照上文中结合步骤150的描述,在此便不赘述。
在步骤220中,根据对应图像异常识别结果为图像存在异常的各个终端界面图像,生成异常图像集。
在一些情况下,研发人员可以通过显示器件来查看异常图像集,以发现软件UI测试过程中出现异常的图片的具体情况,便于用户及时对软件进行调整和改进。
在步骤230中,获取针对异常图像集中的至少一个目标异常图像的误识别标记信息。
在本申请实施例的一个示例中,研发人员可以发现目标异常图像P中并未存在任何异常,则可以在显示器件上对该目标异常图像P进行误识别标记操作,并通过通讯器件将目标异常图像和相应的误识别标记信息发送至服务端。
在本申请实施例的另一示例中,服务端在利用模型对终端界面图像R进行识别时,可以得到对应于标签值(例如,正常图像或异常图像)的置信度(或概率值),并当相应的置信度过低时(例如,无法直接确定终端界面图像是否为正常图像还是异常图像),可以将终端界面图像R作为目标异常图像,并为其附加相应的误识别标记信息。
在步骤240中,根据各个具有误识别标记信息的目标异常图像,更新图像异常检测模型的训练样本集。示例性地,可以将误识别标记信息的图像确定为标签值为“正常图像”的训练样本。
在步骤250中,基于经更新后的训练样本集,重新训练图像异常检测模型。由此,可以利用在实际测试结果来丰富训练样本集的,在不断测试的过程中,实现对图像异常检测模型的迭代训练(即,重训练过程),提高图像异常检测模型的精度。
需说明的是,图像异常检测模型的重训练过程可以是主动触发(例如,人为触发)或自动触发的。示例性地,当误识别标记信息的图像的数量超过设定的数量阈值时,或者当监测到满足设定的时间间隔(例如一周)时,将自动触发重训练模型过程。
在本申请实施例中,服务端可以通过接口的方式为APP自动化测试提供识别服务,通过加载训练好的模型,并设定默认参数和初始化模型对象。进而,服务端可以识别截图,并在截图识别结束后将识别结果返回给调用方,完成一次完整的识别过程。另外,服务端可以采用重训练后的模型,在原有部署配置的条件下部署新的模型,或者覆盖现有的部署模型。优选地,在使用过程中,对训练模型和重训练模型的识别服务可以进行效果对比,保留以往配置,在部署完成以后可以对API进行测试,通过验证效果具有改善后再更新模型和相应配置。
在本申请实施例的一些示例中,图像异常检测模型是以网页的文件格式而保存的,例如图像异常检测模型可以是以H5格式进行保存的,此模型格式优势在加载速度快、适合模型重训练、相比其它格式占用内容少300M,通过加载模型使模型处于运行状态,配置输入的图像宽高尺寸,输入尺寸越大特征越多,提高识别率,以及配置训练时分类的类型名称,通过单张识别或批量识别输出具有较高准确率的图像异常识别结果。这样,通过web服务的方式部署模型,通过接口提供图片输入、图像识别、结果输出的服务,实现在APP自动化测试过程中以接口调用的方式来实现图像识别。
图3示出了根据本申请实施例的图像异常检测模型的一示例的结构框图。
如图3所示,图像异常检测模型300包括深度学习模型模块310和光学字符识别模型模块320,通过融合不同功能的模型模块,可以提高对图像异常类型的检测范围。
一方面,在确定图像异常识别结果时,可以将终端界面图像提供给深度学习模型模块310,以由深度学习模型模块310确定终端界面图像是否存在界面显示异常。这里,深度学习模型模块可以采用RNN(Recurrent Neural Networks,循环神经网络)模型,并且界面显示异常的类型可以是多样化的,例如界面图裂、未加载完整错误图标、按钮/图标重叠、页面加载异常、页面错误信息等。
另一方面,在确定图像异常识别结果时,可以基于光学字符识别(OpticalCharacter Recognition,OCR)模型模块,识别终端界面图像中的文本信息。此外,当所识别的文本信息不符合预设的标准文本条件时,确定终端界面图像存在界面文本显示异常。应理解的是,在不同业务场景下的界面文本显示异常,可以对应地产生相应的。
需说明的是,在一些软件业务场景下,可能需要检测UI是否存在界面延迟或卡顿现象,例如检测直播软件的视频播放是否有延迟或需要等待较长时间。然而,如果需要人工去测试或利用图像RGB对比方式去测试,则会导致消耗大量的人力成本,并且测试结果也无法保障。
鉴于此,在本申请实施例中提出,可以利用图像中的文本信息来确定是否存在图像异常。示例性地,可以获取本地时间信息(例如,服务端本机的时间信息),并当所识别的时间信息与本地时间信息不匹配(例如,不一致或相差较大)时,确定终端界面图像存在界面文本显示异常。此时,服务端可以推定直播软件可能存在播放延迟的界面异常现象。
图4示出了根据本申请实施例的终端界面测试方法的一示例的架构示意图。
如图4所示,客户端在APP自动化测试时可以对不同界面进行自动截图,服务端可以利用OCR模型来识别终端界面图像的UI文本异常识别结果,并可以利用RNN模型来识别终端界面图像的UI显示异常识别结果。
此外,UI测试数据(即,终端界面图像和相应的测试结果)还可以被用来持续优化机器学习模型。具体地,可以利用无法识别或错误识别的终端界面图像来丰富训练样本集,例如可以在为这些终端界面打上标签之后,丰富OCR模型的界面文本样本,以及丰富RNN模型的界面显示样本。
图5A-D分别示出了根据本申请实施例的待模型处理的终端界面截图的示例图。如图5A示出了对应图标重叠的图像异常类型,如图5B示出了对应按钮文字缺失的图像异常类型,如图5C示出了对应识别视频播放是否延迟的截图,如图5D示出了对应识别界面中的验证文本的截图。在本申请实施例的一些示例中,上述图5A和5B中的图像可以是由模型中的RNN模型模块来处理并识别相应的图像异常类型的,上述图5C和图5D的图像可以是由模型中的OCR模型模块来处理并识别相应的图像异常类型的,例如结合图5C中所识别的直播时间信息与本地时间信息进行比对,从而确定是否存在延迟。
图6示出了根据本申请实施例的模型构建训练过程的一示例的原理流程示意图。
如图6所示,在构建训练模型的过程中,首先可以建立完善的训练数据集和测试数据集,每张图片都是不重复的,拥有场景、内容格式、颜色、图标等特征,将这些图片分为两种类别有效的(即,正常图像)和无效的(即,异常图像)。此外,数据集中的一个文件夹对应一个品种,图片具有各种尺寸,均为jpg格式,个别图片需要重新转换,均为彩色图片,并可以将图像进行数据集增强处理(例如,调整图像尺寸为398×224×3),然后将所有图片的80%的图片当作训练集,10%当作验证集,10%当作测试集,并且将训练集随机打乱。
此外,模型可以采用RestNet50残差网络来进行训练,按照提供的已训练的模型包含有完整模型结构的基础上训练,在此基础上正对数据集特点定制化进行模型的参数配置来进行迁移学习。另外,在本申请实施例中的模型所解决的是二分类问题(即,区分“正常图像”和“异常图像”),故可以取消模型的最后一层,并在模型的最后根据分类问题的实际需要重新定义一层输出层,只训练最后定义的全连接层输出的参数,例如可以训练10次,每次的batch样本数取32,激活函数activation使用softmax将向量变成概率分布,这样,模型通过10次训练,实现在测试集上较大的准确率(例如,大概在0.9左右),另外准确率的值还受到数据集以及分类问题的数量的影响。
图7示出了根据本申请实施例的模型重训练过程的一示例的原理流程示意图。
如图7所示,模型被配置成具备重训练(即,持续学习)工作方式,可以依据测试数据而对模型进行更改和更新。通过保存的完整模型结构,可以将已学习的模型参数及结构作为起点并不断的汲取以往经验来重新训练模型,使重训练后的模型准确率提升,而不是每次都从头开始训练。
具体地,可以加载预先训练好的模型,首先将预先训练的模型加载到测试应用中,重新训练模型的过程与模型构建训练的过程基本相同,但区别在于,在重新训练模型的过程中,除了数据之外,还将原始学习的模型参数和模型结构作为输入,并且不需要再次编译模型,其可以被作为模型重训练的起点。在重训练结束后,可以对比之前模型与训练结束后的训练曲线图,以大致判断模型重训练的效果,然后对重训练后的模型进行验证和测试,以确定是否需要继续重训练或将重训练后的模型投入实际测试应用。
在本申请实施例中,随着测试应用服务的长期使用过程,可以对一些识别有误的图像进行人工分类,重新加入数据集进行重训练,让现有模型学习到新的数据集中图像特征。从自动化测试-图像识别-模型重训练形成了一个闭环,逐步优化并提升测试应用的服务性能。另外,在模型重训练过程中,因为保存的h5格式模型有完整的模型结构,并在保存前已经编译过,此时不再需要编译模型,并可以直接加载h5格式模型继续在它上面进行训练,接下来保存新的模型和验证。需说明的是,并不是所有的重训练过程都可以使模型识别准确率提高,而取决于数据集内数据的特征。
在一些实施方式中,还可以通过web服务部署验证模型,继续为UI界面异常识别服务。在不断UI识别自动化过程中,使得识别服务模型会不断地进行自我学习,更加匹配当前需求变动下APP界面和内容的变动,不再需要从头训练模型也可以提升准确率,使得针对图片的异常识别操作更加易用和高效。
在本申请实施例中,只需要维护正常的自动化用例,便可以自动实现UI界面检查和UI文本检查,并且都是零接入工作量的方式,使SQA(Software Quality Assurance,软件质量保证)在实现UI检查和文本检查这一过程时不需要将时间投入在维护上面,可以减轻UI测试过程中的工作量。
通过本申请实施例,实现更加智能化、可控、具有更多可能性的异常识别功能,使得智能化的识别不再受到像素值、图像尺寸、图像上显示的不同内容等影响。此外,本申请实施例可以实现对广泛范围的异常类型的识别操作,比如,发现APP-UI繁锁的页面布局异常、发现APP界面图裂开等。这种情况极少见又是偶发性,如果人工检查可能刷新一下页面这个问题就没有了,但它可能有一定因素导致的图裂;如发现未加载完整的错误图标,一般都是网络原因或者图片资源不存在导致,同样在UI图像识别自动化测试中可以很轻易的被发现,如发现按钮、图标的重叠,这种情况也是极少发现,这属于页面排版中的一种情况,在图像识别时可以轻易发现,有时候不明显的页面人工检查很容易漏掉,也是很难复现的;如发现页面加载异常,这种一般是无网络或者APP组件发生了错误导致组件加载不完整;如发现页面错误信息,有时候APP因为某些bug导致显示一些内部代码抛出的异常,等等。
图8示出了根据本申请实施例的终端界面测试装置的一示例的结构框图。
如图8所示,终端界面测试装置800包括请求获取单元810、请求解析单元820、模型识别单元830和报告生成单元840。
请求获取单元810被配置为获取至少一个终端界面测试请求。
请求解析单元820被配置为解析各个所述终端界面测试请求中的终端界面图像和测试用例标识。
模型识别单元830被配置为基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果。
报告生成单元840被配置为根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图9是本申请实施例的电子设备的一示例的示意图。如图9所示,该实施例的电子设备900包括:处理器910、存储器920以及存储在所述存储器920中并可在所述处理器910上运行的计算机程序930。所述处理器910执行所述计算机程序930时实现上述终端界面测试方法实施例中的步骤,例如图1所示的步骤110至130,或步骤140至步骤160。或者,所述处理器910执行所述计算机程序930时实现上述各装置实施例中各模块/单元的功能,例如图8所示单元810至840的功能。
示例性的,所述计算机程序930可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器920中,并由所述处理器910执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序930在所述电子设备900中的执行过程。例如,所述计算机程序930可以被分割成请求获取程序模块、请求解析程序模块、模型识别程序模块和报告生成程序模块,各程序模块具体功能如下:
请求获取程序模块,被配置为获取至少一个终端界面测试请求;
请求解析程序模块,被配置为解析各个所述终端界面测试请求中的终端界面图像和测试用例标识;
模型识别程序模块,被配置为基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果;
报告生成程序模块,被配置为根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。
所述电子设备900可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可包括,但不仅限于,处理器910、存储器920。本领域技术人员可以理解,图9仅是电子设备900的示例,并不构成对电子设备900的限定,可以包括比图示更多或少的部件,或组合某些部件,或不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器910可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器920可以是所述电子设备900的内部存储单元,例如电子设备900的硬盘或内存。所述存储器920也可以是所述电子设备900的外部存储设备,例如所述电子设备900上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器920还可以既包括所述电子设备900的内部存储单元也包括外部存储设备。所述存储器920用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器920还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述单元既可以采用硬件的形式实现,也可以采用软件的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种终端界面测试方法,应用于服务端,其特征在于,所述方法包括:
获取至少一个终端界面测试请求;
解析各个所述终端界面测试请求中的终端界面图像和测试用例标识;
基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果;
根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。
2.如权利要求1所述的方法,其特征在于,所述基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果,包括:
针对各个测试用例标识,在所述服务端的多个图像异常检测单元中选择与所述测试用例标识匹配的目标图像异常检测单元,并将相应的终端界面图像分配至所述目标图像异常检测单元;
基于各个所述目标图像异常检测单元中的图像异常检测模型,分别确定被分配的终端界面图像所对应的图像异常识别结果。
3.如权利要求1所述的方法,其特征在于,在基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果之后,所述方法还包括:
根据对应图像异常识别结果为图像存在异常的各个终端界面图像,生成异常图像集;
获取针对所述异常图像集中的至少一个目标异常图像的误识别标记信息;
根据各个具有误识别标记信息的所述目标异常图像,更新所述图像异常检测模型的训练样本集;
基于经更新后的训练样本集,重新训练所述图像异常检测模型。
4.如权利要求1所述的方法,其特征在于,所述图像异常检测模型包括深度学习模型模块,
其中,所述基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果,包括:
将所述终端界面图像提供给所述深度学习模型模块,以由所述深度学习模型模块确定所述终端界面图像是否存在界面显示异常。
5.如权利要求1所述的方法,其特征在于,所述图像异常检测模型包括光学字符识别模型模块,
其中,所述基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果,包括:
基于所述光学字符识别模型模块,识别所述终端界面图像中的文本信息;
当所识别的文本信息不符合预设的标准文本条件时,确定所述终端界面图像存在界面文本显示异常。
6.如权利要求5所述的方法,其特征在于,所述文本信息为时间信息,所述方法还包括:
获取本地时间信息;
当所识别的时间信息与所述本地时间信息不匹配时,确定所述终端界面图像存在界面文本显示异常。
7.一种终端界面测试方法,应用于客户端,其特征在于,所述方法包括:
获取自动化测试指令,所述自动化测试指令包括至少一个测试用例标识;
根据各个所述测试用例标识执行相应的测试操作,并对各个所述测试操作所对应的终端界面进行截图;
根据各个终端界面截图和相应的测试用例标识,发送终端界面测试请求至服务端,使得所述服务端调用图像异常检测模型而生成图像界面测试报告,其中所述图像界面测试报告包含各个所述测试用例标识和相应的所述图像异常识别结果。
8.一种终端界面测试装置,其特征在于,包括:
请求获取单元,被配置为获取至少一个终端界面测试请求;
请求解析单元,被配置为解析各个所述终端界面测试请求中的终端界面图像和测试用例标识;
模型识别单元,被配置为基于图像异常检测模型,确定各个所述终端界面图像所对应的图像异常识别结果;
报告生成单元,被配置为根据各个所述测试用例标识和相应的所述图像异常识别结果,生成图像界面测试报告。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如如权利要求1-7中任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110473068.1A CN115269359A (zh) | 2021-04-29 | 2021-04-29 | 终端界面测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110473068.1A CN115269359A (zh) | 2021-04-29 | 2021-04-29 | 终端界面测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115269359A true CN115269359A (zh) | 2022-11-01 |
Family
ID=83745663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110473068.1A Pending CN115269359A (zh) | 2021-04-29 | 2021-04-29 | 终端界面测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115269359A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982018A (zh) * | 2022-12-21 | 2023-04-18 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
CN116662211A (zh) * | 2023-07-31 | 2023-08-29 | 四川弘和数智集团有限公司 | 显示界面测试方法、装置及设备和介质 |
-
2021
- 2021-04-29 CN CN202110473068.1A patent/CN115269359A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982018A (zh) * | 2022-12-21 | 2023-04-18 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
CN115982018B (zh) * | 2022-12-21 | 2024-03-29 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
CN116662211A (zh) * | 2023-07-31 | 2023-08-29 | 四川弘和数智集团有限公司 | 显示界面测试方法、装置及设备和介质 |
CN116662211B (zh) * | 2023-07-31 | 2023-11-03 | 四川弘和数智集团有限公司 | 显示界面测试方法、装置及设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784369A (zh) | H5页面测试方法与装置、电子设备、存储介质 | |
CN111753701B (zh) | 应用程序的违规检测方法、装置、设备和可读存储介质 | |
CN109800153A (zh) | 移动应用测试方法与装置、电子设备、存储介质 | |
CN115269359A (zh) | 终端界面测试方法及装置 | |
CN110851299A (zh) | 自动化流程的异常排除方法、装置、设备及存储介质 | |
CN113051543B (zh) | 在大数据环境下的云服务安全校验方法及云服务系统 | |
CN109840199A (zh) | 一种自动化测试方法及终端 | |
CN111309505A (zh) | 页面异常处理方法、装置、电子设备 | |
CN112712498A (zh) | 移动终端执行的车辆定损方法、装置、移动终端、介质 | |
CN113568833A (zh) | 测试用例确定方法、装置、计算机设备及可读存储介质 | |
CN113034421A (zh) | 一种图像检测方法、装置及存储介质 | |
CN113138916B (zh) | 基于标注样本的图片结构化算法的自动测试方法及系统 | |
CN111598128A (zh) | 用户界面的控件状态识别、控制方法、装置、设备及介质 | |
CN114495103B (zh) | 文本识别方法、装置、电子设备和介质 | |
CN115546824B (zh) | 禁忌图片识别方法、设备及存储介质 | |
CN110992299A (zh) | 一种检测浏览器兼容性的方法及装置 | |
CN112257768B (zh) | 一种非法金融图片的识别方法、装置、计算机存储介质 | |
CN111626369B (zh) | 一种人脸识别算法效果评估方法、装置、机器可读介质及设备 | |
CN110827261B (zh) | 图像质量检测方法及装置、存储介质及电子设备 | |
CN116932360A (zh) | 一种页面测试方法、装置、计算机设备和存储介质 | |
CN113284141A (zh) | 用于缺陷检测的模型确定方法、装置和设备 | |
CN113468066A (zh) | 用户界面测试方法及装置 | |
CN110716778A (zh) | 应用兼容性测试方法、装置及系统 | |
CN111400534A (zh) | 图像数据的封面确定方法、装置及计算机存储介质 | |
CN112446850A (zh) | 适配测试方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |