CN106776261B - 对象测试方法和装置 - Google Patents

对象测试方法和装置 Download PDF

Info

Publication number
CN106776261B
CN106776261B CN201510818052.4A CN201510818052A CN106776261B CN 106776261 B CN106776261 B CN 106776261B CN 201510818052 A CN201510818052 A CN 201510818052A CN 106776261 B CN106776261 B CN 106776261B
Authority
CN
China
Prior art keywords
tested
test
weight information
testing
test data
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
CN201510818052.4A
Other languages
English (en)
Other versions
CN106776261A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510818052.4A priority Critical patent/CN106776261B/zh
Publication of CN106776261A publication Critical patent/CN106776261A/zh
Application granted granted Critical
Publication of CN106776261B publication Critical patent/CN106776261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Abstract

本发明公开了一种对象测试方法,包括:获取待测试对象,在未预存有待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对待检测对象,其中,在待检测对象的检测过程中代码覆盖率发生变化时,更新待测试对象的权重信息;在预存有待测试对象的权重信息时,按照预存的权重信息生成测试数据进行待测试对象的测试。本发明还公开一种对象测试装置。本发明在测试过程中不断调整各个测试规则的权重以生成不同的测试数据对待测试对象进行测试,并在进行测试时若代码覆盖率发生变化,则将当前权重信息与待测试对象关联保存,使得下一次再测试该待测试对象时,直接调用该保存的权重信息生成测试数据,提高测试效率。

Description

对象测试方法和装置
技术领域
本发明涉及到互联网技术领域,特别涉及到一种对象测试方法和装置。
背景技术
现有技术在进行对象测试时,往往采用模糊测试的方式,即将所有可能的测试数据无差别的生成,以海量的测试数据进行测试,这样做的弊端是显而易见的,海量的测试数据会拉长测试时间,降低测试效率,特别是在大型系统的测试过程中,占用的时间将是不可估量的。
发明内容
本发明实施例提供一种对象测试方法和装置,旨在解决测试效率较低的技术问题。
为实现上述目的,本发明实施例提出一种对象测试方法,所述对象测试方法包括步骤:
获取待测试对象,判断是否预存有所述待测试对象的权重信息;
在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对所述待检测对象,其中,在所述待检测对象的检测过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息;
在预存有所述待测试对象的权重信息时,按照预存的所述权重信息生成测试数据进行所述待测试对象的测试。
为了实现上述目的,本发明实施例还进一步提出对象测试装置,所述对象测试装置包括:
获取模块,用于获取待测试对象;
判断模块,用于判断是否预存有所述待测试对象的权重信息;
测试模块,用于在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对所述待检测对象,其中,在所述待检测对象的检测过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息;
所述测试模块,还用于在预存有所述待测试对象的权重信息时,按照预存的所述权重信息生成测试数据进行所述待测试对象的测试。
本发明提出的对象测试方法和装置,在测试过程中不断调整各个测试规则的权重以生成不同的测试数据对待测试对象进行测试,并在进行测试时若代码覆盖率发生变化,则将当前权重信息与待测试对象关联保存,使得下一次再测试该待测试对象时,直接调用该保存的权重信息生成测试数据,提高测试效率。
附图说明
图1为对象检测装置所涉及的硬件架构示意图;
图2为本发明对象测试方法的第一实施例的流程示意图;
图3为本发明对象测试方法对应的系统架构图;
图4为本发明对象测试装置的第一实施例的功能模块示意图;
图5为本发明对象测试装置的第一实施例中测试模块的细化模块示意图;
图6为本发明对象测试装置的第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取待测试对象,判断是否预存有所述待测试对象的权重信息;在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对所述待检测对象,其中,在所述待检测对象的检测过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息;在预存有所述待测试对象的权重信息时,按照预存的所述权重信息生成测试数据进行所述待测试对象的测试。
由于现有的测试数据无差别的生成,以海量的测试数据进行测试,占用时间较长,导致测试效率较低。
具体地,参照图1,图1为本发明对象检测方法所涉及的硬件架构。如对象检测方法所涉及的硬件包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现该终端中各组成部件之间的连接通信。用户接口1003可以包括显示屏(Display)、键盘(Keyboard)、鼠标等组件,用于接收用户输入的信息,并将接收的信息发送至处理器1005进行处理。显示屏可以为LCD显示屏、LED显示屏,也可以为触摸屏用于信息需要显示的数据。可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。如图2所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及对象测试程序。
在图1所示的对象检测装置所涉及的硬件架构中,网络接口1004主要用于向服务器等网络终端传输数据;用户接口1003主要用于连接客户端,与客户端进行数据通信,接收客户端输入的信息和指令;而处理器1001可以用于调用存储器1005中存储的对象测试程序,并执行以下操作:
获取待测试对象,判断是否预存有所述待测试对象的权重信息;
在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对所述待检测对象,其中,在所述待检测对象的检测过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息;
在预存有所述待测试对象的权重信息时,按照预存的所述权重信息生成测试数据进行所述待测试对象的测试。
进一步地,在一个实施例中,处理器1001调用存储器1005中存储的对象测试程序可以执行以下操作:
按照预设的权重值对测试规则库中的测试规则进行组合生成测试数据;
按照所述测试数据对所述待测试对象进行测试,以获取所述测试数据的代码覆盖率;
在所述代码覆盖率变化时,更新所述待测试对象的所述权重信息;
在所述代码覆盖率未变化时,调整所述测试规则库中的测试规则的权重值,并按照调整后的所述权重值对所述测试规则库中的测试规则进行组合生成测试数据;
继续执行按照所述测试数据对所述待测试对象进行测试的步骤,直至遍历完所有规则。
进一步地,在一个实施例中,处理器1001调用存储器1005中存储的对象测试程序可以执行以下操作:
在更新过所述待测试对象的权重信息,且当前权重值对应的代码覆盖率是否大于所述权重信息中的代码覆盖率时,采用当前生成的所述权重信息更新保存的权重信息;
在未更新过所述待测试对象的权重信息时,关联保存所述待测试对象和所述权重信息。
进一步地,在一个实施例中,处理器1001调用存储器1005中存储的对象测试程序可以执行以下操作:
在所述待检测对象的检测过程中代码覆盖率发生变化时,关联保存所述待检测对象和所述测试数据。
进一步地,在一个实施例中,处理器1001调用存储器1005中存储的对象测试程序可以执行以下操作:
获取待测试对象,并判断是否预存有所述待测试对象对应的测试数据;
在未预存有所述待测试对象对应的测试数据时,执行所述判断是否预存有所述待测试对象的权重信息的步骤;
在预存有所述待测试对象对应的测试数据时,采用所述测试对象对应的数据对所述待测试对象进行测试。
本实施例根据上述方案,在测试过程中不断调整各个测试规则的权重以生成不同的测试数据对待测试对象进行测试,并在进行测试时若代码覆盖率发生变化,则将当前权重信息与待测试对象关联保存,使得下一次再测试该待测试对象时,直接调用该保存的权重信息生成测试数据,提高测试效率。
基于上述硬件架构,提出本发明对象测试方法实施例。
如图2所示,提出本发明一种对象测试方法的第一实施例,所述对象测试方法包括:
步骤S10,获取待测试对象,判断是否预存有所述待测试对象的权重信息;
在本实施例中,该待测试对象可为接口以及插件等的程序代码,该权重信息可包括代码覆盖率以及各个测试规则的权重,可将该权重信息与测试对象关联保存。
步骤S20,在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对所述待检测对象,其中,在所述待检测对象的检测过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息;
规则库中的规则类型可包括:分隔符,各种分隔符的汇总,例如,\r,\n,,=,>,<等;随机数,包括各种长度的随机数;二进制数据量,各种二进制数据流的组合;字符型,包括ascii、unicode在内的各种字符型数据;bit类型;byte类型;float类型;日期类型等等,该测试规则库中的测试规则可不断更新。
可以理解的是,在遍历所述预设规则库中的测试规则时,可不断调整各个测试规则的组合即各个规则的权重生成测试数据,直至遍历完所有测试规则,具体过程如下:
按照预设的权重值对测试规则库中的测试规则进行组合生成测试数据;
按照所述测试数据对所述待测试对象进行测试,以获取所述测试数据的代码覆盖率;
在所述代码覆盖率变化时,更新所述待测试对象的所述权重信息;
在所述代码覆盖率未变化时,调整所述测试规则库中的测试规则的权重值,并按照调整后的所述权重值对所述测试规则库中的测试规则进行组合生成测试数据;
继续执行按照所述测试数据对所述待测试对象进行测试的步骤,直至遍历完所有规则。
在代码覆盖率变化时,说明该测试数据为有效数据,则对该权重值进行保存,以使得下针对同样的测试对象时,可直接采用存储的权重信息生成测试数据以进行测试。
在本方案中,主要以key值对权重信息进行存储。例如某被测系统对应的A接口有一个参数B,在对该B参数进行数据构造的过程中,某个测试数据生成规则组合C贡献了N%的代码覆盖率。权重库以3元组的形式记录该权重信息:(B,C,N%),此处可不再保留接口A的信息,仅以参数B作为key,有助于在别的接口中遇到B参数的(时候,可以使用相同的权重信息,可以理解的时,也可保存接口A的信息即权重信息为(A,B,C,N%),使得在测试接口A的B参数时可调用该规则组合C。N%的总和是100%。可以保证每个组合的权重按照百分比分配,对于权重N%,在构造该key下的测试数据的时候,按照权重的高低进行构造,直到被测对象的覆盖率不再升高或者达到100%。可以理解的是,也可在代码覆盖率发生改变时,不再进行权重的调整,直接获取其它待测试对象进行测试。
可以理解的是,不同的规则组合可能均会出现代码覆盖率变化的情况,则步骤“更新所述待测试对象的所述权重信息”包括:
在更新过所述待测试对象的权重信息,且当前权重值对应的代码覆盖率是否大于所述权重信息中的代码覆盖率时,采用当前生成的所述权重信息更新保存的权重信息;
在未更新过所述待测试对象的权重信息时,关联保存所述待测试对象和所述权重信息。
在之前的代码覆盖率高于当前的代码覆盖率时则不更新权重信息,在之前的代码覆盖率小于当前代码覆盖率时,更新该权重信息,以保证采用代码覆盖率最高的测试数据进行测试,提高测试准确性。
步骤S30,在预存有所述待测试对象的权重信息时,按照预存的所述权重信息生成测试数据进行所述待测试对象的测试。
在本实施中,该权重信息中的权重值指规则库中各个测试规则的权重,按照该权重值由规则提取测试规则。
本实施例提出的对象测试方法,在测试过程中不断调整各个测试规则的权重以生成不同的测试数据对待测试对象进行测试,并在进行测试时若代码覆盖率发生变化,则将当前权重信息与待测试对象关联保存,使得下一次再测试该待测试对象时,直接调用该保存的权重信息生成测试数据,提高测试效率。
基于第一实施例提出本发明对象测试方法的第二实施例,在本实施例中,在所述待检测对象的检测过程中代码覆盖率发生变化时,关联保存所述待检测对象和所述测试数据。
在本实施例中,在关联保存该待检测对象和所述测试数据可保存代码覆盖率以及代码信息,如源文件M的第N行代码。可设置基线库来保存测试数据,该测试数据为对被测对象某一测试入口的有效数据进行记录。例如一个http接口A的某个参数B,规则组合C对应的测试数据M执行过后,覆盖了源文件的代码,试整个测试过程代码覆盖率提高到Q%。那么存储的该条基线为:(A,B,M,Q%),基线库建立之后,当下次再遇到A接口的B参数的时候,先直接调用基线库的数据进行测试而不需要再调用测试规则生成测试数据。
可以理解的是,在测试对象时,可先调用基线库中的测试数据进行测试,在基线库中未保存有该测试对象的测试数据时,再调用该测试对象对应的权重信息生成测试规则组合,采用该测试规则组合生成测试数据进行测试,则所述判断是否预存有所述待测试对象的权重信息的步骤之前,所述对象测试方法包括:
获取待测试对象,并判断是否预存有所述待测试对象对应的测试数据;
在未预存有所述待测试对象对应的测试数据时,执行所述判断是否预存有所述待测试对象的权重信息的步骤;
所述判断是否预存有所述待测试对象对应的测试数据的步骤之后,所述对象测试方法还包括步骤:
在预存有所述待测试对象对应的测试数据时,采用所述测试对象对应的数据对所述待测试对象进行测试。
一个http接口A的某个参数B,规则组合C对应的测试数据M执行过后,覆盖了源文件的代码,试整个测试过程代码覆盖率提高到Q%。那么存储的该条基线为:(A,B,M,Q%),权重信息为(B,C,Q%),则再次面对接口B的参数B时,该参数B可能存在权重信息不存在测试数据。
本实施例中,将测试数据直接与测试对象关联保存,使得可以调用测试数据直接测试,效率更高。
参照图3,为本发明对象测试方法的系统架构图,在获取到待检测对象时,将待检测对象作为被测对象,规则选择与组合器获取基线库中与被测对象对应的测试数据,在由基线库中获取到测试数据时,将测试数据注入被测对象中进行检测,覆盖率收集器收集代码覆盖率;在由基线库中未获取到测试数据时,由权重库中获取被测对象对应的权重信息,在获取到权重信息时,规则选择与组合器按照获取到的权重信息进行测试规则的组合,并将测试规则的组合发送至数据生成与注入器生成测试数据,并将测试数据注入被测对象中,覆盖率收集器收集代码覆盖率;在未获取到权重信息时,规则选择与组合器遍历测试规则库中的测试规则生成测试规则组合,并将测试规则的组合发送至数据生成与注入器生成测试数据,将测试数据注入被测对象中,覆盖率收集器收集代码覆盖率,在代码覆盖率发生变化时,规则权重管理器更新权重库以及基线库,在代码覆盖率未发生变化时,规则选择和组合器调整权重值重新进行测试规则组合。
对应地,提出本发明对象测试装置的第一实施例。参考图4,所述对象测试装置包括获取模块10、判断模块20以及测试模块30,其中:
获取模块10,用于获取待测试对象;
判断模块20,用于判断是否预存有所述待测试对象的权重信息;
在本实施例中,该待测试对象可为接口以及插件等的程序代码,该权重信息可包括代码覆盖率以及各个测试规则的权重,可将该权重信息与测试对象关联保存。
测试模块30,用于在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则生成检测数据对所述待检测对象,其中,在所述待检测对象的检测过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息;
规则库中的规则类型可包括:分隔符,各种分隔符的汇总,例如,\r,\n,,=,>,<等;随机数,包括各种长度的随机数;二进制数据量,各种二进制数据流的组合;字符型,包括ascii、unicode在内的各种字符型数据;bit类型;byte类型;float类型;日期类型等等,该测试规则库中的测试规则可不断更新。
可以理解的是,在遍历所述预设规则库中的测试规则时,可不断调整各个测试规则的组合即各个规则的权重生成测试数据,直至遍历完所有测试规则,即参照图5,所述测试模块30包括:
生成单元31,用于按照预设的权重值对测试规则库中的测试规则进行组合生成测试数据;
测试单元32,用于按照生成的所述测试数据对所述待测试对象进行测试,以获取所述测试数据的代码覆盖率;
更新单元33,用于在所述代码覆盖率变化时,更新所述待测试对象的所述权重信息;
调整单元34,用于在所述代码覆盖率未变化时,调整所述测试规则库中的测试规则的权重值,并按照调整后的所述权重值对所述测试规则库中的测试规则进行组合生成测试数据。
在代码覆盖率变化时,说明该测试数据为有效数据,则对该权重值进行保存,以使得下针对同样的测试对象时,可直接采用存储的权重信息生成测试数据以进行测试。
在本方案中,主要以key值对权重信息进行存储。例如某被测系统对应的A接口有一个参数B,在对该B参数进行数据构造的过程中,某个测试数据生成规则组合C贡献了N%的代码覆盖率。权重库以3元组的形式记录该权重信息:(B,C,N%),此处可不再保留接口A的信息,仅以参数B作为key,有助于在别的接口中遇到B参数的(时候,可以使用相同的权重信息,可以理解的时,也可保存接口A的信息即权重信息为(A,B,C,N%),使得在测试接口A的B参数时可调用该规则组合C。N%的总和是100%。可以保证每个组合的权重按照百分比分配,对于权重N%,在构造该key下的测试数据的时候,按照权重的高低进行构造,直到被测对象的覆盖率不再升高或者达到100%。可以理解的是,也可在代码覆盖率发生改变时,不再进行权重的调整,直接获取其它待测试对象进行测试。
可以理解的是,不同的规则组合可能均会出现代码覆盖率变化的情况,则更新单元33包括:
更新子单元,用于在更新过所述待测试对象的权重信息,且当前权重值对应的代码覆盖率是否大于所述权重信息中的代码覆盖率时,采用当前生成的所述权重信息更新保存的权重信息;
存储子单元,用于在未更新过所述待测试对象的权重信息时,关联保存所述待测试对象和所述权重信息。
在之前的代码覆盖率高于当前的代码覆盖率时则不更新权重信息,在之前的代码覆盖率小于当前代码覆盖率时,更新该权重信息,以保证采用代码覆盖率最高的测试数据进行测试,提高测试准确性。
所述测试模块30,还用于在预存有所述待测试对象的权重信息时,按照预存的所述权重信息生成测试数据进行所述待测试对象的测试。
在本实施中,该权重信息中的权重值指规则库中各个测试规则的权重,按照该权重值由规则提取测试规则。
本实施例提出的对象测试装置,在测试过程中不断调整各个测试规则的权重以生成不同的测试数据对待测试对象进行测试,并在进行测试时若代码覆盖率发生变化,则将当前权重信息与待测试对象关联保存,使得下一次再测试该待测试对象时,直接调用该保存的权重信息生成测试数据,提高测试效率。
基于第一实施例提出本发明对象测试装置的第二实施例,参照图6,在本实施例中,所述对象测试装置还包括:
存储模块40,用于在所述待检测对象的检测过程中代码覆盖率发生变化时,关联保存所述待检测对象和所述测试数据。
在本实施例中,在关联保存该待检测对象和所述测试数据可保存代码覆盖率以及代码信息,如源文件M的第N行代码。可设置基线库来保存测试数据,该测试数据为对被测对象某一测试入口的有效数据进行记录。例如一个http接口A的某个参数B,规则组合C对应的测试数据M执行过后,覆盖了源文件的代码,试整个测试过程代码覆盖率提高到Q%。那么存储的该条基线为:(A,B,M,Q%),基线库建立之后,当下次再遇到A接口的B参数的时候,先直接调用基线库的数据进行测试而不需要再调用测试规则生成测试数据。
可以理解的是,在测试对象时,可先调用基线库中的测试数据进行测试,在基线库中未保存有该测试对象的测试数据时,再调用该测试对象对应的权重信息生成测试规则组合,采用该测试规则组合生成测试数据进行测试,则所述判断模块20,还用于判断是否预存有所述待测试对象对应的测试数据,并在未预存有所述待测试对象对应的测试数据时,判断是否预存有所述待测试对象的权重信息;所述测试模块30,还用于在预存有所述待测试对象对应的测试数据时,采用所述测试对象对应的数据对所述待测试对象进行测试。
一个http接口A的某个参数B,规则组合C对应的测试数据M执行过后,覆盖了源文件的代码,试整个测试过程代码覆盖率提高到Q%。那么存储的该条基线为:(A,B,M,Q%),权重信息为(B,C,Q%),则再次面对接口B的参数B时,该参数B可能存在权重信息不存在测试数据。
本实施例中,将测试数据直接与测试对象关联保存,使得可以调用测试数据直接测试,效率更高。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

Claims (12)

1.一种对象测试方法,其特征在于,所述对象测试方法包括步骤:
获取待测试对象,判断是否预存有所述待测试对象的权重信息;
其中,所述权重信息包括规则库中各个测试规则分别对应的权重值;
在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则以生成测试数据,按照所述测试数据对所述待测试对象进行测试;
其中,在所述待测试对象的测试过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息,并将更新后的权重信息与所述待测试对象进行关联保存;
在预存有所述待测试对象的权重信息时,按照预存的所述各个测试规则分别对应的权重值对所述预设的规则库中的测试规则进行组合以生成测试数据,并按照所述测试数据进行所述待测试对象的测试。
2.如权利要求1所述的对象测试方法,其特征在于,所述遍历预设的规则库中的测试规则以生成测试数据,按照所述测试数据对所述待测试对象进行测试的步骤包括:
按照预设的权重值对测试规则库中的测试规则进行组合生成测试数据;
按照所述测试数据对所述待测试对象进行测试,以获取所述测试数据的代码覆盖率;
在所述代码覆盖率变化时,更新所述待测试对象的所述权重信息;
在所述代码覆盖率未变化时,调整所述测试规则库中的测试规则的权重值,并按照调整后的所述权重值对所述测试规则库中的测试规则进行组合生成测试数据;
继续执行按照所述测试数据对所述待测试对象进行测试的步骤,直至遍历完所有规则。
3.如权利要求2所述的对象测试方法,其特征在于,所述更新所述待测试对象的所述权重信息的步骤包括:
在更新过所述待测试对象的权重信息,且当前权重值对应的代码覆盖率大于所述权重信息中的代码覆盖率时,采用当前生成的所述权重信息更新保存的权重信息;
在未更新过所述待测试对象的权重信息时,关联保存所述待测试对象和所述权重信息。
4.如权利要求1-3任一项所述的对象测试方法,其特征在于,在所述待测试对象的测试过程中代码覆盖率发生变化时,关联保存所述待测试对象和所述测试数据。
5.如权利要求4所述的对象测试方法,其特征在于,所述判断是否预存有所述待测试对象的权重信息的步骤之前,所述对象测试方法还包括:
获取待测试对象,并判断是否预存有所述待测试对象对应的测试数据;
在未预存有所述待测试对象对应的测试数据时,执行所述判断是否预存有所述待测试对象的权重信息的步骤;
所述判断是否预存有所述待测试对象对应的测试数据的步骤之后,所述对象测试方法还包括步骤:
在预存有所述待测试对象对应的测试数据时,采用所述待测试对象对应的测试数据对所述待测试对象进行测试。
6.一种对象测试装置,其特征在于,所述对象测试装置包括:
获取模块,用于获取待测试对象;
判断模块,用于判断是否预存有所述待测试对象的权重信息;
其中,所述权重信息包括规则库中各个测试规则分别对应的权重值;
测试模块,用于在未预存有所述待测试对象的权重信息时,遍历预设的规则库中的测试规则以生成测试数据,按照所述测试数据对所述待测试对象进行测试;
其中,在所述待测试对象的测试过程中代码覆盖率发生变化时,更新所述待测试对象的所述权重信息,并将更新后的权重信息与所述待测试对象进行关联保存;
所述测试模块,还用于在预存有所述待测试对象的权重信息时,按照预存的所述各个测试规则分别对应的权重值对所述预设的规则库中的测试规则进行组合以生成测试数据,并按照所述测试数据进行所述待测试对象的测试。
7.如权利要求6所述的对象测试装置,其特征在于,所述测试模块包括:
生成单元,用于按照预设的权重值对测试规则库中的测试规则进行组合生成测试数据;
测试单元,用于按照生成的所述测试数据对所述待测试对象进行测试,以获取所述测试数据的代码覆盖率;
更新单元,用于在所述代码覆盖率变化时,更新所述待测试对象的所述权重信息;
调整单元,用于在所述代码覆盖率未变化时,调整所述测试规则库中的测试规则的权重值,并按照调整后的所述权重值对所述测试规则库中的测试规则进行组合生成测试数据。
8.如权利要求7所述的对象测试装置,其特征在于,所述更新单元包括:
更新子单元,用于在更新过所述待测试对象的权重信息,且当前权重值对应的代码覆盖率大于所述权重信息中的代码覆盖率时,采用当前生成的所述权重信息更新保存的权重信息;
存储子单元,用于在未更新过所述待测试对象的权重信息时,关联保存所述待测试对象和所述权重信息。
9.如权利要求6-8任一项所述的对象测试装置,其特征在于,所述对象测试装置还包括:
存储模块,用于在所述待测试对象的测试过程中代码覆盖率发生变化时,关联保存所述待测试对象和所述测试数据。
10.如权利要求9所述的对象测试装置,其特征在于,
所述判断模块,还用于判断是否预存有所述待测试对象对应的测试数据,并在未预存有所述待测试对象对应的测试数据时,判断是否预存有所述待测试对象的权重信息;
所述测试模块,还用于在预存有所述待测试对象对应的测试数据时,采用所述待测试对象对应的测试数据对所述待测试对象进行测试。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的对象测试方法。
12.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如权利要求1-5任一项所述的对象测试方法。
CN201510818052.4A 2015-11-23 2015-11-23 对象测试方法和装置 Active CN106776261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510818052.4A CN106776261B (zh) 2015-11-23 2015-11-23 对象测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510818052.4A CN106776261B (zh) 2015-11-23 2015-11-23 对象测试方法和装置

Publications (2)

Publication Number Publication Date
CN106776261A CN106776261A (zh) 2017-05-31
CN106776261B true CN106776261B (zh) 2021-03-12

Family

ID=58964265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510818052.4A Active CN106776261B (zh) 2015-11-23 2015-11-23 对象测试方法和装置

Country Status (1)

Country Link
CN (1) CN106776261B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634792B (zh) * 2018-12-06 2023-10-03 中电太极(集团)有限公司 一种基于云计算的服务器硬件测试平台系统
CA3039950A1 (en) * 2019-02-01 2020-08-01 Qining Jiang Method, apparatus, and computer device for matching teaching test item
CN114547101B (zh) * 2022-01-13 2023-04-28 北京元年科技股份有限公司 数据中台的数据质量评估方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873625A (zh) * 2005-08-19 2006-12-06 华为技术有限公司 一种基于功能覆盖率的随机激励的自动产生方法
CN104133762A (zh) * 2013-05-03 2014-11-05 腾讯科技(深圳)有限公司 软件测试方法及测试装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949795B2 (en) * 2012-08-23 2015-02-03 International Business Machines Corporation Generating test cases for covering enterprise rules and predicates
CN103019933B (zh) * 2012-11-27 2016-01-13 网宿科技股份有限公司 测试用例覆盖度自动识别方法及装置
CN104794057B (zh) * 2015-04-29 2017-12-12 瑞斯康达科技发展股份有限公司 一种交叉事件自动化测试方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873625A (zh) * 2005-08-19 2006-12-06 华为技术有限公司 一种基于功能覆盖率的随机激励的自动产生方法
CN104133762A (zh) * 2013-05-03 2014-11-05 腾讯科技(深圳)有限公司 软件测试方法及测试装置

Also Published As

Publication number Publication date
CN106776261A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
US20120260202A1 (en) Customized launching of applications
CN103731815B (zh) 一种实现手机客户端软件升级的方法及装置
CN105630525B (zh) 一种页面同步方法及装置
CN107818046B (zh) 应用程序页面的a/b测试方法及装置
CN106776261B (zh) 对象测试方法和装置
CN107807841B (zh) 服务器模拟方法、装置、设备及可读存储介质
CN104021218A (zh) 一种信息显示方法及装置
CN112953791B (zh) 网络探测方法、装置、电子设备及计算机可读存储介质
CN103873455A (zh) 一种信息校验的方法及装置
CN110889074B (zh) 页面显示方法、装置、存储介质及电子设备
CN111414191A (zh) 一种小程序的灰度发布方法及装置
KR102205686B1 (ko) 후보 문자 순위화 방법 및 장치와 문자 입력 방법 및 장치
CN109495319B (zh) Cdn节点的故障信息确定方法、装置及设备
CN111131002B (zh) 聊天记录的追踪方法、系统及存储介质
CN109976828B (zh) 一种配置文件的方法及装置
CN106302821B (zh) 一种数据请求方法及其设备
CN103617299A (zh) 表格属性的设置方法及系统
CN108989181B (zh) 建立即时通信的方法、装置、设备及服务器
CN112272135B (zh) 一种存储软件的邮件发送方法、装置、设备及存储介质
CN108471635B (zh) 用于连接无线接入点的方法和设备
CN113326506A (zh) 一种小程序监控方法及装置
CN107544685A (zh) 信息推送方法和装置
CN111241521A (zh) 一种云上函数权限检测并修复方法、装置、存储介质及终端
CN110888711A (zh) 缺陷管理方法、缺陷管理装置及可读存储介质
CN105808598A (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