CN103218297B - 测试数据的筛选方法及装置 - Google Patents

测试数据的筛选方法及装置 Download PDF

Info

Publication number
CN103218297B
CN103218297B CN201310180277.2A CN201310180277A CN103218297B CN 103218297 B CN103218297 B CN 103218297B CN 201310180277 A CN201310180277 A CN 201310180277A CN 103218297 B CN103218297 B CN 103218297B
Authority
CN
China
Prior art keywords
test data
test
path
program
measured
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
CN201310180277.2A
Other languages
English (en)
Other versions
CN103218297A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201310180277.2A priority Critical patent/CN103218297B/zh
Publication of CN103218297A publication Critical patent/CN103218297A/zh
Application granted granted Critical
Publication of CN103218297B publication Critical patent/CN103218297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提出一种测试数据的筛选方法及装置,其中所述方法包括:输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据;对待测程序进行分析以获得待测程序的多个路径;分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径;以及根据每个测试数据所对应的路径对测试数据集合中的多个测试数据进行筛选。根据本发明实施例的方法,无需商业软件提供接口,就可获取测试数据集合中的测试数据对应的路径,用户接入成本小,使用方便,并且筛选模块能根据每个测试数据对应的路径对测试数据集合进行筛选,能够在众多测试数据中提取出覆盖待测程序所有路径并且最精简的测试数据集合,大幅度地提高了测试速度,缩短了测试周期。

Description

测试数据的筛选方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种测试数据的筛选方法及装置。
背景技术
为了提高测试速度缩短测试周期,一般会对测试用例的测试数据进行筛选,目前主要基于分支覆盖率对测试数据进行筛选,需要在安装ccover编译程序的前提下,在测试程序代码中插入ccover提供的覆盖率事件统计接口,对每条测试数据进行测试后,只要获得覆盖率增加,则说明测试程序进入新分支,即认为该测试数据有效,并存储为最终测试数据,否则认为无效。
但是这种数据筛选方法需要安装ccover编译程序,使用成本较高,并且需要在测试程序中插入调用覆盖率事件统计接口,使用者需要修改部分文件,使用起来较为繁琐。
发明内容
本发明的旨在至少解决上述技术缺陷之一。
为此,本发明第一个目的在于提出一种测试数据的筛选方法,用户接入成本小,使用方便,并且大幅度地提高了测试速度,缩短了测试周期。
本发明第二个目的在于提出一种测试数据的筛选装置。
为实现上述目的,根据本发明第一方面的实施例的测试数据的筛选方法包括以下步骤:输入待测程序及测试数据集合,其中,所述测试数据集合中包括多个测试数据;对所述待测程序进行分析以获得所述待测程序的多个路径;分别将所述多个测试数据加载至所述待测程序,并获得每个测试数据所对应的路径;以及根据所述每个测试数据所对应的路径对所述测试数据集合中的多个测试数据进行筛选。
根据本发明实施例的测试数据的筛选方法,无需商业软件提供接口,就可获取测试数据集合中的测试数据对应的路径,用户接入成本小,使用方便,并且能根据每个测试数据对应的路径对测试数据集合进行筛选,能够在众多测试数据中提取出覆盖待测程序所有路径并且最精简的测试数据集合,从而大幅度地提高了测试速度,并且缩短了测试周期。
为实现上述目的,根据本发明第二方面的实施例的测试数据的筛选装置,包括:输入模块,用于输入待测程序及测试数据集合,其中,所述测试数据集合中包括多个测试数据;分析模块,用于对所述待测程序进行分析以获得所述待测程序的多个路径;加载模块,用于分别将所述多个测试数据加载至所述待测程序,并获得每个测试数据所对应的路径;以及筛选模块,用于根据所述每个测试数据所对应的路径对所述测试数据集合中的多个测试数据进行筛选。
根据本发明实施例的测试数据的筛选装置,无需商业软件提供接口,就可获取测试数据集合中的测试数据对应的路径,用户接入成本小,使用方便,并且能根据每个测试数据对应的路径对测试数据集合进行筛选,能够在众多测试数据中提取出覆盖待测程序所有路径并且最精简的测试数据集合,从而大幅度地提高了测试速度,并且缩短了测试周期。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的测试数据的筛选方法的流程图;
图2为根据本发明一个具体实施例的测试数据的筛选方法的流程图;
图3为根据本发明另一个实施例的测试数据的筛选方法的流程图;
图4为根据本发明一个实施例的测试数据的筛选装置的结构框图;
图5为根据本发明另一个实施例的测试数据的筛选装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的测试数据的筛选方法。
一种测试数据的筛选方法,包括以下步骤:输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据;对待测程序进行分析以获得待测程序的多个路径;分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径;以及根据每个测试数据所对应的路径对测试数据集合中的多个测试数据进行筛选。
图1为根据本发明一个实施例的测试数据的筛选方法的流程图。
如图1所示,根据本发明实施例的测试数据的筛选方法包括下述步骤。
S101,输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据。
在本发明的一个实施例中,可通过GNU程序调试器GDB(The GNU ProjectDebugger)对待测程序进行测试并对测试数据集合进行筛选,首先需要将待测程序及测试数据集合输入GDB中,通过Linux管道技术与GDB的机器界面MI(Machine Interface)接口建立连接后,根据命令可直接调用待测程序和测试数据集合中的多个测试数据。
S102,对待测程序进行分析以获得待测程序的多个路径。
具体地,首先通过静态分支预测方法查找程序源文件中的函数信息,并以函数为单位,在源代码中分析各个函数的分支关键词,并获取各个函数的起始行、终止行和函数内各分支间的层级关系,举例来说,对于一个二进制的待测程序,包含一个main函数,main函数中又包含if/else/for/while等函数语句,可以将其看做一个树结构,其中,根节点为main函数,树节点为程序的分支节点,即if/else/for/while等,叶子节点为一个测试数据的测试结束点,从根节点到叶子节点的多个不同执行路径既为这个二进制待测程序的多个路径。
其中,静态分支预测方法为公知方法,在本发明中不再赘述。
S103,分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径。
其中,多个测试数据之间具有数据分割点,用以对每个测试数据进行区分,待测程序的每个路径中在主函数及分支节点处均设有断点,通过断点获得每个测试数据所对应的路径。具体地,可以通过GDB的MI接口获取每个测试数据对应的路径,首先通过Linux管道技术与GDB的MI接口建立连接后,载入待测程序,并设定程序运行参数,同时在待测程序的main函数处插入一个断点,并利用静态分支预测方法扫描待测程序的源代码,找出所有的分支节点,并在分支节点处以及多个测试数据间的数据分割点处插入断点,然后运行待测程序,每次在断点处停下,记录断点位置,包括行号和节点名称(如if/else/for/while等)。当待测程序经过数据分割点时,表明一个测试数据执行路径已经结束,既可获取此测试数据对应的路径,并进行保存。
S104,根据每个测试数据所对应的路径对测试数据集合中的多个测试数据进行筛选。
具体地,可在对应的路径相同的测试数据中选取一个作为最终测试数据,由此实现对多个测试数据进行筛选。
根据本发明实施例的测试数据的筛选方法,无需商业软件提供接口,就可获取测试数据集合中的测试数据对应的路径,用户接入成本小,使用方便,并且能根据每个测试数据对应的路径对测试数据集合进行筛选,能够在众多测试数据中提取出覆盖待测程序所有路径并且最精简的测试数据集合,从而大幅度地提高了测试速度,并且缩短了测试周期。
图2为根据本发明一个具体实施例的测试数据的筛选方法的流程图。
如图2所示,根据本发明实施例的测试数据的筛选方法包括下述步骤。
S201,输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据。
在本发明的一个实施例中,可通过GNU程序调试器GDB对待测程序进行测试并对测试数据集合进行筛选,首先需要将待测程序及测试数据集合输入GDB中,通过Linux管道技术与GDB的机器界面MI接口建立连接后,根据命令可直接调用待测程序和测试数据集合中的多个测试数据。
S202,对待测程序进行分析以获得待测程序的多个路径。
具体地,首先通过静态分支预测方法查找程序源文件中的函数信息,并以函数为单位,在源代码中分析各个函数的分支关键词,并获取各个函数的起始行、终止行和函数内各分支间的层级关系,举例来说,对于一个二进制的待测程序,包含一个main函数,main函数中又包含if/else/for/while等函数语句,可以将其看做一个树结构,其中,根节点为main函数,树节点为程序的分支节点,即if/else/for/while等,叶子节点为一个测试数据的测试结束点,从根节点到叶子节点的多个不同执行路径既为这个二进制待测程序的多个路径。
其中,静态分支预测方法为公知方法,在本发明中不再赘述。
S203,分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径。
其中,多个测试数据之间具有数据分割点,用以对每个测试数据进行区分,待测程序的每个路径中在主函数及分支节点处均设有断点,通过断点获得每个测试数据所对应的路径。具体地,可以通过GDB的MI接口获取每个测试数据对应的路径,首先通过Linux管道技术与GDB的MI接口建立连接后,载入待测程序,并设定程序运行参数,同时在待测程序的main函数处插入一个断点,并利用静态分支预测方法扫描待测程序的源代码,找出所有的分支节点,并在分支节点处以及多个测试数据间的数据分割点处插入断点,然后运行待测程序,每次在断点处停下,记录断点位置,包括行号和节点名称(如if/else/for/while等)。当待测程序经过数据分割点时,表明一个测试数据执行路径已经结束,既可获取此测试数据对应的路径,并进行保存。
S204,判断是否存在两个测试数据所对应的路径相同。
具体地,当一个测试数据执行路径结束时,首先判断是否存在与该测试数据对应的路径相同的已存储的路径,即判断该测试数据对应的路径中包含的路径号是否相同,如果不存在,则此测试数据有效,并存储此测试数据的路径。
S205,如果存在,则进一步判断路径相同的两个测试数据是否具有相同的处理逻辑。
如果存在与此测试数据对应的路径相同的已存储的路径,则进一步判断路径相同的两个测试数据是否具有相同的处理逻辑,即判断路径相同的两个测试数据所测试的目标功能是否相同。
S206,如果是,则选择两个测试数据中的一个作为最终的测试数据。
如果路径相同的两个测试数据具有相同的处理逻辑,即路径相同的两个测试数据所测试的目标功能也相同,则此测试数据无效,并选择两个测试数据中的一个作为最终的测试数据,由此,所有对应路径相同并且处理逻辑相同的测试数据中只选取一个作为最终的测试数据,减少了不必要的测试数据,能够提高测试速度以及缩短测试周期。
根据本发明实施例的测试数据的筛选方法,能够在多个对应路径相同的测试数据中筛选一个作为最终的测试数据,进一步精简了测试数据集合,提高测试速度,并且缩短测试周期。
图3为根据本发明另一个实施例的测试数据的筛选方法的流程图。
如图3所示,根据本发明实施例的测试数据的筛选方法包括下述步骤。
S301,输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据。
在本发明的一个实施例中,可通过GNU程序调试器GDB对待测程序进行测试并对测试数据集合进行筛选,首先需要讲待测程序及测试数据集合输入GDB中,通过Linux管道技术与GDB的机器界面MI接口建立连接后,根据命令可直接调用待测程序和测试数据集合中的多个测试数据。
S302,对待测程序进行分析以获得待测程序的多个路径。
具体地,先通过静态分支预测方法查找程序源文件中的函数信息,并以函数为单位,在源代码中分析各个函数的分支关键词,并获取各个函数的起始行、终止行和函数内各分支间的层级关系,举例来说,对于一个二进制的待测程序,包含一个main函数,main函数中又包含if/else/for/while等函数语句,可以将其看做一个树结构,其中,根节点为main函数,树节点为程序的分支节点,即if/else/for/while等,叶子节点为一个测试数据的测试结束点,从根节点到叶子节点的多个不同执行路径既为这个二进制待测程序的多个路径。
其中,静态分支预测方法为公知方法,在本发明中不再赘述。
S303,分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径。
其中,多个测试数据之间具有数据分割点,用以对每个测试数据进行区分,待测程序的每个路径中在主函数及分支节点处均设有断点,通过断点获得每个测试数据所对应的路径。具体地,可以通过GDB的MI接口获取每个测试数据对应的路径,首先通过Linux管道技术与GDB的MI接口建立连接后,载入待测程序,设定程序运行参数,同时在待测程序的main函数处插入一个断点,并利用静态分支预测方法扫描待测程序的源代码,找出所有的分支节点,并在分支节点处以及多个测试数据间的数据分割点处插入断点,然后运行待测程序,每次在断点处停下,记录断点位置,包括行号和节点名称(如if/else/for/while等)。当待测程序经过数据分割点时,表明一个测试数据执行路径已经结束,既可获取此测试数据对应的路径,并进行保存。
S304,判断是否存在两个测试数据所对应的路径相同。
具体地,当一个测试数据执行路径结束时,首先判断是否存在与该测试数据对应的路径相同的已存储的路径,即判断该测试数据对应的路径中包含的路径号是否相同,如果不存在,则此测试数据有效,并存储此测试数据的路径。
S305,如果存在,则进一步判断路径相同的两个测试数据是否具有相同的处理逻辑。
如果存在与此测试数据对应的路径相同的已存储的路径,则进一步判断路径相同的两个测试数据是否具有相同的处理逻辑,即判断路径相同的两个测试数据所测试的目标功能是否相同。
S306,如果是,则选择两个测试数据中的一个作为最终的测试数据。
如果路径相同的两个测试数据具有相同的处理逻辑,即路径相同的两个测试数据所测试的目标功能也相同,则此测试数据无效,并选择两个测试数据中的一个作为最终的测试数据,由此,所有对应路径相同并且处理逻辑相同的测试数据中只选取一个作为最终的测试数据,减少了不必要的测试数据,能够提高测试速度以及缩短测试周期。
S307,记录每个测试数据对应的路径,及对应的路径的断点信息并作为测试文件输出。
在本发明的一个实施例中,在每个测试数据测试结束时记录其对应的路径及其断点信息,并根据路径断点信息生成程序执行路径信息,以及将测试数据对应的路径信息和程序执行路径信息作为输出文件进行输出,以展示给用户。
根据本发明实施例的测试数据的筛选方法,能够记录每个测试数据对应的路径以及对应路径的断点信息,并据此生成测试文件输出,是用户能够让用户了解测试数据的执行顺序,方便测试工程师对测试进行跟踪分析,使其能够根据未被覆盖的分支语句反推并添加测试用例,提高测试函数覆盖率。
为了实现上述实例,本发明还提出一种测试数据的筛选装置。
一种测试数据的筛选装置,包括:输入模块,用于输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据;分析模块,用于对待测程序进行分析以获得待测程序的多个路径;加载模块,用于分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径;以及筛选模块,用于根据每个测试数据所对应的路径对测试数据集合中的多个测试数据进行筛选。
图4为根据本发明一个实施例的测试数据的筛选装置的结构框图。
如图4所示,根据本发明实施例的测试数据的筛选装置包括:输入模块100、分析模块200、加载模块300以及筛选模块400。
具体地,输入模块100用于输入待测程序及测试数据集合,其中,测试数据集合中包括多个测试数据。
在本发明的一个实施例中,可通过GNU程序调试器GDB对待测程序进行测试并对测试数据集合进行筛选,首先通过输入模块100将待测程序及测试数据集合输入GDB中,通过Linux管道技术与GDB的机器界面MI接口建立连接后,根据命令可直接调用待测程序和测试数据集合中的多个测试数据。
分析模块200用于对待测程序进行分析以获得待测程序的多个路径。更具体地,分析模块200首先通过静态分支预测方法查找程序源文件中的函数信息,并以函数为单位,在源代码中分析各个函数的分支关键词,并获取各个函数的起始行、终止行和函数内各分支间的层级关系。举例来说,对于一个二进制的待测程序,包含一个main函数,main函数中又包含if/else/for/while等函数语句,可以将其看做一个树结构,其中,根节点为main函数,树节点为程序的分支节点,即if/else/for/while等,叶子节点为一个测试数据的测试结束点,从根节点到叶子节点的多个不同执行路径既为这个二进制待测程序的多个路径。其中,静态分支预测方法为公知方法,在此不再赘述。
加载模块300用于分别将多个测试数据加载至待测程序,并获得每个测试数据所对应的路径。其中,多个测试数据之间具有数据分割点,用以对每个测试数据进行区分,待测程序的每个路径中在主函数及分支节点处均设有断点,通过断点获得每个测试数据所对应的路径。更具体地,可以通过GDB的MI接口获取每个测试数据对应的路径,首先通过Linux管道技术与GDB的MI接口建立连接后,加载模块300载入待测程序,并设定程序运行参数,同时在待测程序的main函数处插入一个断点,并利用静态分支预测方法扫描待测程序的源代码,找出所有的分支节点,并在分支节点处以及多个测试数据间的数据分割点处插入断点,然后运行待测程序,每次在断点处停下,记录断点位置,包括行号和节点名称(如if/else/for/while等)。当待测程序经过数据分割点时,表明一个测试数据执行路径已经结束,既可获取此测试数据对应的路径,并进行保存。
筛选模块400用于根据每个测试数据所对应的路径对测试数据集合中的多个测试数据进行筛选。更具体地,筛选模块400在两个测试数据所对应的路径相同,并且路径相同的两个测试数据具有相同的处理逻辑时,选择两个测试数据中的一个作为最终的测试数据由此实现对多个测试数据进行筛选。当一个测试数据执行路径结束时,首先判断该测试数据对应的路径是否与已经存储的路径相同,即判断该测试数据对应的路径中包含的路径号是否相同,如果不同,则此测试数据的路径有效,并存储此测试数据的路径,如果相同,则进一步判断路径相同的两个测试数据是否具有相同的处理逻辑,即判断路径相同的两个测试数据所测试的目标功能是否相同。如果路径相同的两个测试数据具有相同的处理逻辑,即路径相同的两个测试数据所测试的目标功能也相同,则选择两个测试数据中的一个作为最终的测试数据,由此,所有对应路径相同并且处理逻辑相同的测试数据中只选取一个作为最终的测试数据,减少了不必要的测试数据,能够提高测试速度以及缩短测试周期。
根据本发明实施例的测试数据的筛选装置,无需商业软件提供接口,就可获取测试数据集合中的测试数据对应的路径,用户接入成本小,使用方便,并且筛选模块能根据每个测试数据对应的路径对测试数据集合进行筛选,能够在众多测试数据中提取出覆盖待测程序所有路径并且最精简的测试数据集合,从而大幅度地提高了测试速度,并且缩短了测试周期。
图5为根据本发明另一个实施例的测试数据的筛选装置的结构框图。
如图5所示,根据本发明实施例的测试数据的筛选装置在图4所示的基础上还包括:输出模块500。
具体地,输出模块500用于记录每个测试数据对应的路径,及对应的路径的断点信息并作为测试文件输出。在本发明的一个实施例中,输出模块能够在每个测试数据测试结束时记录其对应的路径及其断点信息,并根据路径断点信息生成程序执行路径信息,以及将测试数据对应的路径信息和程序执行路径信息作为输出文件进行输出,以展示给用户。
根据本发明实施例的测试数据的筛选装置,通过输出模块能够记录每个测试数据对应的路径以及对应路径的断点信息,并据此生成测试文件输出,是用户能够让用户了解测试数据的执行顺序,方便测试工程师对测试进行跟踪分析,使其能够根据未被覆盖的分支语句反推并添加测试用例,提高测试函数覆盖率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (6)

1.一种测试数据的筛选方法,其特征在于,包括以下步骤:
输入待测程序及测试数据集合,其中,所述测试数据集合中包括多个测试数据;
对所述待测程序进行分析以获得所述待测程序的多个路径;
分别将所述多个测试数据加载至所述待测程序,并获得每个测试数据所对应的路径,其中,每个路径中在所述待测程序的主函数及分支节点处均设有断点,通过所述断点获得每个测试数据所对应的路径;以及
根据所述每个测试数据所对应的路径对所述测试数据集合中的多个测试数据进行筛选;
所述根据所述每个测试数据所对应的路径对所述测试数据集合中的多个测试数据进行筛选进一步包括:
如果两个测试数据所对应的路径相同,则进一步判断所述路径相同的两个测试数据是否具有相同的处理逻辑;
如果所述路径相同的两个测试数据具有相同的处理逻辑,则选择所述两个测试数据中的一个作为最终的测试数据。
2.如权利要求1所述的方法,其特征在于,还包括:
记录每个测试数据对应的路径,及所述对应的路径的断点信息并作为测试文件输出。
3.如权利要求1-2任一项所述的方法,其特征在于,其中,所述多个测试数据之间具有数据分割点。
4.一种测试数据的筛选装置,其特征在于,包括:
输入模块,用于输入待测程序及测试数据集合,其中,所述测试数据集合中包括多个测试数据;
分析模块,用于对所述待测程序进行分析以获得所述待测程序的多个路径;
加载模块,用于分别将所述多个测试数据加载至所述待测程序,并获得每个测试数据所对应的路径,其中,每个路径中在所述待测程序的主函数及分支节点处均设有断点,通过所述断点获得每个测试数据所对应的路径;以及
筛选模块,用于根据所述每个测试数据所对应的路径对所述测试数据集合中的多个测试数据进行筛选;
其中,所述筛选模块在两个测试数据所对应的路径相同,并且所述路径相同的两个测试数据具有相同的处理逻辑时,选择所述两个测试数据中的一个作为最终的测试数据。
5.如权利要求4所述的装置,其特征在于,还包括:
输出模块,用于记录每个测试数据对应的路径,及所述对应的路径的断点信息并作为测试文件输出。
6.如权利要求4-5任一项所述的装置,其特征在于,其中,所述多个测试数据之间具有数据分割点。
CN201310180277.2A 2013-05-15 2013-05-15 测试数据的筛选方法及装置 Active CN103218297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310180277.2A CN103218297B (zh) 2013-05-15 2013-05-15 测试数据的筛选方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310180277.2A CN103218297B (zh) 2013-05-15 2013-05-15 测试数据的筛选方法及装置

Publications (2)

Publication Number Publication Date
CN103218297A CN103218297A (zh) 2013-07-24
CN103218297B true CN103218297B (zh) 2018-05-04

Family

ID=48816115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310180277.2A Active CN103218297B (zh) 2013-05-15 2013-05-15 测试数据的筛选方法及装置

Country Status (1)

Country Link
CN (1) CN103218297B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505283A (zh) * 2021-07-09 2021-10-15 中国人民解放军火箭军工程大学 一种测试数据的筛选方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572424B (zh) * 2013-10-09 2018-04-20 阿里巴巴集团控股有限公司 测试方法及装置
CN105574039B (zh) * 2014-10-16 2019-05-24 中芯国际集成电路制造(上海)有限公司 一种晶圆测试数据的处理方法及系统
CN105988920B (zh) * 2015-02-04 2018-07-24 阿里巴巴集团控股有限公司 一种基于数据集的测试案例生成方法及其装置
CN112346960B (zh) * 2019-08-08 2023-09-26 腾讯科技(深圳)有限公司 测试信息存储方法、装置、服务器和存储介质
CN113688036A (zh) * 2021-08-13 2021-11-23 北京灵汐科技有限公司 一种数据处理方法、装置、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101788907A (zh) * 2010-01-04 2010-07-28 北京航空航天大学 组合服务精简测试用例的自动生成方法及装置
CN102323906A (zh) * 2011-09-08 2012-01-18 哈尔滨工程大学 一种基于遗传算法的mc/dc测试数据自动生成方法
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成系统
CN102426551A (zh) * 2011-11-04 2012-04-25 百度在线网络技术(北京)有限公司 测试数据筛选方法及装置、测试数据构造方法及装置
CN102521376A (zh) * 2011-12-20 2012-06-27 上海电机学院 一种软件测试用例集的精简方法
WO2012104907A1 (ja) * 2011-02-02 2012-08-09 株式会社日立製作所 プログラムの実行性能評価のためのテストデータ生成方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101788907A (zh) * 2010-01-04 2010-07-28 北京航空航天大学 组合服务精简测试用例的自动生成方法及装置
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成系统
WO2012104907A1 (ja) * 2011-02-02 2012-08-09 株式会社日立製作所 プログラムの実行性能評価のためのテストデータ生成方法
CN102323906A (zh) * 2011-09-08 2012-01-18 哈尔滨工程大学 一种基于遗传算法的mc/dc测试数据自动生成方法
CN102426551A (zh) * 2011-11-04 2012-04-25 百度在线网络技术(北京)有限公司 测试数据筛选方法及装置、测试数据构造方法及装置
CN102521376A (zh) * 2011-12-20 2012-06-27 上海电机学院 一种软件测试用例集的精简方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于变异的Web复合服务测试数据选择方法;张美花等;《计算机应用》;20110930;第31卷(第9期);第2244-2248页 *
面向路径的测试数据自动生成工具的设计;陈继锋等;《计算机工程与应用》;20110531;第46卷(第15期);第53-56页 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505283A (zh) * 2021-07-09 2021-10-15 中国人民解放军火箭军工程大学 一种测试数据的筛选方法及系统
CN113505283B (zh) * 2021-07-09 2024-02-27 中国人民解放军火箭军工程大学 一种测试数据的筛选方法及系统

Also Published As

Publication number Publication date
CN103218297A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
CN103218297B (zh) 测试数据的筛选方法及装置
CN103294594B (zh) 一种基于测试的静态分析误报消除方法
CN105022691B (zh) 一种基于uml图的高度自动化软件测试方法
Muccini et al. Using software architecture for code testing
US9916230B1 (en) White box testing
US8954936B2 (en) Enhancing functional tests coverage using traceability and static analysis
US7971193B2 (en) Methods for performining cross module context-sensitive security analysis
CN105302719B (zh) 一种变异测试方法及装置
CN102110051B (zh) 应用程序切片技术的静态缺陷检测方法
KR20140006862A (ko) 흐름 분석 계측
CN104156311B (zh) 一种基于cpu模拟器的嵌入式c语言目标码级单元测试方法
CN104732152A (zh) 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
CN106294148A (zh) 基于扩展符号变迁系统的c语言程序软件验证方法及装置
CN105868626A (zh) 基于控制流粗粒度完整性的监控软件业务行为的方法
CN107247663B (zh) 一种冗余变异体识别方法
US10606732B2 (en) Hybrid genetic concolic co-verification of hardware and software
CN106557412A (zh) 一种模糊测试的方法及装置
CN110399284A (zh) 一种测试用例编写与执行方法及装置
Ding et al. Detection of infeasible paths: Approaches and challenges
Bashir et al. A fitness function for evolutionary mutation testing of object-oriented programs
Frankl et al. An empirical comparison of two safe regression test selection techniques
CN109002723A (zh) 一种分段式符号执行方法
Santiesteban et al. Cirfix: Automated hardware repair and its real-world applications
Puhan et al. Program crash analysis based on taint analysis
CN109947642A (zh) 基于案例分类的自动化分层测试方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant