CN106776350A - 一种程序的精准测试方法和装置 - Google Patents
一种程序的精准测试方法和装置 Download PDFInfo
- Publication number
- CN106776350A CN106776350A CN201710073999.6A CN201710073999A CN106776350A CN 106776350 A CN106776350 A CN 106776350A CN 201710073999 A CN201710073999 A CN 201710073999A CN 106776350 A CN106776350 A CN 106776350A
- Authority
- CN
- China
- Prior art keywords
- test
- function
- test case
- precisely
- case
- 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
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
本发明实施例公开了一种程序的精准测试方法和装置;本发明实施例采用确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行该测试用例时被测程序运行的函数,建立该函数与该测试用例之间的对应关系,并保存该对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果;该方案可以提高应用程序精准测试的效率和准确性。
Description
技术领域
本发明涉及自动化测试技术领域,具体涉及一种程序的精准测试方法和装置。
背景技术
为了提高应用程序的质量,需要对应用程序进行精准测试,以测试出应用程序的相关问题和漏洞。
目前,应用程序的精准测试的主要过程包括:在终端安装精准测试应用程序,然后,测试人员按照操作步骤进行手动测试,如手动选择用例、点击开始、执行用例、点击结束等等。
然而,由于目前应用程序的精准测试主要依赖于测试人员手动操作,其测试时间比较长、且错误率比较高,因此,会导致应用程序的精准测试的效率和准确性低下。
发明内容
本发明实施例提供一种程序的精准测试方法和装置,可以提高应用程序精准测试的效率和准确性。
本发明实施例提供一种程序的精准测试方法,包括:
确定精准测试所使用的测试用例集合;
执行测试用例集合中相应的测试用例;
获取执行所述测试用例时被测程序运行的函数;
建立所述函数与所述测试用例之间的对应关系,并保存所述对应关系;
当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便所述服务器根据所述对应关系生成精准测试结果。
相应的,本发明实施例还提供一种程序的精准测试装置,包括:
第一确定单元,用于确定精准测试所使用的测试用例集合;
用例执行单元,用于执行测试用例集合中相应的测试用例;
函数获取单元,用于获取执行所述测试用例时被测程序运行的函数;
关系建立单元,用于建立所述函数与所述测试用例之间的对应关系,并保存所述对应关系;
发送单元,用于当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便所述服务器根据所述对应关系生成精准测试结果。
本发明实施例采用确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行该测试用例时被测程序运行的函数,建立该函数与该测试用例之间的对应关系,并保存该对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果;由于该方案可以对程序进行自动化精准测试,无需测试人员手动测试,提高了应用程序精准测试的效率和准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的程序的精准测试方法的流程图;
图2a本发明实施例提供的精准测试系统的场景示意图;
图2b是本发明实施例提供的程序的精准测试方法的另一流程图;
图2c是本发明实施例提供精准测试的系统架构图;
图3a是本发明实施例提供的程序的精准测试装置的结构示意图;
图3b是本发明实施例提供的程序的精准测试装置的另一结构示意图;
图3c是本发明实施例提供的程序的精准测试装置的又一结构示意图;
图3d是本发明实施例提供的程序的精准测试装置的又一结构示意图;
图4是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种程序的精准测试方法和装置。以下将分别进行详细说明。
实施例一、
本实施例将从程序的精准测试装置的角度进行描述,该精准测试装置具体可以集成在终端中,该终端可以为手机、平板电脑等终端设备。
一种程序的精准测试方法,包括:确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行该测试用例时被测程序运行的函数,建立该函数与该测试用例之间的对应关系,并保存该对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果。
如图1所示,该程序的精准测试方法的流程图具体可以如下:
101、确定精准测试所使用的测试用例集合。
其中,测试用例集合包括一个或者多个测试用例。本实施例中测试用例为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
该测试用例可以根据实际测试需求和被测程序来设定。
本实施例中精准测试可以在对程序进行自动化测试的过程中进行,即本实施例可以自动化测试技术进行改进,以使得在对被测程序进行自动化测试时可以进行精准测试。也即步骤“”确定精准测试所使用的测试用例集合可以包括:在对被测程序进行自动化测试时,确定精准测试所使用的测试用例集合。此时,自动化测试所使用的的测试用例集合即为精准测试所使用的测试用例集合。
比如,在被测程序的自动化测试任务的执行过程中,确定精准测试所使用的测试用例集合。
本实施例中,程序的精准测试指的是:建立测试用例与被测程序函数的对应关系,以测试程序函数运行情况和测试用例情况等,比如计算函数覆盖率、推荐测试用例等,从而减少漏测、提高自动化测试质量和效率。
可选地,在自动化测试开始时,还需要对终端进行初始化,并确定是否需要进行精准测试,若是,则需要对精准测试进行标识,以便后续在自动化测试过程中可以快速确定是否需要进行精准测试,即对用户指示是否需要进行精准测试的精准测试标识进行设置,以使得该标识指示需要进行精准测试。也即在步骤101之前,本实施例方法还可以包括:
对终端进行初始化,并获取服务器发送的精准测试指示参数;
根据该精准测试指示参数确定是否需要进行精准测试;若是,则对用于指示是否需要进行精准测试的精准测试标识进行设置,以便该精准测试标识指示需要进行精准测试。
本实施例中,精准测试标识可以包括:终端系统的全局变量,比如,手机系统的全局变量raven_logcat_flag。当确定需要进行精准测试时,可以将全局变量raven_logcat_flag设置为1,以便在后续自动化测试过程中指示需要进行精准测试。
在采用自动化测试技术进行精准测试时,该精准测试标识还可以包括:自动化测试任务变量。此时,步骤“对用于指示是否需要进行精准测试的精准测试标识进行设置”可以包括:
将终端系统的全局变量设置为第一预设阈值;
根据该全局变量将自动化测试任务变量设置为第二预设阈值。
其中,第一预设阈值与第二预设阈值可以相同,也可以不同。例如可以均为1。本实施例中,可以在自动化测试任务开始申请终端时,根据该全局变量将自动化测试任务变量设置为第二预设阈值。
比如,在确定需要进行精准测试时,可以将全局变量raven_logcat_flag设置为1,以指示需要进行精准测试,当全局变量raven_logcat_flag设置为1时,可以将自动化测试任务变量_logcat_flag也设置为1,以指示在自动化测试过程中需要进行精准测试。
又比如,在将全局变量raven_logcat_flag设置为1后,自动测试任务开始时,读取全局变量raven_logcat_flag,若是1,则设置自动化测试任务变量logcat_flag为1。以便执行测试用例时告知需要进行精准测试。
本实施例在需要精准测试时,可以对终端系统的全局变量进行设置,以标识需要进行精准测试,这样在后续自动化测试过程中无需重复基于精准测试指示参数确定是否需要进行精准测试,节省了终端资源,提高了精准测试的速度。
本实施例,可以在开始对被测程序进行自动化测试时,即自动化测试任务开始时,对终端进行初始化,比如,对Android(安卓)手机或虚拟机初始化。并且在初始化时获取自动化测试服务器发送的精准参数。
其中,精准测试指示参数可以包括:用于指示是否需要进行精准测试的指示参数、测试安装包路径等等。
此时,步骤“根据该精准测试指示参数确定是否需要进行精准测试”可以包括:
当指示参数指示需要进行精准测试,且测试安装包路径对应的安装包为精准测试安装包时,则确定需要进行精准测试;否则,确定不需要进行精准测试。
比如,在使用QT4A自动化测试技术进行精准测试时,可以获取服务器发送的是否运行精准任务的参数QT4A_PRECISE、和安装包路径product_path,当参数QT4A_PRECISE为Yes/Y,安装包路径product_path对应的测试安装包为精准测试安装包时,确定表示要运行精准测试任务,此时,可以将终端全局变量raven_logcat_flag设为1。
可选地,在被测程序的自动化测试结束(如所有测试用例执行完毕)时,可以对终端环境进行清理,还原终端系统全局变量,比如,可以将终端全局变量raven_logcat_flag设为0。
102、执行测试用例集合中相应的测试用例。
比如,在对被测程序进行自动化测试的过程中,执行测试用例集合中相应的测试用例。
具体地,可以从测试用例集合中选取当前使用的测试用例,并执行该测试用例。
本实施例中,可以为测试用例设置相应的标识,即用例标识,比如,可以为测试用例编号。此时,可以根据测试用例的用例标识,从测试用例集合中选取当前使用的测试用例。比如,在给测试用例编号时,可以按照序号从小到大的顺序从集合中选取当前使用的测试用例。
在对被测程序进行自动化测试的过程中,可以调用某个函数,然后,根据该函数执行测试用例集合中相应的测试用例,其中,该函数对应一个测试用例。
例如,在进行自动化测试的过程中,可以调用函数start_step,执行测试用例集合中选取相应的测试用例。其中,每个start_step对应一个测试用例。
本实施例中,可以基于QTA(Quick Test Automation)技术来实现精准测试方法,比如,可以采用QT4A(Quick Test for Android)来实现精准测试方法。
QTA,是一套完整的测试自动化解决方案,包括从用例编写,用例组织,用例分布式执行等功能。QTA支持Windows,Web,GF、Android、iOS、后台的自动化等。
QT4A,即Quick Test for Android,基于QTA提供的面向Android应用的UI测试自动化解决方案。其具有轻松易用、引擎强大(支持Android Native控件、Web控件和自定义控件)、高效维护等特点。比如,采用QT4A测试时,只需Root手机,无需产品源代码和编译,使用发布版本即可进行测试。又比如,QT4A测试,可以基于QPath技术和QTA UI框架,降低产品变化的脚本维护投入,等等。
在使用QT4A进行自动化测试时,步骤“从测试用例集合中选取当前使用的测试用例,并执行该测试用例”可以包括:
获取基于QT4A的自动化测试脚本;
根据该自动化测试脚本,执行测试用例集合中相应的测试用例。
比如,可以运行该基于QT4A的自动化脚本,以选取并执行相应的测试用例。
103、获取执行该测试用例时被测程序运行的函数。
其中,被测程序可以为终端应用程序等,比如,可以为即时通讯应用、音乐应用等等。
为了节省资源,本实施例测试方法只要在需要进行精准测试时才获取被测程序运行的函数。比如在设置了精准测试标识时,步骤“获取执行该测试用例时被测程序运行的函数”可以包括:
当该精准测试标识指示需要进行精准测试时,获取执行该测试用例时被测程序运行的函数。
比如,当精准测试标识包括自动化测试任务变量时,在执行测试用例时可以读取自动化测试任务变量,当该自动化测试任务变量为第二预设阈值时,获取执行该测试用例时被测程序运行的函数。
例如,当执行测试用例时可以读取logcat_flag,如果logcat_flag为1,则获取执行该测试用例时被测程序运行的函数。
本实施例获取函数的方式有多种,比如可以通过被测程序打印的运行日志log来获取被测程序运行的函数。也即步骤“获取执行该测试用例时被测程序运行的函数”可以包括:
记录被测程序打印的运行日志;
从记录的运行日志中,获取执行该测试用例时该被测程序运行的函数。
其中,被测程序打印的运行日志包括:该被测程序运行的函数信息,如,被测程序运行的函数日志log,该函数日志log包括函数的标识、时间、运行次数等等。
本实施例中,获取被测程序运行的函数可以为获取被测程序运行函数的函数标识,比如,可以从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数日志,也即精准测试所需的函数日志。该函数日志包括函数的标识等。
实际精准测试中,需要执行测试用例集合中所有的测试用例,因此,本实施例在执行测试用例之后,还返回执行测试用例集合中相应的测试用例的步骤,以执行下一个测试用例。也即,本实施例方法,在执行完该测试用例之后,还可以包括:
当执行完该测试用例时,确定该测试用例集合中所有测试用例是否执行完毕;
若否,则返回执行测试用例集合中相应的测试用例的步骤,以执行下一个测试用例。
本实施例中,获取被测程序运行的函数的时机可以有多种,比如,为了节省终端资源以及提高函数获取效率,本实施例中可以在开始执行下一个测试用例时获取被测程序运行的函数。比如,步骤“从记录的运行日志中,获取执行该测试用例时该被测程序运行的函数”可以包括:
当开始执行下一个测试用例时,从记录的运行日志中,获取执行该测试用例时该被测程序运行的函数。
例如,在自动化测试过程中,可以调用函数start_step1(start_step1对应测试用例A),执行测试用例集合中的测试用例A,当自动化测试任务变量logcat_flag为1时记录被测程序打印的运行日志log。当调用下一个函数start_step2(start_step2对应测试用例B)时,可以从记录的运行日志中,获取执行该测试用例时该被测程序运行函数的函数日志log。
104、建立该函数与该测试用例之间的对应关系,并保存该对应关系。
该函数与测试用例之间的对应关系可以为函数与测试用例之间的映射关系,比如,可以函数标识与测试用例的用例标识之间的对应关系。
具体地,在从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数标识的情况下,步骤“建立该函数与该测试用例之间的对应关系”可以包括:
建立该测试用例的用例标识与函数标识之间的对应关系。
比如,当从记录的运行日志中获取运行函数的函数日志时,可以建立用例标识id与函数日志log之间的对应关系,然后,保证到内存或者其他存储单元中。
105、当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果。
比如,在执行完测试用例集合中所有测试用例时,即自动化测试结束时,执行函数post_test,把内存中的测试用例id和函数log对应关系上传给精准测试服务器。
其中,精准测试结果可以包括:函数覆盖率、推荐测试用例、覆盖率统计结果等等,具体,可以根据实际需求选定。
比如,可以在执行完所有测试用例之后,将保存的用例标识id与函数日志log之间的对应关系上传至服务器,服务器可以根据用例标识id与函数日志log之间的对应关系,获取被测程序的函数覆盖率、推荐测试用例等等。
例如,假设被测程序有1000个函数,在执行完100个测试用例之后,服务器根据终端上传的用例标识id与函数日志log之间的对应关系可以获知被测程序运行了800个函数,那么此时,函数覆盖率即为(800/1000)*100%=80%。
由上可知,本发明实施例采用确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行该测试用例时被测程序运行的函数,建立该函数与该测试用例之间的对应关系,并保存该对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果;由于该方案可以对程序进行自动化精准测试,无需测试人员手动测试,提高了应用程序精准测试的效率和准确性。
此外,由于该方案可以基于自动化测试技术来进行精准测试,在进行自动化测试的过程上报用例与函数的对应关系,以实现精准测试,无需对自动化测试技术如脚本做很大的改动,还可以降低了精准测试成本、提升了精准测试方法的适用性。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该精准测试装置具体集成终端为例进行说明。
参考图2a,提高了一种精准测试系统,该系统包括终端和服务器,该终端集成有上述精准测试装置。该终端与服务器通过网络连,该终端可以在自动化测试时获取被测程序函数与测试用例之后的对应关系,在测试结束时,终端将该对应关系上报给服务器,服务器根据被测程序函数与测试用例之后的对应关系获取精准测试结果。
如图2b所示,一种程序的精准测试方法,具体流程如下:
201、终端进行设备初始化,并获取服务器发送的精准测试指示参数。
参考图2c,在对程序进行自动化测试之前,需要对设备环境进行初始化,比如,开启打印精准日志,即开启打印被测程序的运行日志功能。
其中,精准测试指示参数可以包括:用于指示是否需要进行精准测试的指示参数、测试安装包路径等等。
参考图2c,在自动化测试结束之后,还可以进行设备环境清理,比如,关闭打印精准日志,可以将终端全局变量raven_logcat_flag设为0。
202、终端根据该精准测试指示参数确定是否需要进行精准测试,若是,则执行步骤203。
具体地,当指示参数指示需要进行精准测试,且测试安装包路径对应的安装包为精准测试安装包时,则确定需要进行精准测试;否则,确定不需要进行精准测试。
本实施例中,当确定不需要进行精准测试时,可以执行正常的自动化测试流程,对程序进行自动化测试。
参考图2c,比如,在使用QT4A自动化测试技术进行自动化测试时,可以获取服务器发送的是否运行精准任务的参数QT4A_PRECISE、和安装包路径product_path,当参数QT4A_PRECISE为Yes/Y,安装包路径product_path对应的测试安装包为精准测试安装包时,确定表示要运行精准测试任务。
203、终端将系统的全局变量设置为第一预设阈值。
具体地,可以将全局变量设置为1等,比如,参考图2c,可以将终端全局变量raven_logcat_flag设为1。
204、在被测程序的自动化测试任务开始时,终端读取系统的全局变量,该全局变量为第一预设阈值时,将自动化测试任务变量设置为第二预设阈值。
比如,在自动化测试任务开始时,可以执行函数acquire_device申请终端,读取系统全局变量raven_logcat_flag,如果是1,设置自动化测试任务变量logcat_flag为1。
比如,可以获取自动化测试脚本,执行该自动化测试脚本以实现步骤204-211。在使用QT4A自动化测试技术进行精准测试时,可以获取基于QT4A的自动化测试脚本;执行该自动化测试脚本,以实现步骤204-211。
205、终端执行自动化测试任务的过程中,确定自动化测试所使用的测试用例集合。
本实施例中自动化测试任务可以为基于QTA、QT4A等测试技术的测试任务。
其中,该测试用例集合包括多个测试用例,如1000个。
206、终端执行测试用例集合中相应的测试用例集合。
具体地,终端可以调用某个函数,然后,根据该函数执行测试用例集合中相应的测试用例。比如终端调用函数start_step,执行测试用例集合中选取相应的测试用例。其中,每个start_step对应一个测试用例。
207、当自动化测试任务变量为第二预设阈值时,终端记录被测程序打印的运行日志。
参考图2c,比如,当自动化测试任务变量logcat_flag为1,终端会开始记录被测程序打印的log。即获取测试用例精准log,然后,
208、当终端执行完当前测试用例时,确定该测试用例集合中所有测试用例是否执行完毕,若否,则返回步骤206执行下一个测试用例,并执行步骤209,若是,则执行步骤211。
参考图2c,比如,当终端执行完当前测试用例时之后,若测试用例集合中所有测试用例未执行完,那么可以调用函数start_step,执行测试用例集合中选取下一个相应的测试用例。
209、终端从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数日志。
参考图2c,比如,在调用下一个函数start_step时,从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数日志log(即筛选测试用例精准log)。
210、终端建立测试用例的用例标识与函数日志之间的对应关系,并保存该对应关系。
终端可以将用例标识id与函数日志log对应起来,并保存在内存中。
211、终端将保存的对应关系发送给服务器。
参考图2c,在测试用例集合中所有测试用例执行完毕时,即自动化测试任务结束时,可以执行函数post_test,把内存中的测试用例id和函数log之间的对应关系发送给服务器。
参考图2c,在自动化测试任务结束时还可以清理测试用例以及清理设备环境,如把终端系统的全局变量raven_logcat_flag设为0,等等。
212、服务器根据接收到的对应关系获取被测程序的精准测试结果。
比如,服务器可以根据测试用例id和函数log之间的对应关系获取函数覆盖率、推荐测试用例等等。
由上可知,本发明实施例采用确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行该测试用例时被测程序运行的函数,建立该函数与该测试用例之间的对应关系,并保存该对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果;由于该方案可以对程序进行自动化精准测试,无需测试人员手动测试,提高了应用程序精准测试的效率和准确性。
此外,由于该方案可以基于自动化测试技术来进行精准测试,在进行自动化测试的过程上报用例与函数的对应关系,以实现精准测试,无需对自动化测试技术如脚本做很大的改动,还可以降低了精准测试成本、提升了精准测试方法的适用性。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种程序的精准测试装置,如图3a所示,该程序的精准测试装置包括第一确定301、用例执行单元302、函数获取单元303、关系建立单元304和发送单元305,如下:
(1)第一确定301;
第一确定301,用于确定精准测试所使用的测试用例集合。
比如,第一确定单元301可以在对被测程序进行自动化测试时,确定精准测试所使用的测试用例集合。此时,自动化测试所使用的的测试用例集合即为精准测试所使用的测试用例集合。
其中,测试用例集合包括一个或者多个测试用例。本实施例中测试用例为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
(2)用例执行单元302;
用例执行单元302,用于执行测试用例集合中相应的测试用例。
比如,用例执行单元302在对被测程序进行自动化测试的过程中,执行测试用例集合中相应的测试用例。
具体地,用例执行单元302可以用于从测试用例集合中选取当前使用的测试用例,并执行该测试用例。
实际测试中,用例执行单元302可以调用某个函数,然后根据该函数执行测试用例集合中相应的测试用例,其中,该函数对应一个测试用例。
(3)函数获取单元303;
函数获取单元303,用于获取执行该测试用例时被测程序运行的函数。
其中,参考图3b,函数获取单元303可以包括:
记录子单元3031,用于记录被测程序打印的运行日志;
获取子单元3032,用于从记录的运行日志中,获取执行该测试用例时该被测程序运行的函数。
比如,该获取子单元3032可以具体用于从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数标识。
例如,获取子单元3032可以具体用于从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数日志,也即精准测试所需的函数日志。该函数日志包括函数的标识等。
可选地,参考图3c,本实施例精准测试装置还可以包括:第二确定单元306;
该第二确定单元306,用于当执行完该测试用例时,确定该测试用例集合中所有测试用例是否执行完毕,若否,则触发该用例执行单元302执行测试用例集合中相应的测试用例的步骤,以执行下一个测试用例;
该获取子单元3032,用于当该用例执行单元302执行下一个测试用例时,从记录的运行日志中获取执行该测试用例时该被测程序运行的函数。
(4)关系建立单元304;
关系建立单元304,用于建立该函数与该测试用例之间的对应关系,并保存该对应关系。
比如,在获取子单元3032用于从记录的运行日志中获取执行该测试用例时该被测程序运行函数的函数标识时,关系建立单元304可以用于建立该测试用例的用例标识与函数标识之间的对应关系。
(5)发送单元305;
发送单元305,用于当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果。
比如,发送单元305用于在执行完测试用例集合中所有测试用例时,即自动化测试结束时,执行函数post_test,把内存中的测试用例id和函数log对应关系上传给精准测试服务器。
其中,精准测试结果可以包括:函数覆盖率、推荐测试用例、覆盖率统计结果等等,具体,可以根据实际需求选定。
可选地,参考图3d,本实施例精准测试装置还可以包括:
初始化单元307,用于对终端进行初始化,并获取服务器发送的精准测试指示参数;
第三确定单元308,用于根据该精准测试指示参数确定是否需要进行精准测试;
标识设置单元309,用于在第三确定单元308确定需要进行精准测试时,对用于指示是否需要进行精准测试的精准测试标识进行设置,以便该精准测试标识指示需要进行精准测试;
该函数获取单元303,用于当该精准测试标识指示需要进行精准测试时,获取执行该测试用例时被测程序运行的函数。
比如,标识设置单元309,可以用于在第三确定单元308确定需要进行精准测试时将终端系统的全局变量设置为第一预设阈值;根据该全局变量将自动化测试任务变量设置为第二预设阈值。
此时,函数获取单元303,可以用于读取自动化测试任务变量,当该自动化测试任务变量为第二预设阈值时,获取执行该测试用例时被测程序运行的函数。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该精准测试装置具体可以集成在终端中,该终端可以为手机、平板电脑等终端设备。
由上可知,本发明实施例采用第一确定单元301确定精准测试所使用的测试用例集合,然后,由用例执行单元302执行测试用例集合中相应的测试用例,由函数获取单元303获取执行该测试用例时被测程序运行的函数,由关系建立单元304建立该函数与该测试用例之间的对应关系,并保存该对应关系,由发送单元305当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便该服务器根据该对应关系生成精准测试结果;由于该方案可以对程序进行自动化精准测试,无需测试人员手动测试,提高了应用程序精准测试的效率和准确性。
此外,由于该方案可以基于自动化测试技术来进行精准测试,在进行自动化测试的过程上报用例与函数的对应关系,以实现精准测试,无需对自动化测试技术如脚本做很大的改动,还可以降低了精准测试成本、提升了精准测试方法的适用性。
实施例四、
本实施例还提供了一种终端,比如,请参考图4,该终端400可以包括射频(RF,Radio Frequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(WiFi,Wireless Fidelity)模块407、包括有一个或者一个以上处理核心的处理器408以及电源409等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
射频电路401可用于收发信息,或通话过程中信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给基站。存储器402可用于存储软件程序以及模块。处理器408通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。
输入单元403可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元403可包括触敏表面以及其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、指纹识别模组等中的一种或多种。
显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
终端还可包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。
音频电路406可通过扬声器、传声器提供用户与终端之间的音频接口。
处理器408是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器408可包括一个或多个处理核心;优选的,处理器408可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和目标应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器408中。
终端还包括给各个部件供电的电源409(比如电池)。尽管未示出,终端还可以包蓝牙模块、摄像头等,在此不再赘述。
在本实施例中,终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:
确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行所述测试用例时被测程序运行的函数,建立所述函数与所述测试用例之间的对应关系,并保存所述对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便所述服务器根据所述对应关系生成精准测试结果。
其中,获取执行所述测试用例时被测程序运行的函数,包括:
记录被测程序打印的运行日志;
从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数。
比如,从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数,包括:
从记录的运行日志中获取执行所述测试用例时所述被测程序运行函数的函数标识;
此时,建立所述函数与所述测试用例之间的对应关系,包括:
建立所述测试用例的用例标识与函数标识之间的对应关系。
处理器508还用于实现功能:当执行完所述测试用例时,确定所述测试用例集合中所有测试用例是否执行完毕;
若否,则返回执行测试用例集合中相应的测试用例的步骤,以执行下一个测试用例。
其中,从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数,包括:
当开始执行下一个测试用例时,从记录的运行日志中获取执行所述测试用例时所述被测程序运行的函数。
处理器508还用于实现功能:在确定精准测试所使用的测试用例集合之前,对终端进行初始化,并获取服务器发送的精准测试指示参数;根据所述精准测试指示参数确定是否需要进行精准测试;若是,则对用于指示是否需要进行精准测试的精准测试标识进行设置,以便所述精准测试标识指示需要进行精准测试。
此时,获取执行所述测试用例时被测程序运行的函数,包括:
当所述精准测试标识指示需要进行精准测试时,获取执行所述测试用例时被测程序运行的函数。
由上可知,本发明实施例终端采用确定精准测试所使用的测试用例集合,然后,执行测试用例集合中相应的测试用例,获取执行所述测试用例时被测程序运行的函数,建立所述函数与所述测试用例之间的对应关系,并保存所述对应关系,当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便所述服务器根据所述对应关系生成精准测试结果;由于该方案可以对程序进行自动化精准测试,无需测试人员手动测试,提高了应用程序精准测试的效率和准确性
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种程序的精准测试方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种程序的精准测试方法,其特征在于,包括:
确定精准测试所使用的测试用例集合;
执行测试用例集合中相应的测试用例;
获取执行所述测试用例时被测程序运行的函数;
建立所述函数与所述测试用例之间的对应关系,并保存所述对应关系;
当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便所述服务器根据所述对应关系生成精准测试结果。
2.如权利要求1所述的精准测试方法,其特征在于,获取执行所述测试用例时被测程序运行的函数,包括:
记录被测程序打印的运行日志;
从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数。
3.如权利要求2所述的精准测试方法,其特征在于,从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数,包括:
从记录的运行日志中获取执行所述测试用例时所述被测程序运行函数的函数标识;
建立所述函数与所述测试用例之间的对应关系,包括:建立所述测试用例的用例标识与函数标识之间的对应关系。
4.如权利要求2所述的精准测试方法,其特征在于,所述方法还包括:
当执行完所述测试用例时,确定所述测试用例集合中所有测试用例是否执行完毕;
若否,则返回执行测试用例集合中相应的测试用例的步骤,以执行下一个测试用例;
从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数,包括:
当开始执行下一个测试用例时,从记录的运行日志中获取执行所述测试用例时所述被测程序运行的函数。
5.如权利要求1所述的精准测试方法,其特征在于,在确定精准测试所使用的测试用例集合之前,所述方法还包括:
对终端进行初始化,并获取服务器发送的精准测试指示参数;
根据所述精准测试指示参数确定是否需要进行精准测试;若是,则对用于指示是否需要进行精准测试的精准测试标识进行设置,以便所述精准测试标识指示需要进行精准测试;
获取执行所述测试用例时被测程序运行的函数,包括:
当所述精准测试标识指示需要进行精准测试时,获取执行所述测试用例时被测程序运行的函数。
6.如权利要求5所述的精准测试方法,其特征在于,对用于指示是否需要进行精准测试的精准测试标识进行设置,包括:
将终端系统的全局变量设置为第一预设阈值;
根据所述全局变量将自动化测试任务变量设置为第二预设阈值;
当所述精准测试标识指示需要进行精准测试时,获取执行所述测试用例时被测程序运行的函数,包括:
读取自动化测试任务变量,当所述自动化测试任务变量为第二预设阈值时,获取执行所述测试用例时被测程序运行的函数。
7.一种程序的精准测试装置,其特征在于,包括:
第一确定单元,用于确定精准测试所使用的测试用例集合;
用例执行单元,用于执行测试用例集合中相应的测试用例;
函数获取单元,用于获取执行所述测试用例时被测程序运行的函数;
关系建立单元,用于建立所述函数与所述测试用例之间的对应关系,并保存所述对应关系;
发送单元,用于当执行完测试用例集合中所有测试用例时,向服务器发送保存的对应关系,以便所述服务器根据所述对应关系生成精准测试结果。
8.如权利要求7所述的精准测试装置,其特征在于,所述函数获取单元,包括:
记录子单元,用于记录被测程序打印的运行日志;
获取子单元,用于从记录的运行日志中,获取执行所述测试用例时所述被测程序运行的函数。
9.如权利要求8所述的精准测试装置,其特征在于,获取子单元,用于:从记录的运行日志中获取执行所述测试用例时所述被测程序运行函数的函数标识;
所述关系建立单元,用于建立所述测试用例的用例标识与函数标识之间的对应关系。
10.如权利要求8所述的精准测试装置,其特征在于,还包括:第二确定单元;
所述第二确定单元,用于当执行完所述测试用例时,确定所述测试用例集合中所有测试用例是否执行完毕,若否,则触发所述用例执行单元执行测试用例集合中相应的测试用例的步骤,以执行下一个测试用例;
所述获取子单元,用于当所述用例执行单元执行下一个测试用例时,从记录的运行日志中获取执行所述测试用例时所述被测程序运行的函数。
11.如权利要求7所述的精准测试装置,其特征在于,还包括:
初始化单元,用于对终端进行初始化,并获取服务器发送的精准测试指示参数;
第三确定单元,用于根据所述精准测试指示参数确定是否需要进行精准测试;
标识设置单元,用于在第三确定单元确定需要进行精准测试时,对用于指示是否需要进行精准测试的精准测试标识进行设置,以便所述精准测试标识指示需要进行精准测试;
所述函数获取单元,用于当所述精准测试标识指示需要进行精准测试时,获取执行所述测试用例时被测程序运行的函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710073999.6A CN106776350A (zh) | 2017-02-10 | 2017-02-10 | 一种程序的精准测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710073999.6A CN106776350A (zh) | 2017-02-10 | 2017-02-10 | 一种程序的精准测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776350A true CN106776350A (zh) | 2017-05-31 |
Family
ID=58955799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710073999.6A Pending CN106776350A (zh) | 2017-02-10 | 2017-02-10 | 一种程序的精准测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776350A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874661A (zh) * | 2018-05-07 | 2018-11-23 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 测试映射关系库生成方法、装置、计算机设备和存储介质 |
CN108959070A (zh) * | 2018-06-13 | 2018-12-07 | 珠海金山网络游戏科技有限公司 | 一种基于代码对象的Python钩子函数方法和装置 |
CN109656825A (zh) * | 2018-12-12 | 2019-04-19 | 网易(杭州)网络有限公司 | 美术资源处理的方法及装置、电子设备、存储介质 |
CN109901983A (zh) * | 2017-12-07 | 2019-06-18 | 北京京东尚科信息技术有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN110134583A (zh) * | 2019-04-11 | 2019-08-16 | 口碑(上海)信息技术有限公司 | 软件测试及数据处理方法及装置 |
CN110895509A (zh) * | 2019-11-15 | 2020-03-20 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN112099838A (zh) * | 2019-06-17 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 确定版本差异的方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132056B2 (en) * | 2008-02-28 | 2012-03-06 | International Business Machines Corporation | Dynamic functional testing coverage based on failure dependency graph |
CN102831055A (zh) * | 2012-07-05 | 2012-12-19 | 陈振宇 | 基于加权属性的测试用例选择方法 |
CN103092748A (zh) * | 2011-11-07 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 一种确定需要进行回归测试的测试用例的方法及系统 |
CN106294104A (zh) * | 2015-05-22 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种测试用例的执行方法及移动终端 |
-
2017
- 2017-02-10 CN CN201710073999.6A patent/CN106776350A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132056B2 (en) * | 2008-02-28 | 2012-03-06 | International Business Machines Corporation | Dynamic functional testing coverage based on failure dependency graph |
CN103092748A (zh) * | 2011-11-07 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 一种确定需要进行回归测试的测试用例的方法及系统 |
CN102831055A (zh) * | 2012-07-05 | 2012-12-19 | 陈振宇 | 基于加权属性的测试用例选择方法 |
CN106294104A (zh) * | 2015-05-22 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种测试用例的执行方法及移动终端 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901983A (zh) * | 2017-12-07 | 2019-06-18 | 北京京东尚科信息技术有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108874661A (zh) * | 2018-05-07 | 2018-11-23 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 测试映射关系库生成方法、装置、计算机设备和存储介质 |
CN108874661B (zh) * | 2018-05-07 | 2020-12-22 | 未鲲(上海)科技服务有限公司 | 测试映射关系库生成方法、装置、计算机设备和存储介质 |
CN108959070A (zh) * | 2018-06-13 | 2018-12-07 | 珠海金山网络游戏科技有限公司 | 一种基于代码对象的Python钩子函数方法和装置 |
CN109656825A (zh) * | 2018-12-12 | 2019-04-19 | 网易(杭州)网络有限公司 | 美术资源处理的方法及装置、电子设备、存储介质 |
CN109656825B (zh) * | 2018-12-12 | 2022-05-03 | 网易(杭州)网络有限公司 | 美术资源处理的方法及装置、电子设备、存储介质 |
CN110134583A (zh) * | 2019-04-11 | 2019-08-16 | 口碑(上海)信息技术有限公司 | 软件测试及数据处理方法及装置 |
CN110134583B (zh) * | 2019-04-11 | 2023-06-16 | 口碑(上海)信息技术有限公司 | 软件测试及数据处理方法及装置 |
CN112099838A (zh) * | 2019-06-17 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 确定版本差异的方法、装置及存储介质 |
CN112099838B (zh) * | 2019-06-17 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 确定版本差异的方法、装置及存储介质 |
CN110895509A (zh) * | 2019-11-15 | 2020-03-20 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN110895509B (zh) * | 2019-11-15 | 2023-04-18 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776350A (zh) | 一种程序的精准测试方法和装置 | |
CN111459794B (zh) | 通信网络测试方法、装置、计算机设备和存储介质 | |
CN104765678B (zh) | 对移动终端设备上的应用进行测试的方法及装置 | |
CN104978263B (zh) | 一种移动端应用程序测试方法及系统 | |
CN105787364B (zh) | 任务的自动化测试方法、装置及系统 | |
CN104978258B (zh) | 软件自动化测试方法及系统 | |
CN107018523A (zh) | Wifi模块测试方法及装置 | |
CN105025141B (zh) | 终端用电量测试方法及其装置 | |
EP3518441B1 (en) | Test troubleshooting system and method | |
CN104461903A (zh) | 基于浏览器的测试客户端的方法和装置 | |
CN106776323B (zh) | 应用测试方法及装置 | |
CN107015912A (zh) | 实现远程调试的系统、方法、装置、及电子设备 | |
CN105577879A (zh) | 一种通讯录管理方法及移动终端 | |
CN106155824A (zh) | 一种手机硬件加速老化测试方法及系统 | |
CN106201852A (zh) | 一种分布式测试方法及测试系统 | |
CN105760300A (zh) | 一种stk/utk业务的自动化测试方法及测试系统 | |
CN108323234A (zh) | 一种检测方法、检测设备及服务器 | |
CN106302011A (zh) | 基于多端的测试方法及终端 | |
CN107682219A (zh) | 一种基于安卓系统的拨测号码的测试方法及装置 | |
CN107360295A (zh) | 一种测试主机及方法 | |
CN114466395A (zh) | 基站性能的测试方法和装置、存储介质及电子装置 | |
CN108027634A (zh) | 用户设备功耗监测和分析 | |
CN105868622A (zh) | 应用开机启动的控制方法及装置 | |
CN111541589B (zh) | 对智能终端的扩展模块接口进行测试的方法、装置和设备 | |
CN107634851B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |