CN112468641B - 程序测试方法、装置、终端及存储介质 - Google Patents

程序测试方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN112468641B
CN112468641B CN202011153936.XA CN202011153936A CN112468641B CN 112468641 B CN112468641 B CN 112468641B CN 202011153936 A CN202011153936 A CN 202011153936A CN 112468641 B CN112468641 B CN 112468641B
Authority
CN
China
Prior art keywords
image
processing program
image processing
program
testing
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.)
Active
Application number
CN202011153936.XA
Other languages
English (en)
Other versions
CN112468641A (zh
Inventor
钟子豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bigo Technology Pte Ltd
Original Assignee
Bigo Technology Pte Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bigo Technology Pte Ltd filed Critical Bigo Technology Pte Ltd
Priority to CN202011153936.XA priority Critical patent/CN112468641B/zh
Publication of CN112468641A publication Critical patent/CN112468641A/zh
Application granted granted Critical
Publication of CN112468641B publication Critical patent/CN112468641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/24Arrangements for testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/002Diagnosis, testing or measuring for television systems or their details for television cameras
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种程序测试方法、装置、终端及存储介质,涉及应用程序开发和测试技术领域。所述方法包括:获取预定义的第一图像;通过摄像头拍摄得到第二图像,第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像;在拍摄界面中采用第一图像替换掉第二图像进行显示;基于第一图像对图像处理程序进行自动化测试。在本申请实施例中,通过采用预定义的第一图像自动替换摄像头拍摄得到的第二图像,并基于第一图像对图像处理程序进行自动化测试,一方面,相比于通过人工手持测试机拍摄测试所需的图像,提升了图像处理程序的测试效率;另一方面,相比于直接采用第一图像测试图像处理程序,提升了图像处理程序的测试准确性和效果。

Description

程序测试方法、装置、终端及存储介质
技术领域
本申请实施例涉及应用程序开发和测试技术领域,特别涉及一种程序测试方法、装置、终端及存储介质。
背景技术
随着智能手机技术的发展,出现了很多基于摄像头拍摄功能的图像处理程序,在这些图像处理程序的开发阶段,需要对其进行测试。
在相关技术中,需要人工手持智能手机,使用智能手机的摄像头拍摄测试所需的图像,并采用拍摄的图像对图像处理程序进行测试,从而完成一次图像处理程序的测试过程。
在上述相关技术中,通过人工实时拍摄画面来测试图像处理程序,测试效率较低。
发明内容
本申请实施例提供了一种程序测试方法、装置、终端及存储介质,能够提升图像处理程序的测试效率和测试准确性。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种程序测试方法,所述方法包括:
获取预定义的第一图像;
通过摄像头拍摄得到第二图像,所述第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像;
在所述拍摄界面中采用所述第一图像替换掉所述第二图像进行显示;
基于所述第一图像对所述图像处理程序进行自动化测试。
根据本申请实施例的一个方面,提供了一种程序测试装置,所述装置包括:
图像获取模块,用于获取预定义的第一图像;
图像拍摄模块,用于通过摄像头拍摄得到第二图像,所述第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像;
图像替换模块,用于在所述拍摄界面中采用所述第一图像替换掉所述第二图像进行显示;
程序测试模块,用于基于所述第一图像对所述图像处理程序进行自动化测试。
根据本申请实施例的一个方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上述程序测试方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述程序测试方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品由处理器加载并执行以实现如上述程序测试方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过采用预定义的第一图像自动替换摄像头拍摄得到的第二图像,并基于第一图像对图像处理程序进行自动化测试,一方面,相比于通过人工手持测试机拍摄测试所需的图像,提升了图像处理程序的测试效率;另一方面,相比于直接采用第一图像测试图像处理程序,提升了图像处理程序的测试准确性和效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的程序测试方法的流程图;
图3是本申请一个实施例提供的拍摄界面的示意图;
图4是本申请另一个实施例提供的程序测试方法的流程图;
图5是本申请另一个实施例提供的拍摄界面的示意图;
图6是本申请另一个实施例提供的拍摄界面的示意图;
图7是本申请另一个实施例提供的程序测试方法的流程图;
图8是本申请一个实施例提供的程序测试装置的框图;
图9是本申请另一个实施例提供的程序测试装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图,该实施环境可以实现为程序测试系统,该程序测试系统10可以包括:测试机11和测试节点12。
测试机11中可以运行有图像处理程序,测试机11可用于对图像处理程序进行测试,图像处理程序是能够对摄像头拍摄得到的图像进行处理的程序。测试机11可以是智能手机、平板电脑、PC(Personal Computer,个人计算机)、智能穿戴设备、智能机器人、电子书阅读器等终端,终端是具备数据计算、处理和存储能力的电子设备。在一些实施例中,图像处理程序可以是原生应用程序(如原生的图像处理应用程序的客户端),原生应用程序是能够直接运行于操作系统的应用程序。在另一些实施例中,测试机11中安装有原生应用程序(如原生应用程序的客户端),图像处理程序是原生应用程序的子功能程序,原生应用程序的子功能程序是指原生应用程序的一个功能运行时所对应的部分程序。可选地,原生应用程序包括但不限于:专用于处理图像的应用程序、游戏应用程序、社交应用程序、购物应用程序、支付应用程序、视频应用程序、音乐应用程序、新闻应用程序等任何具有图像处理功能的应用程序。在另一些实施例中,图像处理程序是子应用程序,子应用程序是依赖母应用程序运行的应用程序。上述子应用程序可以称之为小程序,小程序不能独立运行,但无需下载安装即可使用。用户通过扫描子应用程序对应的图形码(如二维码、条形码等),或者搜索子应用程序的名称或相关词条,即可直接打开该子应用程序。子应用程序能够在母应用程序中被便捷地获取和传播。母应用程序是用于承载子应用程序的应用程序,为子应用程序提供运行环境。可选地,母应用程序是原生应用程序。母应用程序可以是图像处理应用程序、社交应用程序、专门支持子应用程序的专用应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。社交应用程序包括即时通信应用、SNS(Social Network Service,社交网站)应用或者直播应用等。在另一些实施例中,图像处理程序是门户网站的子功能程序,门户网站的子功能程序是指门户网站的一个功能运行时所对应的部分程序。可选地,门户网站包括:图像处理类网站、游戏类网站、社交类网站、购物类网站、支付类网站、视频类网站、音乐类网站、新闻类网站等任何具有图像处理功能的网站。
测试节点12用于向测试机11发送图像处理程序所需的图像。测试节点12还用于向测试机11发送测试图像处理程序所需的测试脚本,以控制测试机执行测试脚本以实现自动化测试。测试节点12和测试机11之间建立有通信连接,如基于TCP(Transmission ControlProtocol,传输控制协议)的USB(Universal Serial Bus,通用串行总线)线缆连接等,或者还可以是无线网络连接等,本申请实施例对此不作限定。测试节点12可以是PC、平板电脑、智能机器人等终端。在一些实施例中,相关技术人员13通过测试节点12编写自定义代码,测试节点12向测试机11发送自定义代码以控制测试机11执行相应的操作。
在使用测试机测试图像处理程序时,需要采用多个图像分别进行多次测试。由于测试机置于机房内,只能拍摄到房间墙壁或者杂物,无法实时获取测试所需的图像(如包含人脸的图像),因而相关技术中,需要人工手持测试机拍摄每次测试所需的图像,并手动触发图像处理程序的目标功能以进行程序测试。而本申请实施例提供的技术方案中,测试机通过接收来自于测试节点的图像(即第一图像),将摄像头拍摄的图像(即第二图像)替换为来自于测试节点的图像,并基于第一图像对图像处理程序进行自动化测试,无需人工手持测试机拍摄每次测试所需的图像,提升了图像处理程序的测试效率;另外,相比于直接采用第一图像对图像处理程序进行测试,本申请实施例的测试过程仍会调用摄像头功能,保持了测试过程的完整性,从而提升了程序测试的准确性和测试效果。
下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图2,其示出了本申请一个实施例提供的程序测试方法的流程图。在本实施例中,以该方法应用于上文介绍的测试机中来举例说明。该方法可以包括如下几个步骤:
步骤201,获取预定义的第一图像。
其中,第一图像是指预先准备好的、用来测试图像处理程序的图像。可选地,第一图像包括静态图片、动态图片和视频中的任意一种。在一些实施例中,第一图像是由测试机之外的其他设备拍摄得到的,测试机是指图像处理程序所在的终端。在一些实施例中,第一图像是拍摄得到的原图;在另一些实施例中,第一图像是经过裁剪、拼接、调光、调色等方式处理后的图像。在一个示例中,当第一图像为其他设备拍摄得到的图像时,对第一图像的原始图像进行处理,得到处理后的第一图像,将处理后的第一图像作为预定义的第一图像。处理后的第一图像的图像参数,与由测试机拍摄得到图像的图像参数相同或相似。可选地,图像参数包括:图像画幅比例、图像面积大小、图像所占的存储空间的大小、像素精度、色温、清晰度等等。图像处理程序在实际应用过程中处理的图像,是由图像处理程序所在终端的摄像头拍摄得到的,因而测试图像处理程序所使用的图像,应当尽可能与图像处理程序所在终端的摄像头拍摄得到的图像相同或相似,从而在图像处理程序的测试过程中,尽可能真实地模拟图像处理程序的实际使用过程,进而使得测试完成的图像处理程序,在实际应用过程能够具有更好的使用效果和使用体验。可见,上述实现方式提升了图像处理程序的测试准确性。
步骤202,通过摄像头拍摄得到第二图像。
其中,第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像。可选地,摄像头是测试机自带的摄像头,或外接在测试机上的摄像头。在一些实施例中,图像处理程序能够调用测试机的摄像头拍摄第二图像。
步骤203,在拍摄界面中采用第一图像替换掉第二图像进行显示。
在一些实施例中,拍摄界面是图像处理程序的拍摄界面。如图3所示,在自动化的程序测试过程中,测试机拍摄不到所需的图像(如人脸图像),因而显示在拍摄界面中的第二图像31无法用来执行程序测试,显然无法直接采用测试机实际拍摄到的第二图像31测试图像处理程序。因而,将拍摄界面中显示的第二图像31替换为第一图像32,第一图像32符合测试特向处理程序所需图像的要求。
步骤204,基于第一图像对图像处理程序进行自动化测试。
可选地,当将拍摄界面中的第二图像替换为第一图像之后,通过自动执行预先注入图像处理程序的测试脚本(即下文所述的自定义代码),采用第一图像对图像处理程序进行自动化测试。在一些实施例中,当一次测试完成之后,从步骤201开始进行下一次的测试。
综上所述,本申请实施例提供的方案中,通过采用预定义的第一图像自动替换摄像头拍摄得到的第二图像,并基于第一图像对图像处理程序进行自动化测试,一方面,相比于通过人工手持测试机拍摄测试所需的图像,提升了图像处理程序的测试效率;另一方面,相比于直接采用第一图像测试图像处理程序,提升了图像处理程序的测试准确性和效果。
另外,本申请实施例通过实现自动化测试,节省了人力资源,降低了程序测试所需的成本。
请参考图4,其示出了本申请另一个实施例提供的程序测试方法的流程图。在本实施例中,以该方法应用于上文介绍的测试机中来举例说明。该方法可以包括如下几个步骤:
步骤401,接收来自于测试节点的通信连接命令。
通信连接命令用于使测试机与测试节点建立通信连接。其中,通信连接命令包括第一通信端口的端口信息和第二通信端口的端口信息,第一通信端口是测试节点的通信端口,第二通信端口是测试机的通信端口,测试机为图像处理程序所在的终端。可选地,第一通信端口的端口信息是第一通信端口的标识信息,第二通信端口的端口信息是第二通信端口的标识信息。在一些实施例中,第一通信端口和第二通信端口为USB端口,USB端口包括:Type-C端口、micro-usb端口、Lightning端口(闪电端口)、Type-A端口、Type-B端口等等。其中,上述Type-C端口、micro-usb端口、Lightning端口(闪电端口)、Type-A端口、Type-B端口为不同类型的用于数据传输的USB端口的名称。在一些实施例中,通过将线缆的两端分别与测试节点的第一端口和测试机的第二端口相连接,从而连接测试节点和测试机,测试节点通过线缆将通信连接命令发送至测试机。
在一些实施例中,测试机的操作系统为iOS系统(iPhone Operation System,苹果公司移动操作系统),iOS系统自带有私有的USB协议usbmux,基于该协议能够使运行iOS系统的测试机与测试节点之间进行通信。相关技术人员操控测试节点通过开源库libusbmuxd提供的命令行应用程序iproxy生成通信连接命令,测试节点将通信连接命令发送至测试机。通信连接命令的格式可以是:iproxy第一通信端口第二通信端口[安装有iOS系统的测试机的序列号]。
在另一些实施例中,测试机的操作系统为Android(安卓)系统,Android系统自带有调试器adb。相关技术人员操控测试节点通过调试器adb生成通信连接命令,测试节点将通信连接命令发送至测试机。通信连接命令的格式可以是:adb[-s安装有Android系统的测试机的序列号]forward tcp:第一通信端口tcp:第二通信端口。
步骤402,基于第一通信端口的端口信息和第二通信端口的端口信息,与测试节点建立通信连接。
当确定第一端口的端口信息和第二端口的端口信息之后,测试机和测试节点能够基于TCP协议,在软件层面建立通信连接。
步骤403,基于与测试节点之间建立的通信连接,接收来自于测试节点的第一图像。
当测试机与测试节点之间建立了通信连接之后,测试机通过向测试节点发送请求,测试节点根据测试机发送的请求,向测试机发送第一图像,或向测试机发送包含有第一图像的多个图像。
在一些实施例中,本步骤403包括如下子步骤:
1、基于通信连接,向测试节点发送第一图像获取请求,第一图像获取请求携带有用于指示所请求的图像的筛选条件;
2、接收测试节点发送的第一图像,第一图像是从图像存储单元中随机选取的符合筛选条件的图像。
测试机能够向测试节点发送第一图像获取请求,第一图像获取请求中携带有图像的筛选条件。可选地,筛选条件包括第一图像的图像参数,与由测试机拍摄得到的图像的图像参数相同或相似。测试节点从图像存储单元中查询至少一个符合筛选条件的图像,并从至少一个符合筛选条件的图像随机选取一个图像作为发送给测试机的第一图像。图像存储单元是测试节点用于存储图像的存储装置,图像存储单元可以设置在测试节点内,也可以设置在测试节点外,本申请实施例对此不作限定。
在一些可能的实施例中,图像存储单元中不存在符合筛选条件的图像,则测试节点将图像存储单元中与筛选条件的负荷程度最高的图像,确定为发送给测试机的第一图像。
在一些实施例中,本步骤403包括如下子步骤:
1、基于通信连接,向测试节点发送第二图像获取请求,第二图像获取请求携带有第一图像的图像标识;
2、接收测试节点发送的第一图像。
测试机向测试节点发送第二图像获取请求,第二图像获取请求携带有第一图像的图像标识。测试节点能够直接根据第一图像的图像标识确定第一图像,并将第一图像发送给测试机。第一图像的图像标识包括第一图像的名称、第一图像的编号、第一图像的标记信息等等。
在一些可能的实施例中,测试节点中存储的多个图像具有一定的排序,如图像由简单到复杂依次排序(或按照图像由简单到复杂的顺序,标记有对应的序号),测试机向测试节点发送的第二图像获取请求中,不必携带第一图像的相关信息,测试节点按照接收到的来自于测试机的多次第二图像获取请求的先后顺序,按照多个图像的排列顺序依次将图像发送给测试机。在一个示例中,测试节点中存储的多个图像由简单到复杂排序依次对应有序号:1、2、3……当测试节点第一次接收到来自于测试机的第二图像获取请求,测试节点将序号为1的图像作为该次的第一图像并将其发送给测试机;当测试节点第二次接收到来自于测试机的第二图像获取请求,测试节点将序号为2的图像作为该次的第一图像并将其发送给测试机……以此类推。
在一些实施例中,本步骤403包括如下子步骤:
1、基于通信连接,向测试节点发送第三图像获取请求;接收第二终端发送的至少一个图像,以及至少一个图像的图像信息,图像信息包括至少一个图像分别对应的参数和图像内容;
2、根据至少一个图像的图像信息,从至少一个图像中选取第一图像。
测试机能够向测试节点发送第三图像获取请求,测试节点根据接收到的第三图像获取请求向测试机发送至少一个图像,以及至少一个图像的图像信息。测试机根据每次测试所需图像的图像信息,从至少一个图像中选取对应的图像作为第一图像。
步骤404,通过摄像头拍摄得到第二图像。
本步骤404与上述图2实施例的步骤202的内容相同或相似,此处不再赘述。
步骤405,在拍摄界面中采用第一图像替换掉第二图像进行显示。
本步骤405的部分内容可以参考上述图2实施例的步骤203的内容,此处不再赘述。
在一些实施例中,本步骤405包括如下子步骤:
1、通过注入至图像处理程序的自定义代码,获取摄像头的回调函数,回调函数用于向图像处理程序提供摄像头拍摄到的图像,自定义代码用于修改回调函数;
2、将回调函数中第二图像的图像数据,替换为第一图像的图像数据;
3、基于第一图像的图像数据,在拍摄界面中显示第一图像。
通过自定义代码的代码逻辑,获取摄像头对应的回调函数,将回调函数中通过摄像头实时拍摄得到的第二图像的图像数据,替换为第一图像的图像数据,使得图像处理程序调用回调函数以在拍摄界面中显示图像时,获取到的是回调函数中替换后的第一图像的图像数据,并根据第一图像的图像数据在拍摄界面中显示第一图像,从而完成拍摄界面中的图像的替换过程。可选地,自定义代码还用于模拟真实用户自动操控图像处理程序,以实现图像处理程序的自动化测试。在一些实施例中,第一图像的图像数据和第二图像的图像数据的格式相同,避免了因为图像数据的格式不相同而产生的程序异常。
在一些实施例中,通过注入至图像处理程序的自定义代码,获取摄像头的回调函数,包括:
1、基于操作系统自带的代码注入功能,向图像处理程序中注入自定义代码;
2、响应于图像处理程序启动,通过自定义代码获取摄像头的回调函数。
在一些实施例中,测试机的操作系统为iOS系统,其代码注入功能具有Objective-C语言的Method Swizzle特性,从而可以直接向图像处理程序注入自定义代码。可选地,iOS系统中摄像头对应的回调函数为:
-(void)captureOutput:(AVCaptureOutput*)outputdidOutputSampleBuffer:(CMS ampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection;
iOS系统中摄像头对应的回调函数中的sampleBuffer参数即为第二图像的图像数据,因而,将回调函数中第二图像的图像数据,替换为第一图像的图像数据,即为:将sampleBuffer参数替换为第一图像的图像数据。可选地,第一图像的图像数据和sampleBuffer参数的格式均为YUV(颜色编码方法)编码格式家族中的NV12格式。
在另一些实施例中,通过注入至图像处理程序的自定义代码,获取摄像头的回调函数,包括:
1、采用操作系统之外的代码库,向图像处理程序中注入自定义代码,操作系统为图像处理程序的运行环境;
2、响应于图像处理程序启动,通过自定义代码获取摄像头的回调函数。
在一些实施例中,测试机的操作系统为Android系统,可以使用开源的代码库SandHook向图像处理程序中注入自定义代码:在图像处理程序启动时,使用SandHook将摄像头的回调函数中第二图像的图像数据替换为第一图像的图像数据。可选地,Android系统中摄像头对应的回调函数为:
Camera.PreviewCallback.onPreviewFrame(byte[]data,Camera camera);
Android系统中摄像头对应的回调函数中的data(数据)数组即为第二图像的图像数据,因而,将回调函数中第二图像的图像数据,替换为第一图像的图像数据,即为:将data数组替换为第一图像的图像数据。可选地,第一图像的图像数据和data数组的格式均为YUV(颜色编码方法)编码格式家族中的NV12格式。
步骤406,基于第一图像对图像处理程序的目标功能进行自动化测试。
当拍摄界面中的图像被替换为第一图像之后,选取第一图像的全部或部分图像,对图像处理程序的目标功能进行自动化测试。如图5所示,选取第一图像的区域51中的图像内容对图像处理程序的目标功能进行自动化测试。
其中,目标功能包括以下至少一种:滤镜功能、美颜功能和特效添加功能。目标功能还可以包括音乐添加功能。在一个示例中,如图6所示,特效添加功能包括贴纸添加功能61,在贴纸功能中选取目标贴纸样式62,将目标贴纸样式62对应的贴纸63添加至第一图像64中,从而实现一次贴纸自动添加操作。
在一些实施例中,对图像处理程序的目标功能进行自动化测试的测试内容包括:测试目标功能能否实现、测试目标功能能够顺利实现的百分比、测试目标功能的实现效果、测试目标功能的实现效果较好的百分比等等。
综上所述,本申请实施例提供的技术方案中,通过向图像处理程序中注入自定义代码,使拍摄界面中的图像实现自动替换,提升了图像处理应用程序的测试效率。
另外,本申请实施例对测试图像处理程序所使用的第一图像设置一定的筛选条件,从而有针对性地对图像处理程序进行测试,提升了测试所使用的图像的整体利用效率,从而节约程序测试的时间。
下面,基于图7对本申请实施例进行简要的总结性介绍。如图7所示,本申请实施例提供的程序测试方法可以包括如下几个步骤:
步骤701,测试机启动图像处理程序,并向图像处理程序注入自定义代码;
步骤702,测试机打开位于测试机上的第二通信端口;
步骤703,测试节点将位于测试节点上的第一通信端口的端口信息发送至第一通信端口,向测试机发起通信连接;
步骤704,测试机与测试节点建立通信连接;
步骤705,测试节点向测试机发送第一图像;
步骤706,测试机通过自定义代码,将摄像头对应的回调函数中包括的第二图像的图像数据,替换为第一图像的图像数据;
步骤707,测试机基于第一图像,对图像处理程序进行自动化测试。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图8,其示出了本申请一个实施例提供的程序测试装置的框图。该装置具有实现上述程序测试方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端,也可以设置在终端上。该装置800可以包括:图像获取模块810、图像拍摄模块820、图像替换模块830和程序测试模块840。
所述图像获取模块810,用于获取预定义的第一图像。
所述图像拍摄模块820,用于通过摄像头拍摄得到第二图像,所述第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像。
所述图像替换模块830,用于在所述拍摄界面中采用所述第一图像替换掉所述第二图像进行显示。
所述程序测试模块840,用于基于所述第一图像对所述图像处理程序进行自动化测试。
综上所述,本申请实施例提供的方案中,通过采用预定义的第一图像自动替换摄像头拍摄得到的第二图像,并基于第一图像对图像处理程序进行自动化测试,一方面,相比于通过人工手持测试机拍摄测试所需的图像,提升了图像处理程序的测试效率;另一方面,相比于直接采用第一图像测试图像处理程序,提升了图像处理程序的测试准确性和效果。
在示例性实施例中,如图9所示,所述图像替换模块830包括:函数获取子模块831、图像替换子模块832和图像显示子模块833。
所述函数获取子模块831,用于通过注入至所述图像处理程序的自定义代码,获取所述摄像头的回调函数,所述回调函数用于向所述图像处理程序提供所述摄像头拍摄到的图像,所述自定义代码用于修改所述回调函数。
所述图像替换子模块832,用于将所述回调函数中所述第二图像的图像数据,替换为所述第一图像的图像数据。
所述图像显示子模块833,用于基于所述第一图像的图像数据,在所述拍摄界面中显示所述第一图像。
在示例性实施例中,如图9所示,所述函数获取子模块831,用于:基于操作系统自带的代码注入功能,向所述图像处理程序中注入所述自定义代码;响应于所述图像处理程序启动,通过所述自定义代码获取所述摄像头的回调函数;或,采用操作系统之外的代码库,向所述图像处理程序中注入所述自定义代码,所述操作系统为所述图像处理程序的运行环境;响应于所述图像处理程序启动,通过所述自定义代码获取所述摄像头的回调函数。
在示例性实施例中,如图9所示,所述装置800还包括:命令接收模块850和通信建立模块860;所述图像获取模块810,包括:图像获取子模块811。
所述命令接收模块850,用于接收来自于测试节点的通信连接命令,所述通信连接命令包括第一信端口的端口信息和第二通信端口的端口信息,所述第一通信端口是所述测试节点的通信端口,所述第二通信端口是测试机的通信端口,所述测试机为所述图像处理程序所在的终端。
所述通信建立模块860,用于基于所述第一通信端口的端口信息和所述第二通信端口的端口信息,与所述测试节点建立通信连接。
所述图像获取子模块811,用于基于所述通信连接,从所述测试节点获取所述第一图像。
在示例性实施例中,如图9所示,所述图像获取子模块811,用于:
基于所述通信连接,向所述测试节点发送图像获取请求,所述图像获取请求中包括用于指示所请求图像的筛选条件;基于所述通信连接,接收来自于所述测试节点的所述第一图像,所述第一图像是从预定义的图像集合中选取的符合所述筛选条件的图像;或者,基于所述通信连接,向所述测试节点发送图像获取请求,所述图像获取请求中包括所述第一图像的图像标识;基于所述通信连接,接收来自于所述测试节点的所述第一图像;或者,基于所述通信连接,向所述测试节点发送图像获取请求;基于所述通信连接,接收来自于所述测试节点的至少一个图像以及各个所述图像的图像信息;根据各个所述图像的图像信息,从所述至少一个图像中选取所述第一图像。
在示例性实施例中,所述程序测试模块840,用于:基于所述第一图像对所述图像处理程序的目标功能进行自动化测试;其中,所述目标功能包括以下至少一种:滤镜功能、美颜功能和特效添加功能。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述程序测试方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述程序测试方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被处理器执行时,其用于实现上述程序测试方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种程序测试方法,其特征在于,所述方法包括:
向测试节点发送图像获取请求,所述图像获取请求中包括预定义的第一图像的图像标识,所述图像标识为根据所述第一图像的复杂程度确定的排序编号,所述第一图像的复杂程度与所述图像获取请求在向测试节点发送的至少一个图像获取请求中的位次正相关;
接收来自于所述测试节点的所述第一图像;
通过摄像头拍摄得到第二图像,所述第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像,所述第一图像的图像参数和数据格式,与所述第二图像的图像参数和数据格式相同;
通过注入至所述图像处理程序的自定义代码,获取所述摄像头的回调函数,所述回调函数用于向所述图像处理程序提供所述摄像头拍摄到的图像,所述自定义代码用于修改所述回调函数;
将所述回调函数中所述第二图像的图像数据,替换为所述第一图像的图像数据;
基于所述第一图像的图像数据,在所述拍摄界面中显示所述第一图像;基于所述第一图像对所述图像处理程序进行自动化测试。
2.根据权利要求1所述的方法,其特征在于,所述通过注入至所述图像处理程序的自定义代码,获取所述摄像头的回调函数,包括:
基于操作系统自带的代码注入功能,向所述图像处理程序中注入所述自定义代码;响应于所述图像处理程序启动,通过所述自定义代码获取所述摄像头的回调函数;
或,
采用操作系统之外的代码库,向所述图像处理程序中注入所述自定义代码;响应于所述图像处理程序启动,通过所述自定义代码获取所述摄像头的回调函数。
3.根据权利要求1所述的方法,其特征在于,所述向测试节点发送图像获取请求之前,还包括:
接收来自于所述测试节点的通信连接命令,所述通信连接命令包括第一通信端口的端口信息和第二通信端口的端口信息,所述第一通信端口是所述测试节点的通信端口,所述第二通信端口是测试机的通信端口,所述测试机为所述图像处理程序所在的终端;
基于所述第一通信端口的端口信息和所述第二通信端口的端口信息,与所述测试节点建立通信连接;
所述方法还包括:
基于所述通信连接,从所述测试节点获取所述第一图像。
4.根据权利要求3所述的方法,其特征在于,所述基于所述通信连接,从所述测试节点获取所述第一图像,包括:
基于所述通信连接,向所述测试节点发送图像获取请求,所述图像获取请求中包括用于指示所请求图像的筛选条件;基于所述通信连接,接收来自于所述测试节点的所述第一图像,所述第一图像是从预定义的图像集合中选取的符合所述筛选条件的图像;
或者,
基于所述通信连接,向所述测试节点发送图像获取请求,所述图像获取请求中包括所述第一图像的图像标识;基于所述通信连接,接收来自于所述测试节点的所述第一图像;
或者,
基于所述通信连接,向所述测试节点发送图像获取请求;基于所述通信连接,接收来自于所述测试节点的至少一个图像以及各个所述图像的图像信息;根据各个所述图像的图像信息,从所述至少一个图像中选取所述第一图像。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述第一图像对所述图像处理程序进行自动化测试,包括:
基于所述第一图像对所述图像处理程序的目标功能进行自动化测试;
其中,所述目标功能包括以下至少一种:滤镜功能、美颜功能和特效添加功能。
6.一种程序测试装置,其特征在于,所述装置包括:
图像获取模块,用于向测试节点发送图像获取请求,所述图像获取请求中包括预定义的第一图像的图像标识,所述图像标识为根据所述第一图像的复杂程度确定的排序编号,所述第一图像的复杂程度与所述图像获取请求在向测试节点发送的至少一个图像获取请求中的位次正相关;接收来自于所述测试节点的所述第一图像;
图像拍摄模块,用于通过摄像头拍摄得到第二图像,所述第二图像是用于在待测试的图像处理程序的拍摄界面中显示的图像,所述第一图像的图像参数和数据格式,与所述第二图像的图像参数和数据格式相同;
函数获取子模块,用于通过注入至所述图像处理程序的自定义代码,获取所述摄像头的回调函数,所述回调函数用于向所述图像处理程序提供所述摄像头拍摄到的图像,所述自定义代码用于修改所述回调函数;
图像替换子模块,用于将所述回调函数中所述第二图像的图像数据,替换为所述第一图像的图像数据;
图像显示子模块,用于基于所述第一图像的图像数据,在所述拍摄界面中显示所述第一图像;
程序测试模块,用于基于所述第一图像对所述图像处理程序进行自动化测试。
7.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上述权利要求1至5任一项所述的程序测试方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述权利要求1至5任一项所述的程序测试方法。
CN202011153936.XA 2020-10-26 2020-10-26 程序测试方法、装置、终端及存储介质 Active CN112468641B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011153936.XA CN112468641B (zh) 2020-10-26 2020-10-26 程序测试方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011153936.XA CN112468641B (zh) 2020-10-26 2020-10-26 程序测试方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN112468641A CN112468641A (zh) 2021-03-09
CN112468641B true CN112468641B (zh) 2023-04-21

Family

ID=74834457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011153936.XA Active CN112468641B (zh) 2020-10-26 2020-10-26 程序测试方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN112468641B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354143A (zh) * 2015-12-02 2016-02-24 北京奇虎科技有限公司 一种用于应用程序的测试方法及装置
CN107631750A (zh) * 2017-08-04 2018-01-26 宇龙计算机通信科技(深圳)有限公司 用于测试待测终端的方法、装置、终端和存储介质
CN109656800A (zh) * 2017-10-10 2019-04-19 百度在线网络技术(北京)有限公司 图像识别应用的测试方法、装置、终端及存储介质
WO2020202337A1 (ja) * 2019-03-29 2020-10-08 三菱電機株式会社 画像生成装置、テストシステム、画像生成方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354143A (zh) * 2015-12-02 2016-02-24 北京奇虎科技有限公司 一种用于应用程序的测试方法及装置
CN107631750A (zh) * 2017-08-04 2018-01-26 宇龙计算机通信科技(深圳)有限公司 用于测试待测终端的方法、装置、终端和存储介质
CN109656800A (zh) * 2017-10-10 2019-04-19 百度在线网络技术(北京)有限公司 图像识别应用的测试方法、装置、终端及存储介质
WO2020202337A1 (ja) * 2019-03-29 2020-10-08 三菱電機株式会社 画像生成装置、テストシステム、画像生成方法及びプログラム

Also Published As

Publication number Publication date
CN112468641A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN104820643B (zh) 用于在用户设备与智能设备之间建立连接的方法和装置
CN111629240B (zh) 多屏互动显示方法及装置
CN108763086A (zh) 基于远程真机的脚本录制方法、终端及计算机可读存储介质
CN108965932B (zh) 一种连麦窗口展示方法及装置
CN113850746A (zh) 图像处理方法、装置、电子设备及存储介质
CN112950738B (zh) 渲染引擎的处理方法及装置、存储介质和电子设备
EP3061214B1 (en) Method and apparatus for displaying image
CN109558331B (zh) 应用程序的缺陷检测方法、装置、设备和存储介质
CN111246272A (zh) 视频封面图的显示方法及装置
CN109656800B (zh) 图像识别应用的测试方法、装置、终端及存储介质
CN105303143B (zh) 一种信息扫描处理方法、系统及终端
CN103488508B (zh) 一种浏览器的工作方法、浏览器及终端设备
CN112468641B (zh) 程序测试方法、装置、终端及存储介质
CN108717357A (zh) 页面展示代码转换方法、装置、设备及计算机存储介质
CN114253824A (zh) 游戏兼容性测试方法及系统
CN110113630B (zh) 视频检测方法、装置、电子设备及存储介质
CN113835789A (zh) 渲染方法、装置、电子设备及计算机存储介质
CN112882938B (zh) 一种场景数据测试方法、系统、电子设备及介质
CN113467776B (zh) 设备的接入方法、装置、存储介质和电子装置
CN110515834B (zh) 接口测试方法、装置、移动终端及存储介质
CN111688605B (zh) 一种应用于汽车仪表的文字批量切图方法及相关设备
CN111860015A (zh) 一种信息处理方法及装置、存储介质
CN111124907A (zh) 一种手机游戏测试方法、装置和服务器
CN110673919A (zh) 截屏方法和装置
CN113271502B (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
GR01 Patent grant
GR01 Patent grant