CN103885874B - 一种用于确定程序文件所对应的测试数据的方法与设备 - Google Patents

一种用于确定程序文件所对应的测试数据的方法与设备 Download PDF

Info

Publication number
CN103885874B
CN103885874B CN201210560717.2A CN201210560717A CN103885874B CN 103885874 B CN103885874 B CN 103885874B CN 201210560717 A CN201210560717 A CN 201210560717A CN 103885874 B CN103885874 B CN 103885874B
Authority
CN
China
Prior art keywords
information
data
data flow
described program
flow topology
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
CN201210560717.2A
Other languages
English (en)
Other versions
CN103885874A (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 CN201210560717.2A priority Critical patent/CN103885874B/zh
Publication of CN103885874A publication Critical patent/CN103885874A/zh
Application granted granted Critical
Publication of CN103885874B publication Critical patent/CN103885874B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的目的是提供一种用于确定程序文件所对应的测试数据的方法与设备,其中,测试设备获取待处理的数据集合在程序文件中的一条或多条数据运行记录;根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息;根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。与现有技术相比,本发明通过获取数据集合的一条或多条数据运行记录,从而对所述数据集合的数据流拓扑信息进行建立或更新,确定对应的测试相关数据;从而根据所述数据流拓扑信息,覆盖与待处理的数据集合相对应的完整的数据运行记录,进而覆盖完整的测试相关数据,保证了测试相关数据的完整性与多样性,提高了测试相关数据的获取效率。

Description

一种用于确定程序文件所对应的测试数据的方法与设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种用于确定程序文件所对应的测试数据的技术。
背景技术
在测试过程中,特别是基于分布式数据系统的脚本模块测试时,最为重要且最为复杂的即为对于测试数据的准备和构造。如何能够利用最少的测试数据来覆盖最全面的代码分支或程序路径,往往是困扰测试者最大的问题。
当前,对于测试数据的准备和构造主要有两种方法:利用机器学习对输入输出数据进行分类抽样和通过人工阅读代码构造数据。
机器学习分类能够对数据进行聚类划分,抽取等价类中的代表数据,然而这类算法的对象是数据而不是程序本身,即所抽取的数据只能代表在输入输出数据中的覆盖率而不能代表是否能够覆盖程序所有的分支。这种情况在数据本身密度较大时出现的误差很大,而且对于多路输入之间的数据耦合关系无法正确覆盖到。
人工代码阅读方案又是另一个极端,完全依据程序本身而脱离了数据的多样性,加之人工阅读的效率和准确性没有机器学习方法高,测试数据往往不能符合需求。
发明内容
本发明的目的是提供一种用于确定程序文件所对应的测试数据的方法与设备。
根据本发明的一个方面,提供了一种用于确定程序文件所对应的测试数据的方法,其中,该方法包括以下步骤:
a获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;
b根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;
c根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。
根据本发明的另一方面,还提供了一种用于确定程序文件所对应的测试数据的测试设备,其中,该设备包括:
获取装置,用于获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;
更新装置,用于根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;
确定装置,用于根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。
与现有技术相比,本发明通过获取待处理的数据集合在程序文件中的一条或多条数据运行记录,根据所述数据运行记录,对所述数据集合在所述程序文件中的数据流拓扑信息进行建立或更新,根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据;从而根据所述数据流拓扑信息,覆盖与待处理的数据集合相对应的完整的数据运行记录,进而覆盖完整的测试相关数据,保证了测试相关数据的完整性与多样性,提高了测试相关数据的获取效率。而且,本发明还可以通过新增、删除、重新映射的方式,对数据流拓扑信息进行更新,从而提高更新效率,并保证了测试相关数据的完整性与多样性。而且,本发明还可以从所述数据集合中选取对应的测试数据,以对所更新的程序路径进行测试,从而既可以对所更新的程序路径的可用性进行测试,也可以用作后续测试中的测试数据,保证了测试相关数据的完整性与有效性,提高了测试相关数据的获取效率。而且,本发明还可以基于预定的权重条件,对所述路径信息的路径权重信息进行确定;进一步地,还可以确定所述路径信息相对应的频次信息;进一步地,还可以结合所述路径权重信息,确定与所述程序路径信息相对应的测试数据;从而可以对路径信息进行进一步的处理,按照如频次、位置等信息,确定所述路径权重信息,完善了所述数据流拓扑信息,进而根据所述路径权重信息确定所述测试数据,保证了测试相关数据的完整性与多样性,提高了测试相关数据的获取效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的一种用于确定程序文件所对应的测试数据的测试设备示意图;
图2示出根据本发明一个优选实施例的一种用于确定程序文件所对应的测试数据的测试设备示意图;
图3示出根据本发明另一个方面的一种用于确定程序文件所对应的测试数据的方法流程图;
图4示出根据本发明一个优选实施例的一种用于确定程序文件所对应的测试数据的方法流程图;
图5示出根据本发明的一个方面的一种用于确定程序文件所对应的数据流拓扑信息的样例程序示意图;
图6和图7示出根据本发明的一个方面的一种用于确定程序文件所对应的数据流拓扑信息的样例程序更新示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的一种用于确定程序文件所对应的测试数据的测试设备示意图;其中,所述测试设备包括获取装置11、更新装置12、确定装置13。具体地,获取装置11获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;更新装置12根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;确定装置13根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。在此,所述测试设备包括但不限于网络设备、用户设备、或网络设备与用户设备通过网络相集成所构成的设备。其中,所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述用户设备其包括但不限于任何一种可与用户通过键盘、遥控器、触摸板、或声控设备进行人机交互的电子产品,例如计算机、智能手机、或PDA等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。本领域技术人员应能理解,其他的测试设备同样适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地,或者按照设定的或实时调整的工作模式要求,进行数据运行记录的获取、数据流拓扑信息的建立或更新、测试相关数据的确定等,直至测试设备停止获取待处理的数据集合在程序文件中的一条或多条数据运行记录。
其中,获取装置11获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息。具体地,获取装置11通过基于各种通信协议(Communications Protocol),与其他能够提供所述数据运行记录的设备,如数据运行记录数据库进行交互,获取待处理的数据集合在程序文件中的一条或多条数据运行记录;或者利用能够提供所述数据运行记录的脚本,如shell、awk等脚本,对所述待处理的数据集合进行跟踪,获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述跟踪并获取的方式例如通过记录所述数据集合中的每一条数据单元所经过的程序行号,将所述程序行号作为地址相关信息,或者将当前数据单元的程序行号在数据集合中的程序行号的偏移量作为地址相关信息。其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息,在此,所述地址相关信息包括但不限于与所述数据集合中的数据单元相对应的实际地址相关信息,如程序的行号等;或是与所述数据集合中的数据单元相对应的映射后的地址相关信息,如与指定的原点相对应的偏移量等。在此,“通信协议”包括计算机通信的传送协议,如TCP/IP、UDP、FTP、ICMP、NetBEUI等,或者存在于计算机中的其他形式通信,例如面向对象编程里面对象之间的通信或操作系统内不同程序或计算机不同模块之间的消息传送协议。
更新装置12根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应。具体地,更新装置12根据所述获取装置11所获取的数据运行记录,对所述数据集合在所述程序文件中的数据流拓扑信息进行建立或更新;若当前已存在数据流拓扑信息,则根据所述获取装置11所获取的数据运行记录,对所述数据流拓扑信息进行更新,若当前不存在数据流拓扑信息,则根据所述获取装置11所获取的数据运行记录,对所述数据流拓扑信息进行建立;其中,所述数据流拓扑信息包括根据所述地址相关信息相对应的一条或多条路径信息,从而根据所述一条或多条路径信息,形成与所述数据集合相对应的全部路径信息,以拓扑图或拓扑列表等方式展现。在此,所述更新包括对所述数据流拓扑信息中的路径信息进行增加、删除或修改。
图5示出根据本发明的一个方面的一种用于确定程序文件所对应的数据流拓扑信息的样例程序示意图;在此,所述样例程序本身分支判断的复杂程度与数据流拓扑信息的建立或更新无关,所有分支皆可映射为简单的condition,语句映射为cmd;其中,else if会被计算到数据流拓扑信息中,而包括else在内的所有的无语义分支都不会计算到数据流拓扑信息中。
表1示出根据图5所示的样例程序示意图,所确定的数据流拓扑信息表。
表1.数据流拓扑信息示例
其中,所述路径1、路径2、路径3表示根据图5所示的所述样例程序的数据流拓扑信息,在此,利用表格形式展现所述数据流拓扑信息。该表格标识了所述样例程序中共包含3条路径,每条路径包括流经该样例程序的行号信息。
确定装置13根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。具体地,确定装置13根据所述更新装置12所确定的数据流拓扑信息,通过根据与所述数据流拓扑信息中的一条或多条路径信息相对应的输入数据和/或输出数据等,确定对应于所述程序文件的测试相关数据。其中,可根据系统预设或机器学习,或者根据用户的选择信息等方式,所获取的输入数据和/或输出数据的数量进行设置。其中,所述测试相关数据包括但不限于测试数据,如输入数据和/或输出数据等。
优选地,所述更新装置12还可以根据所述数据运行记录,更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应。具体地,所述更新装置12可以根据一定的更新触发条件,如所述数据集合的变化、定时触发的更新条件等,对所述数据集合在所述程序文件中的数据流拓扑信息进行更新;其中,所述更新包括以下至少任一项:
-新增所述数据流拓扑信息中的路径信息;
-删除所述数据流拓扑信息中的路径信息;
-将所述数据流拓扑信息中的路径信息进行重新映射。
在此,所述更新数据流拓扑信息的方式与图1中所述更新装置12的更新方式相同或相似,此处不再赘述,并以引用的形式包含于此。
图6和图7示出根据本发明的一个方面的一种用于确定程序文件所对应的数据流拓扑信息的更新示意图;其中,在所述图6中,继图5所示,该样例程序的第8行的代码被更新为2行代码,则在与所述样例程序相对应的数据流拓扑信息中,将更新的2行代码映射至源样例程序的第8行(如图7所示),从而所有包含第8行的路径皆被破坏,在本例中,即路径2被破坏;从而对所述路径2进行更新,完成对所述数据流拓扑信息的更新过程。
优选地,所述确定装置13还可以对于所述数据流拓扑信息中更新的路径信息,从所述数据集合中选取对应的测试相关数据,以供测试所述程序文件中与所述更新的路径信息相对应的程序路径。具体地,当所述更新装置12对所述数据流拓扑信息进行更新时,所述确定装置13还可以对所述数据流拓扑信息中更新的信息,从所述数据集合中选取对应的测试相关数据,如对所更新的程序路径,通过选取与所述程序路径不同的其他程序路径所对应的测试相关数据,对所述更新后的程序路径进行测试,从而验证所述更新后的程序路径的可用性;或者从所述数据集合中选取与所述更新的路径信息相对应的测试相关数据或选取与所述程序路径不同的其他程序路径所对应的测试相关数据,以作为后续该程序路径的测试所采用的测试相关数据。
图2示出根据本发明一个优选实施例的一种用于确定程序文件所对应的测试数据的测试设备示意图;其中,所述测试设备包括获取装置11’、更新装置12’、确定装置13’、权重确定装置14’。具体地,获取装置11’获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;权重确定装置14’基于预定的权重确定条件,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;更新装置12’根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息以及与所述路径信息相对应的路径权重信息,所述程序路径与所述地址相关信息相对应;确定装置13’根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。其中,所述获取装置11’、确定装置13’分别与图1所示对应装置相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地,或者按照设定的或实时调整的工作模式要求,进行数据运行记录的获取、路径权重信息的确定、数据流拓扑信息的建立或更新、测试相关数据的确定等,直至测试设备停止获取待处理的数据集合在程序文件中的一条或多条数据运行记录。
权重确定装置14’基于预定的权重确定条件,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;所述更新装置12’还可以根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息以及与所述路径信息相对应的路径权重信息,所述程序路径与所述地址相关信息相对应。具体地,权重确定装置14’基于预定的权重确定条件,通过与所述更新装置12’中所获取的数据流拓扑信息进行交互,例如通过对所述数据流拓扑信息进行统计或处理等,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;所述更新装置12’还可以对所述数据运行记录进行建立或更新,则所述数据流拓扑信息中包含与所述路径信息相对应的路径权重信息。其中,所述预定的权重确定条件包括以下至少任一项:
-根据所述路径信息在所述程序路径中的位置信息,例如,所述路径信息中的节点位置,或所述路径信息在树型结构中的位置等;
-根据所述路径信息所对应的频次信息,例如,所述路径信息出现的次数等。
在此,所述位置信息或频次信息可通过直接与第三方进行交互获取,或根据所述更新装置12’中的数据流拓扑信息进行统计处理后获取。在此,本领域技术人员应能理解,所述更新装置12’可以先根据数据流拓扑信息确定所述路径信息在所述程序路径中的位置信息或频次信息,再由所述权重确定装置14’根据所述位置信息或频次信息确定所述路径权重信息,随后由所述更新装置12’迭代进行所述数据流拓扑信息的处理,以获得具有路径权重信息的数据流拓扑信息。在此,所述建立或更新数据流拓扑信息的方式与图1中所述更新装置12的建立或更新方式相同或相似,此处不再赘述,并以引用的形式包含于此。
优选地,所述更新装置12’还可以根据所述数据运行记录,确定一条或多条与所述程序文件中程序路径相对应的路径信息,其中,所述程序路径与所述地址相关信息相对应;根据所述路径信息,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含与所述路径信息相对应的频次信息。具体地,所述更新装置12’可根据所述数据运行记录,确定一条或多条与所述程序文件中程序路径相对应的路径信息,并根据所述路径信息中的如重复路径信息等,确定所述路径信息相对应的频次信息,并对所述数据流拓扑信息进行建立或更新。
优选地,所述确定装置13’还可以根据所述数据流拓扑信息,结合与所述路径信息相对应的路径权重信息,确定与所述程序路径信息相对应的测试相关数据。具体地,所述确定装置13’还可以结合所述路径权重信息,确定与所述程序路径信息相对应的测试相关数据,如当所述程序路径信息所对应的频次信息较大时,则选择多组与所述程序路径信息相对应的输入和/或输出数据做为测试相关数据;如所述程序路径信息所对应的位置信息较为靠前,如处于树型结构中的特定节点位置时,则选择与所述节点位置相对应的输入和/或输出数据做为测试相关数据。
图3示出根据本发明另一个方面的一种用于确定程序文件所对应的测试数据的方法流程图。具体地,在步骤s 1中,测试设备获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;在步骤s2中,测试设备根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;在步骤s3中,测试设备根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。
上述各步骤之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各步骤分别实时地,或者按照设定的或实时调整的工作模式要求,进行数据运行记录的获取、数据流拓扑信息的建立或更新、测试相关数据的确定等,直至测试设备停止获取待处理的数据集合在程序文件中的一条或多条数据运行记录。
其中,在步骤s1中,测试设备获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息。具体地,在步骤s 1中,测试设备通过基于各种通信协议(Communications Protocol),与其他能够提供所述数据运行记录的设备,如数据运行记录数据库进行交互,获取待处理的数据集合在程序文件中的一条或多条数据运行记录;或者利用能够提供所述数据运行记录的脚本,如shell、awk等脚本,对所述待处理的数据集合进行跟踪,获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述跟踪并获取的方式例如通过记录所述数据集合中的每一条数据单元所经过的程序行号,将所述程序行号作为地址相关信息,或者将当前数据单元的程序行号在数据集合中的程序行号的偏移量作为地址相关信息。其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息,在此,所述地址相关信息包括但不限于与所述数据集合中的数据单元相对应的实际地址相关信息,如程序的行号等;或是与所述数据集合中的数据单元相对应的映射后的地址相关信息,如与指定的原点相对应的偏移量等。在此,“通信协议”包括计算机通信的传送协议,如TCP/IP、UDP、FTP、ICMP、NetBEUI等,或者存在于计算机中的其他形式通信,例如面向对象编程里面对象之间的通信或操作系统内不同程序或计算机不同模块之间的消息传送协议。
在步骤s2中,测试设备根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应。具体地,在步骤s2中,测试设备根据步骤s1中所获取的数据运行记录,对所述数据集合在所述程序文件中的数据流拓扑信息进行建立或更新;若当前已存在数据流拓扑信息,则根据在步骤s1中所获取的数据运行记录,对所述数据流拓扑信息进行更新,若当前不存在数据流拓扑信息,则根据在步骤s1中所获取的数据运行记录,对所述数据流拓扑信息进行建立;其中,所述数据流拓扑信息包括根据所述地址相关信息相对应的一条或多条路径信息,从而根据所述一条或多条路径信息,形成与所述数据集合相对应的全部路径信息,以拓扑图或拓扑列表等方式展现。在此,所述更新包括对所述数据流拓扑信息中的路径信息进行增加、删除或修改。
图5示出根据本发明的一个方面的一种用于确定程序文件所对应的数据流拓扑信息的样例程序示意图;在此,所述样例程序本身分支判断的复杂程度与数据流拓扑信息的建立或更新无关,所有分支皆可映射为简单的condition,语句映射为cmd;其中,else if会被计算到数据流拓扑信息中,而包括else在内的所有的无语义分支都不会计算到数据流拓扑信息中。
表1示出根据图5所示的样例程序示意图,所确定的数据流拓扑信息表。
表1.数据流拓扑信息示例
其中,所述路径1、路径2、路径3表示根据图5所示的所述样例程序的数据流拓扑信息,在此,利用表格形式展现所述数据流拓扑信息。该表格标识了所述样例程序中共包含3条路径,每条路径包括流经该样例程序的行号信息。
在步骤s3中,测试设备根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。具体地,在步骤s3中,测试设备根据在步骤s2中所确定的数据流拓扑信息,通过根据与所述数据流拓扑信息中的一条或多条路径信息相对应的输入数据和/或输出数据等,确定对应于所述程序文件的测试相关数据。其中,可根据系统预设或机器学习,或者根据用户的选择信息等方式,所获取的输入数据和/或输出数据的数量进行设置。其中,所述测试相关数据包括但不限于测试数据,如输入数据和/或输出数据等。
优选地,在步骤s2中,测试设备还可以根据所述数据运行记录,更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应。具体地,在步骤s2中,测试设备可以根据一定的更新触发条件,如所述数据集合的变化、定时触发的更新条件等,对所述数据集合在所述程序文件中的数据流拓扑信息进行更新;其中,所述更新包括以下至少任一项:
-新增所述数据流拓扑信息中的路径信息;
-删除所述数据流拓扑信息中的路径信息;
-将所述数据流拓扑信息中的路径信息进行重新映射。
在此,所述更新数据流拓扑信息的方式与图3中所述步骤s2的更新方式相同或相似,此处不再赘述,并以引用的形式包含于此。
图6和图7示出根据本发明的一个方面的一种用于确定程序文件所对应的数据流拓扑信息的更新示意图;其中,在所述图6中,继图5所示,该样例程序的第8行的代码被更新为2行代码,则在与所述样例程序相对应的数据流拓扑信息中,将更新的2行代码映射至源样例程序的第8行(如图7所示),从而所有包含第8行的路径皆被破坏,在本例中,即路径2被破坏;从而对所述路径2进行更新,完成对所述数据流拓扑信息的更新过程。
优选地,在步骤s3中,测试设备还可以对于所述数据流拓扑信息中更新的路径信息,从所述数据集合中选取对应的测试相关数据,以供测试所述程序文件中与所述更新的路径信息相对应的程序路径。具体地,当在步骤s2中,测试设备对所述数据流拓扑信息进行更新时,在步骤s3中,测试设备还可以对所述数据流拓扑信息中更新的信息,从所述数据集合中选取对应的测试相关数据,如对所更新的程序路径,通过选取与所述程序路径不同的其他程序路径所对应的测试相关数据,对所述更新后的程序路径进行测试,从而验证所述更新后的程序路径的可用性;或者从所述数据集合中选取与所述更新的路径信息相对应的测试相关数据或选取与所述程序路径不同的其他程序路径所对应的测试相关数据,以作为后续该程序路径的测试所采用的测试相关数据。
图4示出根据本发明一个优选实施例的一种用于确定程序文件所对应的测试数据的方法流程图。具体地,在步骤s1’中,测试设备获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;在步骤s4’中,测试设备基于预定的权重确定条件,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;在步骤s2’中,测试设备根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息以及与所述路径信息相对应的路径权重信息,所述程序路径与所述地址相关信息相对应;在步骤s3’中,测试设备根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。其中,所述步骤s1’、步骤s3’分别与图3所示对应步骤相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
上述各步骤之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各步骤分别实时地,或者按照设定的或实时调整的工作模式要求,进行数据运行记录的获取、路径权重信息的确定、数据流拓扑信息的建立或更新、测试相关数据的确定等,直至测试设备停止获取待处理的数据集合在程序文件中的一条或多条数据运行记录。
在步骤s4’中,测试设备基于预定的权重确定条件,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;在步骤s2’中,测试设备还可以根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息以及与所述路径信息相对应的路径权重信息,所述程序路径与所述地址相关信息相对应。具体地,在步骤s4’中,测试设备基于预定的权重确定条件,通过与所述步骤s2’中所获取的数据流拓扑信息进行交互,例如通过对所述数据流拓扑信息进行统计或处理等,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;在步骤s2’中,测试设备还可以对所述数据运行记录进行建立或更新,则所述数据流拓扑信息中包含与所述路径信息相对应的路径权重信息。其中,所述预定的权重确定条件包括以下至少任一项:
-根据所述路径信息在所述程序路径中的位置信息,例如,所述路径信息中的节点位置,或所述路径信息在树型结构中的位置等;
-根据所述路径信息所对应的频次信息,例如,所述路径信息出现的次数等。
在此,所述位置信息或频次信息可通过直接与第三方进行交互获取,或根据在步骤s2’中的数据流拓扑信息进行统计处理后获取。在此,本领域技术人员应能理解,在步骤s2’中,测试设备可以根据数据流拓扑信息确定所述路径信息在所述程序路径中的位置信息或频次信息,再根据所述步骤s4’中根据所述位置信息或频次信息确定路径权重信息,随后由所述步骤s2’迭代进行所述数据流拓扑信息的处理,以获得具有路径权重信息的数据流拓扑信息。在此,所述建立或更新数据流拓扑信息的方式与图3中所述步骤s2的建立或更新方式相同或相似,此处不再赘述,并以引用的形式包含于此。
优选地,步骤s2’中,测试设备还可以根据所述数据运行记录,确定一条或多条与所述程序文件中程序路径相对应的路径信息,其中,所述程序路径与所述地址相关信息相对应;根据所述路径信息,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含与所述路径信息相对应的频次信息。具体地,步骤s2’中,测试设备可根据所述数据运行记录,确定一条或多条与所述程序文件中程序路径相对应的路径信息,并根据所述路径信息中的如重复路径信息等,确定所述路径信息相对应的频次信息,并对所述数据流拓扑信息进行建立或更新。
优选地,步骤s3’中,测试设备还可以根据所述数据流拓扑信息,结合与所述路径信息相对应的路径权重信息,确定与所述程序路径信息相对应的测试相关数据。具体地,步骤s3’中,测试设备还可以结合所述路径权重信息,确定与所述程序路径信息相对应的测试相关数据,如当所述程序路径信息所对应的频次信息较大时,则选择多组与所述程序路径信息相对应的输入和/或输出数据做为测试相关数据;如所述程序路径信息所对应的位置信息较为靠前,如处于树型结构中的特定节点位置时,则选择与所述节点位置相对应的输入和/或输出数据做为测试相关数据。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (12)

1.一种用于确定程序文件所对应的测试数据的方法,其中,该方法包括以下步骤:
a获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;
b根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;
c根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。
2.根据权利要求1所述的方法,其中,所述步骤b包括:
-根据所述数据运行记录,更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;
其中,所述更新包括以下至少任一项:
-新增所述数据流拓扑信息中的路径信息;
-删除所述数据流拓扑信息中的路径信息;
-将所述数据流拓扑信息中的路径信息进行重新映射。
3.根据权利要求1或2所述的方法,其中,所述步骤c包括:
-对于所述数据流拓扑信息中更新的路径信息,从所述数据集合中选取对应的测试相关数据,以供测试所述程序文件中与所述更新的路径信息相对应的程序路径。
4.根据权利要求1所述的方法,其中,该方法还包括:
-基于预定的权重确定条件,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;
其中,所述步骤b包括:
-根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息以及与所述路径信息相对应的路径权重信息,所述程序路径与所述地址相关信息相对应;
其中,所述预定的权重确定条件包括以下至少任一项:
-根据所述路径信息在所述程序路径中的位置信息;
-根据所述路径信息所对应的频次信息。
5.根据权利要求4所述的方法,其中,所述步骤b包括:
-根据所述数据运行记录,确定一条或多条与所述程序文件中程序路径相对应的路径信息,其中,所述程序路径与所述地址相关信息相对应;
-根据所述路径信息,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含与所述路径信息相对应的频次信息。
6.根据权利要求4或5所述的方法,其中,所述步骤c包括:
-根据所述数据流拓扑信息,结合与所述路径信息相对应的路径权重信息,确定与所述程序路径信息相对应的测试相关数据。
7.一种用于确定程序文件所对应的测试数据的测试设备,其中,该设备包括:
获取装置,用于获取待处理的数据集合在程序文件中的一条或多条数据运行记录,其中,所述数据运行记录包括所述数据集合中对应数据单元的地址相关信息;
更新装置,用于根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;
确定装置,用于根据所述数据流拓扑信息,确定对应于所述程序文件的测试相关数据。
8.根据权利要求7所述的测试设备,其中,所述更新装置用于:
-根据所述数据运行记录,更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息,所述程序路径与所述地址相关信息相对应;
其中,所述更新包括以下至少任一项:
-新增所述数据流拓扑信息中的路径信息;
-删除所述数据流拓扑信息中的路径信息;
-将所述数据流拓扑信息中的路径信息进行重新映射。
9.根据权利要求7或8所述的测试设备,其中,所述确定装置用于:
-对于所述数据流拓扑信息中更新的路径信息,从所述数据集合中选取对应的测试相关数据,以供测试所述程序文件中与所述更新的路径信息相对应的程序路径。
10.根据权利要求7所述的测试设备,其中,该设备还包括:
权重确定装置,用于基于预定的权重确定条件,确定与所述数据流拓扑信息中一条或多条与所述程序文件中程序路径相对应的路径信息相对应的路径权重信息;
其中,所述更新装置用于:
-根据所述数据运行记录,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含一条或多条与所述程序文件中程序路径相对应的路径信息以及与所述路径信息相对应的路径权重信息,所述程序路径与所述地址相关信息相对应;
其中,所述预定的权重确定条件包括以下至少任一项:
-根据所述路径信息在所述程序路径中的位置信息;
-根据所述路径信息所对应的频次信息。
11.根据权利要求10所述的测试设备,其中,所述更新装置用于:
-根据所述数据运行记录,确定一条或多条与所述程序文件中程序路径相对应的路径信息,其中,所述程序路径与所述地址相关信息相对应;
-根据所述路径信息,建立或更新所述数据集合在所述程序文件中的数据流拓扑信息,其中,所述数据流拓扑信息包含与所述路径信息相对应的频次信息。
12.根据权利要求10或11所述的测试设备,其中,所述确定装置用于:
-根据所述数据流拓扑信息,结合与所述路径信息相对应的路径权重信息,确定与所述程序路径信息相对应的测试相关数据。
CN201210560717.2A 2012-12-20 2012-12-20 一种用于确定程序文件所对应的测试数据的方法与设备 Active CN103885874B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210560717.2A CN103885874B (zh) 2012-12-20 2012-12-20 一种用于确定程序文件所对应的测试数据的方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210560717.2A CN103885874B (zh) 2012-12-20 2012-12-20 一种用于确定程序文件所对应的测试数据的方法与设备

Publications (2)

Publication Number Publication Date
CN103885874A CN103885874A (zh) 2014-06-25
CN103885874B true CN103885874B (zh) 2018-03-23

Family

ID=50954782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210560717.2A Active CN103885874B (zh) 2012-12-20 2012-12-20 一种用于确定程序文件所对应的测试数据的方法与设备

Country Status (1)

Country Link
CN (1) CN103885874B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294131A (zh) * 2016-07-26 2017-01-04 南京航空航天大学 一种蕴含相关性特征面向系统测试用的仿真流式大数据生成方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1402133A (zh) * 2002-09-13 2003-03-12 中国人民解放军国防科学技术大学 一种面向路径的测试数据自动生成方法
CN101216803A (zh) * 2008-01-09 2008-07-09 四川大学 基于基路径的测试程序控制流路径集生成方法
CN101714119A (zh) * 2009-12-09 2010-05-26 北京邮电大学 基于二进制程序的测试数据生成器和方法
CN102141958A (zh) * 2011-03-09 2011-08-03 中国矿业大学 面向缺陷的路径覆盖测试数据进化生成方法
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1402133A (zh) * 2002-09-13 2003-03-12 中国人民解放军国防科学技术大学 一种面向路径的测试数据自动生成方法
CN101216803A (zh) * 2008-01-09 2008-07-09 四川大学 基于基路径的测试程序控制流路径集生成方法
CN101714119A (zh) * 2009-12-09 2010-05-26 北京邮电大学 基于二进制程序的测试数据生成器和方法
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成系统
CN102141958A (zh) * 2011-03-09 2011-08-03 中国矿业大学 面向缺陷的路径覆盖测试数据进化生成方法

Also Published As

Publication number Publication date
CN103885874A (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
US10410128B2 (en) Method, device, and server for friend recommendation
Oliveira et al. Evaluation of two methods for identifying trip purpose in GPS-based household travel surveys
CN109155136A (zh) 从视频自动检测和渲染精彩场面的计算机化系统和方法
CN107102941A (zh) 一种测试用例的生成方法及装置
CN104462056B (zh) 用于呈现基于知识的信息的方法和信息操纵系统
CN110111110A (zh) 基于知识图谱检测欺诈的方法和装置、存储介质
CN107770783B (zh) 一种基站扩容改造方案设计方法及相关设备
CN102800065A (zh) 基于二维码识别跟踪的增强现实设备及方法
CN106355506A (zh) 一种在线社会网络中影响力最大化初始节点选取方法
CN106662986A (zh) 优化的浏览器渲染过程
CN105721629A (zh) 用户标识匹配方法和装置
CN107003834B (zh) 行人检测设备和方法
CN106484766A (zh) 基于人工智能的搜索方法和装置
CN110100415A (zh) 用于将网络流量准备好进行快速分析的系统
CN103399900B (zh) 基于位置服务的图片推荐方法
CN112035549A (zh) 数据挖掘方法、装置、计算机设备及存储介质
CN109189214A (zh) 基于移动设备的增强现实交互系统、设备和方法
Wu et al. Obfuscator synthesis for privacy and utility
US11610039B2 (en) Creating and/or enhancing hardware obscurity via randomization points
CN108305181A (zh) 社交影响力确定、信息投放方法及装置、设备及存储介质
CN105574091B (zh) 信息推送方法及装置
CN107357810A (zh) 一种用于输出专题落地页的方法及系统
CN107426610A (zh) 视频信息同步方法及装置
CN103885874B (zh) 一种用于确定程序文件所对应的测试数据的方法与设备
CN110096609A (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