CN110389895A - 终端测试方法、装置、计算机设备和存储介质 - Google Patents
终端测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110389895A CN110389895A CN201910514615.9A CN201910514615A CN110389895A CN 110389895 A CN110389895 A CN 110389895A CN 201910514615 A CN201910514615 A CN 201910514615A CN 110389895 A CN110389895 A CN 110389895A
- Authority
- CN
- China
- Prior art keywords
- test
- pitching pile
- program
- target
- report
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 20
- 238000012360 testing method Methods 0.000 claims abstract description 368
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000000977 initiatory effect Effects 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 70
- 239000000523 sample Substances 0.000 description 18
- 238000013095 identification testing Methods 0.000 description 4
- 230000009916 joint effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- 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为一个实施例中终端测试方法的流程图;
图2为一个实施例中对目标测试程序进行插桩处理的流程图;
图3为一个实施例中基于目标插桩方式对目标测试程序进行插桩处理的流程图;
图4为一个实施例中获取测试数据的流程图;
图5为一个实施例中导出测试报告的流程图;
图6为一个实施例中终端测试装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
参照图1,图1为一个实施例中终端测试方法的流程图。
在一实施例中,该终端测试方法包括:
步骤S10,当接收到测试启动指令时,获取进行插桩处理后的测试程序。
其中,测试启动指令是控制终端测试装置进行测试的控制指令,测试启动指令可以是工作人员进行相应的操作而触发,还可以是通过相应的控制程序的运行而触发,具体此处不做限定。
具体地,终端测试装置在接收到测试启动指令时,将会获取预先已经进行并完成插桩处理的测试程序。在实际应用中,测试程序指的是终端项目,进行插桩处理后的测试程序是指将覆盖率工具集成到了终端项目中,进而在进行插桩处理后的测试程序在测试运行时,覆盖率工具将会进行对所需要进行统计的对象的覆盖率进行统计。
对于终端测试而言,不同的终端以及不同的测试对象所对应的测试程序会有所不同,因此在接收到测试启动指令时,首先获取对应的测试程序,同时,所获取的测试程序是进行了插桩处理的,以便于在测试的过程中对想要进行统计的数据进行获取。而在终端测试装置接收到了测试启动指令时,将会获取对应的进行插桩处理之后的测试程序。
步骤S20,当接收到基于预置的测试用例得到的测试信息时,触发对应的测试工具基于进行插桩处理后的测试程序进行测试。
其中,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
具体地,在终端测试装置的测试过程被启动之后,终端测试装置将会接收基于预置的测试用例所得到的测试信息,然后触发对应的测试工具根据进行插桩处理后的测试程序进行测试。
在本实施例中,测试用例是业务人员进行测试的流程信息,在启动了测试程序时,将会根据当前的测试类型(不同测试对应的测试用例有所不同)得到当前所对应的测试用例,以使得测试业务人员可以有效完整的执行所有的操作步骤。其中,测试用例也是可以预先进行导入的,然后在实际的测试过程中根据当前的实际操作进行下一步操作的提示。
同时,在测试过程中会产生相应的测试数据,在运行进行插桩处理后的测试程序时,终端测试装置对于整个测试过程所产生的测试数据都会进行相应的统计。
步骤S30,获取并保存进行测试所得到的测试数据,其中,测试数据至少包括测试程序所包含的函数覆盖情况和函数运行时长以及类覆盖情况。
具体地,在测试过程中,对于所产生的测试数据,终端测试装置都会进行相应的保存。为了可以详细的了解测试的实际状态,需要获取测试过程中所产生的测试数据,通过对测试数据进行分析查看,可以对测试的实际状态进行有效地判断,对于在测试过程中所出现的问题也可以准确找到问题所在。
在实际测试过程中,终端测试装置所获取的测试数据有很多。测试程序中包含有不同的函数以及类,当目标测试用例执行完成时,将会获取到测试程序的覆盖率情况,包括有函数覆盖情况以及类覆盖情况,还可以对各个函数在测试过程中所运行次数进行统计,以及对各个函数在测试过程中每次运行的耗时进行统计等。
本实施例中,当接收到测试启动指令时,获取进行插桩处理后的测试程序,然后在接收到基于预置的测试用例所得到的测试信息时,触发并控制对应的测试工具利用进行插桩处理之后的测试程序进行测试,并对测试过程中所产生的测试数据进行保存,其中,所得到的测试数据中至少包括有测试程序所包含的函数的覆盖情况和函数的运行时长,以及测试程序所包含的类的覆盖情况,然后根据需求可以得到相应的测试数据报告。实现对测试数据的统计记录,并且可以根据自身需求对测试数据进行可视化的查看,保证了测试数据的透明化。
参照图2,图2为一个实施例中对目标测试程序进行插桩处理的流程图。
在一个实施例中,步骤S10之前包括:
步骤S40,当接收到测试类型选择指令时,确定当前所对应的测试类型。
在终端测试装置进行测试之前,需要对待测试的测试程序进行插桩处理。由于不同的测试流程以及测试对象所对应的插桩方式有所不同,因此在对待测试的测试程序进行插桩处理时,首先需要确定当前所选择的测试类型。具体地,在终端测试装置接收到工作人员所输入的选择指令时,根据选择指令所对应的测试类型的选择确定对应的测试类型。
在进行测试之前,终端测试装置需要预先对测试程序进行插桩处理,然后在使用进行了插桩处理之后的测试程序进行测试。在实际应用中,由于不同的语言有着不同的插桩实现方法,比如Android和ios有不同的插桩实现方法,同时对于不同的测试而言,测试要求不同时所采用的插桩实现方式也会有所不同,因此需要根据当前的测试要求对测试程序进行相应的插桩处理。
步骤S50,基于测试类型确定所对应的待选择插桩方式。
在终端测试装置根据接收到的测试类型选择指令确定得到了当前所对应选择的测试类型之后,将会根据所得到的测试类型确定待选择插桩方式。在实际的测试过程中,会根据实际的测试类型确定当前可以使用的插桩方式,不同语言场景下对应的插桩实现方式不同,并且在进行不同的测试时对应的插桩实现方式不同。
在进行插桩处理过程中,工作人员会根据不同的测试要求,每次插入不同的探针,采用相应的插桩策略,这样可以有效的减少代码的膨胀率,保证了程序执行的效率。常见的几种较为简单的插桩策略有:语句覆盖探针、分支覆盖探针以及条件覆盖探针。
步骤S60,当基于待选择插桩方式确定得到目标插桩方式时,基于目标插桩方式对目标测试程序进行插桩处理。
在终端测试装置得到待选择的插桩方式之后,将会根据实际的选择确定当前所使用的插桩方式,然后根据所选择的目标插桩方式对目标测试程序进行插桩处理。实际确定目标插桩方式的操作是由工作人员进行相应的选择触控操作而决定的。
在实际应用中,不同的插桩方式所对应的插桩处理过程也有所不同,对于常见的插桩方式有着不同的插桩方式,主要体现在基于不同的插桩处理方式进行插桩时对应的插桩位置有所不同。比如:语句覆盖探针,基本块的入口和出口处为对应的插桩位置;分支覆盖探针,c/c++语言中,各分支点为对应的插桩位置;条件覆盖探针,c/c++语言中,if、swich、while、do-while以及for等几种语法结构都支持条件判定,每个条件表达式的布尔表达式所处的位置为对应的插桩位置。
进一步地,步骤S60还包括:
步骤61,当接收到输入的选择指令时,从待选择插桩方式中得到对应的目标插桩方式。
步骤62,当获取进行插桩处理的目标测试程序时,基于目标插桩方式对目标测试程序进行插桩处理。
在得到待选择插桩方式时,终端测试装置将会根据所接收到的选择指令确定当前所选择的目标插桩方式,然后获取所选择的目标测试程序,进而根据所选择的目标插桩方式对所选择的目标测试程序进行插桩处理。在实际测试中,在得到待选择插桩方式之后,终端测试装置可以将所得到的待选择插桩方式进行展示,以使得工作人员可以根据实际的需求选择对应的目标插桩方式。
不同的测试对应的测试程序有所不同,因此在进行插桩处理时,终端测试装置将会接收工作人员所选择或者输入的需要进行插桩处理的目标测试程序,然后利用所选择的目标插桩方式对目标测试程序进行相应的插桩处理。在实际进行插桩处理时,是在目标测试程序的相应位置进行相应的插桩,可以理解为在对应的插桩的位置做相应的记录标签,进而实现在测试过程中进行测试结果数据的统计。
参照图3,图3为一个实施例中基于目标插桩方式对目标测试程序进行插桩处理的流程图。
在一个实施例中,步骤S62包括:
步骤S621,获取所选择的进行插桩处理的目标测试程序。
步骤S622,根据目标插桩方式识别目标测试程序中可进行插桩处理的节点信息。
步骤S623,在节点信息所对应的节点位置进行插桩处理,得到进行插桩处理后的测试程序,其中节点位置对应存在有插桩标记。
终端测试装置根据工作人员的实际操作获取对应所选择的目标测试程序,然后按照预先所选择的目标插桩方式对目标测试程序进行插桩处理,其中,在进行插桩处理时,实际上是在目标测试程序中的部分位置进行插桩标记,进而在目标测试程序的运行过程中对目标测试程序的运行状态及数据进行统计。
具体地,在终端测试装置根据工作人员的操作得到进行插桩处理的目标测试程序之后,将按照目标插桩方式所对应的节点信息确定规则识别测试程序中可以进行插桩处理的节点信息,其中可进行插桩处理的节点信息所对应的位置也就是需要进行插桩处理的节点位置,然后在对应确定的可进行插桩处理的位置进行插桩处理,并在各节点信息所对应的位置存在有相应的插桩标记,在所有的节点位置插桩完成时,得到对应的插桩处理后的目标测试程序。
对于不同的插桩方式的实际插桩处理有所不同,主要体现在插桩节点位置的不同。在实际的插桩过程中,在确定插桩位置时,要将目标测试程序进行划分,其中,基本的划分方法是基于“块”结构进行划分。按照块结构的划分,探针的植入位置(进行插桩的位置)有以下几种情况:程序的第一条语句、分支语句的开始、循环语句的开始、下一个入口语句之前的语句、程序的结束语句、分支语句的结束以及循环语句的结束等位置。除此之外,根据覆盖测试要求的不同,插桩的位置除了上面所说的几种情况外,也会随着覆盖测试要求的不同有所变化。
除了需要确定具体的插桩位置之外,还需要确定对应的插桩策略。插桩策略是解决“如何插”的问题。传统的插桩策略是在所有需要插桩的位置插入探针,在程序运行过程收集所有可能用到的程序信息,将其写入数据库进行分析和处理。这种方法对于大型的程序来说,将会造成相当大的工作量,效率很低,且会造成很大的代码膨胀率。而终端测试装置会根据不同的测试要求,每次插入不同的探针,采用相应的插桩策略,这样就减少了代码的膨胀率,保证了程序执行的效率。
常见的集中插桩策略包括有:语句覆盖探针(基本块探针),节点位置在基本块的入口和出口处,分别植入相应的探针(也就是进行相应的插桩处理,探针即为插桩标记),以确定程序执行时该基本块是否被覆盖;分支覆盖探针,c/c++语言中,节点位置由分支点确定,对于每个分支,在其开始处植入一个相应的探针,以确定程序执行时该分支是否被覆盖;条件覆盖探针,c/c++语言中,if、swich、while、do-while以及for等几种语法结构都支持条件判定,在每个条件表达式的布尔表达式处植入探针,进行变量跟踪取值,以确定其被覆盖情况。
参照图4,图4为一个实施例中获取测试数据的流程图。
在一个实施例中,步骤S30包括:
步骤S31,当测试工具基于插桩处理后的测试程序进行测试时,获取节点所对应的测试数据。
步骤S32,对节点进行分类处理,将类别属性相同的节点归为同一类别,其中节点的类别属性至少包括有类以及函数。
步骤S33,根据类别属性对节点所对应的测试数据进行统计和保存。
当终端测试装置控制测试工具基于进行插桩处理之后的目标测试程序进行测试时,获取目标测试程序中各节点分别对应的测试数据,另外,还对各节点进行分类,通过识别各节点的类别属性,然后将类别属性相同的节点归为同一类别,进而在对节点对应的测试数据进行统计和保存,节点类别属性相同的测试数据可以进行统一保存。
在测试过程中所产生的测试数据主要包括有函数的覆盖情况和类的覆盖情况。在测试过程中,通过对测试程序进行插桩处理,在包含有函数或者类的相应节点位置进行插桩标记,进而在测试程序运行过程中,通过检测标记是否被覆盖确定对应的函数或者类是否被覆盖。不同的节点有各自对应的测试数据,对于所有的节点而言,存在具有相同类别属性的节点,其中类别属性主要包括有函数以及类,且不同的函数或者不同的类均为不同的类别属性。在进行测试数据的统计时,还会根据节点的类别属性是否相同对节点进行分类,进而可以统计出不同的类别属性所包含的类或者函数的覆盖率信息。
另外,在进行测试数据的统计时,除了可统计出不同函数或者类的覆盖率之外,还可以不同函数或者类在执行时所耗费的时间长短,通过同一个函数或者类的前后两个插桩标记在测试程序中出现的时间间隔,确定函数或者类所对应耗费的时间长短。
参照图5,图5为一个实施例中导出测试报告的流程图。
在一个实施例中,步骤S30之后还包括:
步骤S70,当接收到测试报告导出指令时,识别测试报告导出指令所包含的类别信息。
步骤S80,根据类别信息生成得到对应的测试报告。
步骤S90,导出测试报告。
当终端测试装置接收到测试报告导出指令时,首先识别所接收到测试报告指令所包含的类别信息,然后根据类别信息生成得到对应的测试报告并进行导出。在实际应用中,根据工作人员的需求,需要进行查看的数据也会有所不同,因此在进行测试报告的导出时,终端测试装置接收工作人员所输入的测试报告导出指令,确定当前需要导出的测试报告的类型,进而生成得到对应的测试报告以导出。
在实际测试过程中,对于测试过程中所产生的测试数据进行相应的统计和保存,在接收到报告导出指令时,识别所接收到的报告导出指令的类别信息,然后根据所识别得到的类别信息生成得到对应的测试报告,进而将得到的测试报告进行导出。在进行测试报告的导出时,由于需求不同所导出的测试报告所包含的数据信息也会有所不同,其中所导出的测试报告中可以包括有覆盖率报告和版本差异报告,其中覆盖率报告包括有函数覆盖率报告和类覆盖率报告,版本差异报告中记录有版本信息等,测试报告还可以包括有时间统计报告,其中时间统计报告中记录有函数和类在运行时分别对应的耗时信息,不同的报告根据不同的指令进行导出,以使得用户可以进行相应的结果查看。
进一步地,步骤S80包括:
步骤S81,获取类别信息对应的测试报告生成规则。
步骤S82,根据测试报告生成规则生成得到对应的测试报告。
步骤S83,导出测试报告。
在终端测试装置接收到测试报告导出指令,并识别得到测试报告导出指令中所包含的类别信息之后,将获取所识别得到的类别信息所对应的测试报告生成规则,然后根据所得到的测试报告生成规则生成对应的测试报告,进而将所得到的测试报告进行导出。
具体地,在生成得到测试报告时,不同的报告对应的报告格式或者样式有所不同,且不同的测试报告中所包含的数据信息也有所不同,其中,当类别信息为函数覆盖率报告时,测试报告中包含有各函数的覆盖率信息;当类别信息为版本报告时,测试报告中包含有版本差异信息;当类别信息为类覆盖率报告时,测试报告中包含有各类的覆盖率信息。除了可以进行上述信息的测试报告的生成导出,还可以生成导出统计有各函数运行次数的测试报告,或者是统计有每次函数运行的耗时的测试报告。
本发明进一步提供一种终端测试装置。
参照图6,图6为一个实施例中终端测试装置的结构框图。
在一实施例中,该终端测试装置60包括获取模块61、测试模块62以及存储模块63,其中:
获取模块61,用于当接收到测试启动指令时,获取进行插桩处理后的测试程序;
测试模块62,用于当接收到基于预置的测试用例得到的测试信息时,触发对应的测试工具基于进行插桩处理后的测试程序进行测试;
存储模块63,用于获取并保存进行测试所得到的测试数据,其中,测试数据至少包括测试程序所包含的函数覆盖情况和函数运行时长以及类覆盖情况。
在一个实施例中,所述终端测试装置60具体用于:
当接收到测试类型选择指令时,确定当前所对应的测试类型;
基于测试类型确定所对应的待选择插桩方式;
当基于待选择插桩方式确定得到目标插桩方式时,基于目标插桩方式对目标测试程序进行插桩处理。
在一个实施例中,所述终端测试装置60具体用于:
当接收到输入的选择指令时,从待选择插桩方式中得到对应的目标插桩方式;
当获取进行插桩处理的目标测试程序时,基于目标插桩方式对目标测试程序进行插桩处理。
在一个实施例中,所述终端测试装置60具体用于:
获取所选择的进行插桩处理的目标测试程序;
根据目标插桩方式识别目标测试程序中可进行插桩处理的节点;
在节点所对应的位置进行插桩处理,得到进行插桩处理后的测试程序,其中位置对应存在有插桩标记。
在一个实施例中,所述存储模块63具体用于:
当测试工具基于插桩处理后的目标测试程序进行测试时,获取节点所对应的测试数据;
对节点进行分类处理,将类别属性相同的节点归为同一类别,其中节点的类别属性至少包括有类以及函数;
根据类别属性对节点所对应的测试数据进行统计和保存,其中测试数据至少包括函数覆盖情况、函数运行时长以及类覆盖情况。
在一个实施例中,所述终端测试装置60具体还用于:
当接收到测试报告导出指令时,识别测试报告导出指令所包含的类别信息;
根据类别信息生成得到对应的测试报告;
导出测试报告。
在一个实施例中,所述终端测试装置60具体还用于:
获取类别信息对应的测试报告生成规则;
根据测试报告生成规则生成得到对应的测试报告;
当类别信息为函数覆盖率报告时,测试报告中包含有各函数的覆盖率信息;
当类别信息为版本报告时,测试报告中包含有版本差异信息;
当类别信息为类覆盖率报告时,测试报告中包含有各类的覆盖率信息。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行所述计算机程序时实现以下步骤:
当接收到测试启动指令时,获取进行插桩处理后的测试程序;
当接收到基于预置的测试用例得到的测试信息时,触发对应的测试工具基于进行插桩处理后的测试程序进行测试;
获取并保存进行测试所得到的测试数据,其中,测试数据至少包括测试程序所包含的函数覆盖情况和函数运行时长以及类覆盖情况。
在一个实施例中,所述当接收到测试启动指令时,获取进行插桩处理后的测试程序,之前还包括:
当接收到测试类型选择指令时,确定当前所对应的测试类型;
基于测试类型确定所对应的待选择插桩方式;
当基于待选择插桩方式确定得到目标插桩方式时,基于目标插桩方式对目标测试程序进行插桩处理。
在一个实施例中,所述当基于待选择插桩方式确定的目标插桩方式时,基于目标插桩方式对目标测试程序进行插桩处理,包括:
当接收到输入的选择指令时,从待选择插桩方式中得到对应的目标插桩方式;
当获取进行插桩处理的目标测试程序时,基于目标插桩方式对目标测试程序进行插桩处理。
在一个实施例中,所述当获取进行插桩处理的目标测试程序时,基于目标插桩方式对目标测试程序进行插桩处理,包括:
获取所选择的进行插桩处理的目标测试程序;
根据目标插桩方式识别目标测试程序中可进行插桩处理的节点;
在节点所对应的位置进行插桩处理,得到进行插桩处理后的测试程序,其中位置对应存在有插桩标记。
在一个实施例中,所述获取并保存进行测试所得到的测试数据,包括:
当测试工具基于插桩处理后的测试程序进行测试时,获取节点所对应的测试数据;
对节点进行分类处理,将类别属性相同的节点归为同一类别,其中节点的类别属性至少包括有类以及函数;
根据类别属性对节点所对应的测试数据进行统计和保存,其中测试数据至少包括函数覆盖情况、函数运行时长以及类覆盖情况。
在一个实施例中,所述获取并保存测试所得到的测试数据,之后还包括:
当接收到测试报告导出指令时,识别测试报告导出指令所包含的类别信息;
根据类别信息生成得到对应的测试报告;
导出测试报告。
在一个实施例中,所述根据类别信息生成得到对应的测试报告,包括:
获取类别信息对应的测试报告生成规则;
根据测试报告生成规则生成对应的测试报告;
当类别信息为函数覆盖率报告时,测试报告中包含有各函数的覆盖率信息;
当类别信息为版本报告时,测试报告中包含有版本差异信息;
当类别信息为类覆盖率报告时,测试报告中包含有各类的覆盖率信息。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
当接收到测试启动指令时,获取进行插桩处理后的测试程序;
当接收到基于预置的测试用例得到的测试信息时,触发对应的测试工具基于进行插桩处理后的测试程序进行测试;
获取并保存进行测试所得到的测试数据,其中,测试数据至少包括测试程序所包含的函数覆盖情况和函数运行时长以及类覆盖情况。
在一个实施例中,所述当接收到测试启动指令时,获取进行插桩处理后的测试程序,之前还包括:
当接收到测试类型选择指令时,确定当前所对应的测试类型;
基于测试类型确定所对应的待选择插桩方式;
当基于待选择插桩方式确定得到目标插桩方式时,基于目标插桩方式对目标测试程序进行插桩处理。
在一个实施例中,所述当基于待选择插桩方式确定的目标插桩方式时,基于目标插桩方式对目标测试程序进行插桩处理,包括:
当接收到输入的选择指令时,从待选择插桩方式中得到对应的目标插桩方式;
当获取进行插桩处理的目标测试程序时,基于目标插桩方式对目标测试程序进行插桩处理。
在一个实施例中,所述当获取进行插桩处理的目标测试程序时,基于目标插桩方式对目标测试程序进行插桩处理,包括:
获取所选择的进行插桩处理的目标测试程序;
根据目标插桩方式识别目标测试程序中可进行插桩处理的节点;
在节点所对应的位置进行插桩处理,得到进行插桩处理后的测试程序,其中位置对应存在有插桩标记。
在一个实施例中,所述获取并保存进行测试所得到的测试数据,包括:
当测试工具基于插桩处理后的测试程序进行测试时,获取节点所对应的测试数据;
对节点进行分类处理,将类别属性相同的节点归为同一类别,其中节点的类别属性至少包括有类以及函数;
根据类别属性对节点所对应的测试数据进行统计和保存,其中测试数据至少包括函数覆盖情况、函数运行时长以及类覆盖情况。
在一个实施例中,所述获取并保存测试所得到的测试数据,之后还包括:
当接收到测试报告导出指令时,识别测试报告导出指令所包含的类别信息;
根据类别信息生成得到对应的测试报告;
导出测试报告。
在一个实施例中,所述根据类别信息生成得到对应的测试报告,包括:
获取类别信息对应的测试报告生成规则;
根据测试报告生成规则生成对应的测试报告;
当类别信息为函数覆盖率报告时,测试报告中包含有各函数的覆盖率信息;
当类别信息为版本报告时,测试报告中包含有版本差异信息;
当类别信息为类覆盖率报告时,测试报告中包含有各类的覆盖率信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
1.一种终端测试方法,其特征在于,包括以下步骤:
当接收到测试启动指令时,获取进行插桩处理后的测试程序;
当接收到基于预置的测试用例得到的测试信息时,触发对应的测试工具基于所述进行插桩处理后的测试程序进行测试;
获取并保存进行测试所得到的测试数据,其中,所述测试数据至少包括所述测试程序所包含的函数覆盖情况和函数运行时长以及类覆盖情况。
2.根据权利要求1所述的终端测试方法,其特征在于,所述当接收到测试启动指令时,获取进行插桩处理后的测试程序,之前还包括:
当接收到测试类型选择指令时,确定当前所对应的测试类型;
基于所述测试类型确定所对应的待选择插桩方式;
当基于所述待选择插桩方式确定得到目标插桩方式时,基于所述目标插桩方式对目标测试程序进行插桩处理。
3.根据权利要求2所述的终端测试方法,其特征在于,所述当基于所述待选择插桩方式确定得到目标插桩方式时,基于所述目标插桩方式对目标测试程序进行插桩处理,包括:
当接收到输入的选择指令时,从所述待选择插桩方式中得到对应的目标插桩方式;
当获取进行插桩处理的目标测试程序时,基于所述目标插桩方式对所述目标测试程序进行插桩处理。
4.根据权利要求3所述的终端测试方法,其特征在于,所述当获取进行插桩处理的目标测试程序时,基于所述目标插桩方式对所述目标测试程序进行插桩处理,包括:
获取所选择的进行插桩处理的目标测试程序;
根据所述目标插桩方式识别所述目标测试程序中可进行插桩处理的节点;
在所述节点所对应的位置进行插桩处理,得到进行插桩处理后的测试程序,其中所述位置对应存在有插桩标记。
5.根据权利要求4所述的终端测试方法,其特征在于,所述获取并保存进行测试所得到的测试数据,包括:
当所述测试工具基于所述插桩处理后的测试程序进行测试时,获取所述节点所对应的测试数据;
对所述节点进行分类处理,将类别属性相同的节点归为同一类别,其中所述节点的类别属性至少包括有类以及函数;
根据所述类别属性对所述节点所对应的测试数据进行统计和保存,其中所述测试数据至少包括函数覆盖情况、函数运行时长以及类覆盖情况。
6.根据权利要求1-5中任一所述的终端测试方法,其特征在于,所述获取并保存测试所得到的测试数据,之后还包括:
当接收到测试报告导出指令时,识别所述测试报告导出指令所包含的类别信息;
根据所述类别信息生成得到对应的测试报告;
导出所述测试报告。
7.根据权利要求6所述的终端测试方法,其特征在于,所述根据所述类别信息生成得到对应的测试报告,包括:
获取所述类别信息对应的测试报告生成规则;
根据所述测试报告生成规则生成对应的测试报告;
当所述类别信息为函数覆盖率报告时,所述测试报告中包含有各函数的覆盖率信息;
当所述类别信息为版本报告时,所述测试报告中包含有版本差异信息;
当所述类别信息为类覆盖率报告时,所述测试报告中包含有各类的覆盖率信息。
8.一种终端测试装置,其特征在于,所述终端测试装置包括:
获取模块,用于当接收到测试启动指令时,获取进行插桩处理后的测试程序;
测试模块,用于当接收到基于预置的测试用例得到的测试信息时,触发对应的测试工具基于所述进行插桩处理后的测试程序进行测试;
存储模块,用于获取并保存进行测试所得到的测试数据,其中,所述测试数据至少包括所述测试程序所包含的函数覆盖情况和函数运行时长以及类覆盖情况。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述终端测试方法的步骤。
10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述终端测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910514615.9A CN110389895A (zh) | 2019-06-14 | 2019-06-14 | 终端测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910514615.9A CN110389895A (zh) | 2019-06-14 | 2019-06-14 | 终端测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110389895A true CN110389895A (zh) | 2019-10-29 |
Family
ID=68285329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910514615.9A Pending CN110389895A (zh) | 2019-06-14 | 2019-06-14 | 终端测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389895A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742201A (zh) * | 2020-05-29 | 2021-12-03 | 中国电信股份有限公司 | 基于灰盒测试的软件缺陷检测方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833500A (zh) * | 2010-04-07 | 2010-09-15 | 南京航空航天大学 | 一种基于Agent的嵌入式软件智能测试方法 |
CN102103538A (zh) * | 2011-02-22 | 2011-06-22 | 南京航空航天大学 | 一种基于Agent的码垛机器人控制软件测试方法 |
CN102222041A (zh) * | 2011-06-15 | 2011-10-19 | 深圳市运通信息技术有限公司 | 一种基于嵌入式软件的测试分析系统及方法 |
CN102243609A (zh) * | 2011-06-15 | 2011-11-16 | 惠州运通信息技术有限公司 | 一种基于嵌入式软件的测试分析方法及系统 |
CN102521123A (zh) * | 2011-11-24 | 2012-06-27 | 西安邮电学院 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
CN104657266A (zh) * | 2015-02-10 | 2015-05-27 | 上海创景计算机系统有限公司 | 基于脚本的源代码插桩系统及方法 |
CN108415821A (zh) * | 2017-02-09 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 测试报告的生成方法及装置 |
-
2019
- 2019-06-14 CN CN201910514615.9A patent/CN110389895A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833500A (zh) * | 2010-04-07 | 2010-09-15 | 南京航空航天大学 | 一种基于Agent的嵌入式软件智能测试方法 |
CN102103538A (zh) * | 2011-02-22 | 2011-06-22 | 南京航空航天大学 | 一种基于Agent的码垛机器人控制软件测试方法 |
CN102222041A (zh) * | 2011-06-15 | 2011-10-19 | 深圳市运通信息技术有限公司 | 一种基于嵌入式软件的测试分析系统及方法 |
CN102243609A (zh) * | 2011-06-15 | 2011-11-16 | 惠州运通信息技术有限公司 | 一种基于嵌入式软件的测试分析方法及系统 |
CN102521123A (zh) * | 2011-11-24 | 2012-06-27 | 西安邮电学院 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
CN104657266A (zh) * | 2015-02-10 | 2015-05-27 | 上海创景计算机系统有限公司 | 基于脚本的源代码插桩系统及方法 |
CN108415821A (zh) * | 2017-02-09 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 测试报告的生成方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742201A (zh) * | 2020-05-29 | 2021-12-03 | 中国电信股份有限公司 | 基于灰盒测试的软件缺陷检测方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050075B (zh) | Andriod应用程序的测试方法和装置 | |
CN109144857A (zh) | 跨平台的算法测试方法及系统 | |
EP2555117A1 (en) | Code inspection executing system for performing a code inspection of abap source codes | |
CN105094783A (zh) | 安卓应用稳定性测试的方法及装置 | |
Misirli et al. | Ai-based software defect predictors: Applications and benefits in a case study | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测系统 | |
CN111209217A (zh) | 系统软件功能测试方法、装置、设备及存储介质 | |
CN109389109A (zh) | 一种ocr全文本识别正确率的自动化测试方法及设备 | |
CN110389895A (zh) | 终端测试方法、装置、计算机设备和存储介质 | |
CN108897678B (zh) | 静态代码检测方法和静态代码检测系统、存储设备 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
US20050203717A1 (en) | Automated testing system, method and program product using testing map | |
Burrows et al. | Reasoning about faults in aspect-oriented programs: a metrics-based evaluation | |
CN111400171B (zh) | 一种接口测试方法、系统、装置及可读存储介质 | |
CN107102938B (zh) | 测试脚本的更新方法及装置 | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
CN109547405A (zh) | 基于Python语言的自动化网络攻击流量获取方法和系统 | |
CN112148588B (zh) | 一种自动化测试的对象资源的自动分析方法及测试工具 | |
CN114942890A (zh) | 一种用户界面测试方法、装置、设备及介质 | |
CN114124769B (zh) | 一种基站测试方法、装置、电子设备及存储介质 | |
CN110362463A (zh) | 一种自动挑选测试用例进行回归测试的方法和装置 | |
CN114553599A (zh) | 基于边缘计算的园区监控系统及方法 | |
CN112416807A (zh) | 一种测试用例结果分析及关联的系统及方法 | |
CN113282504A (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 |