CN104142885B - 一种用于对被测程序进行异常测试的方法和装置 - Google Patents
一种用于对被测程序进行异常测试的方法和装置 Download PDFInfo
- Publication number
- CN104142885B CN104142885B CN201310169526.8A CN201310169526A CN104142885B CN 104142885 B CN104142885 B CN 104142885B CN 201310169526 A CN201310169526 A CN 201310169526A CN 104142885 B CN104142885 B CN 104142885B
- Authority
- CN
- China
- Prior art keywords
- function
- exception
- information
- current
- recalls
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明的目的在于提供一种用于对被测程序进行异常测试的方法和装置。根据本发明的方法包括:获取被待测程序中正在运行的当前函数的当前调用信息;判断所述当前调用信息是否满足异常触发条件;当所述当前函数的当前调用信息满足异常触发条件时,触发异常,以测试所述被测程序。本发明的优点在于,可基于预定的异常触发条件,人为地触发待测程序中的部分函数的异常,以测试待测程序对于该异常的反应,从而能够有效的控制异常的发生,并且,还可方便的重复触发该异常,以便于用户做进一步调试和检测。极大的提高了测试过程的效率,并节省了大量的人力物力。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于对被测程序进行异常测试的方法和装置。
背景技术
在现有的测试技术中,程序异常通常是偶发性的,无法对异常的发生进行控制,因此,人们需要花费大量的时间与精力去研究如何重现前一次的异常,以便于后续的程序调试;并且由于异常的偶发性,也导致有时候对于被测程序的测试过程并不完整很严谨,其可能还存在许多隐藏的问题没有被检测到。
发明内容
本发明的目的在于提供一种用于对被测程序进行异常测试的方法和装置。
根据本发明的一个方面,提供了一种用于对被测程序进行异常测试的方法,其中,所述方法包括以下步骤:
a获取被待测程序中正在运行的当前函数的当前调用信息;
b判断所述当前调用信息是否满足异常触发条件;
c当所述当前函数的当前调用信息满足异常触发条件时,触发异常,以测试所述被测程序。
根据本发明的一个方面,还提供了一种用于对被测程序进行异常测试的测试装置,其中,测试装置包括:
第一获取装置,用于获取被待测程序中正在运行的当前函数的当前调用信息;
判断装置,用于判断所述当前调用信息是否满足异常触发条件;
触发装置,用于当所述当前函数的当前调用信息满足异常触发条件时,触发异常,以测试所述被测程序。
根据本发明的方法,可基于预定的异常触发条件,人为地触发待测程序中的部分函数的异常,以测试待测程序对于该异常的反应,从而能够有效的控制异常的发生,并且,还可方便的重复触发该异常,以便于用户做进一步调试和检测。极大的提高了测试过程的效率,并节省了大量的人力物力。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为根据本发明的一个方面的用于对被测程序进行异常测试的方法流程图;
图2为根据本发明的一个方面的用于对被测程序进行异常测试的测试装置的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示意出了根据本发明的一个方面的用于对被测程序进行异常测试的方法流程图。根据本发明的方法包括步骤S1、步骤S2和步骤S3。
参照图1,在步骤S1中,计算机设备获取被测程序中正在运行的当前函数的当前调用信息。
其中,所述当前调用信息用于指示当前函数的被调用关系。优选地,所述当前调用信息基于被测程序执行时的栈序列所确定。
具体地,计算机设备在运行所述被测程序的当前函数时,获取与该被测函数对应的函数调用栈序列,以基于所获得的栈序列确定当前函数的当前调用信息。
接着,在步骤S2中,计算机设备判断所述当前调用信息是否满足异常触发条件。
其中,所述异常包括但不限于可导致与当前函数的正常运行结果不同的其他运行结果的可执行代码,优选地,所述异常包括函数或代码。所述异常触发条件用于判断是否触发与当前函数对应的异常。
其中,所述异常触发条件包括但不限于一项或多项调用关系。优选地,所述异常触发条件包括但不限于以下任一种:
1)包括与所述当前函数对应的一项或多项调用关系;
2)与所述被测程序对应的一项或多项调用关系。
更优选地,所述异常触发条件包括与各项调用关系分别对应的异常相关信息。所述异常相关信息包括但不限于以下至少任一项:
1)异常标识信息,例如,异常函数的函数名称,或者函数编号等。
2)异常对应的返回信息,例如,异常函数或代码执行后的输出信息等。
3)异常所对应的函数的调用信息。
具体地,计算机设备将所述当前调用信息与异常触发条件进行比对,以根据比对结果,判断所述当前调用信息是否满足该异常触发条件。
接着,在步骤S3中,当所述当前函数的当前调用信息满足异常触发条件时,计算机设备触发异常,以测试所述被测程序。
具体地,当所述当前函数的当前调用信息满足异常触发条件时,确定与所述当前调用信息相对应的异常并执行,以基于该异常所输出的异常输出信息来测试所述被测程序。
作为本发明的优选实施例之一,根据本实施例的方法,步骤S2进一步包括步骤S21(图未示),步骤S3进一步包括步骤S31(图未示)。
在步骤S21中,计算机设备判断所述异常触发条件中是否包含所述当前调用信息。
接着,在步骤S31中,计算机设备当所述异常触发条件中包含所述当前调用信息时,触发异常,以测试所述被测程序。
根据本发明的第一示例,计算机设备正在运行被测程序ProA中的函数funcM,并且,计算机设备在步骤S1中获得与当前函数funcM对应的栈序列包括funcA→funcB→funcM,并将该栈序列作为与当前函数funcM的当前调用信息,其中,与被测程序ProA对应的异常触发条件如下表1所示:
表1
则计算机设备在步骤S21中,基于当前函数funcM的当前调用信息funcA→funcB→funcM在异常触发条件中检索,并获得与该当前调用信息对应的调用关系项,则计算机设备判断该异常触发条件中包含了当前函数funcM的当前调用信息。接着,计算机设备在步骤S31中,触发与该当前调用信息funcA→funcB→funcM对应的异常函数faultM1,而不再执行当前函数funcM,并提示用户该异常函数的输出为-1。
优选地,当计算机设备在步骤S2中判断所述当前调用信息不满足异常触发条件时,正常执行该当前函数。
继续对前述第一示例进行说明,计算机设备运行被测程序ProA中的函数funcM,且此时在步骤S1中获得的与funcM对应的当前调用信息包括funcA→funcC→funcM,则计算机设备确定该当前调用信息未包含于如表1所示的异常触发条件中,则计算机设备正常执行该函数funcM。
其中,本领域技术人员应可根据实际情况和需求,采用预定的格式来记录函数的当前调用关系,以及所述异常触发条件。例如,采用%来作为调用关系的各个函数之间的间隔符的方式等。
作为本发明的又一优选实施例,所述异常触发条件包括与所述当前函数对应的一项或多项调用关系,其中,根据本发明的方法在步骤S2之前还包括步骤S4(图未示)。
在步骤S4中,计算机设备获取与所述当前函数对应的异常触发条件。
具体地,计算机设备根据当前函数的函数标识信息,以获取与该函数标识信息对应的异常触发条件。
根据本发明的又一优选实施例,根据本发明的方法还包括步骤S5(图未示)和步骤S6(图未示)。
在步骤S5中,计算机设备获取所述被测程序中包含的各个函数的一项或多项调用信息。
其中,所述计算机设备获取所述被测程序中包含的各个函数的一项或多项调用信息的方式包括但不限于以下任一种:
1)由预定存储设备中获取与被测程序中包含的各个函数的一项或多项调用信息。
例如,由预定的网络存储设备中,获取与被测程序对应的一项或多项调用信息。
2)计算机设备对所述被测程序进行反汇编,以得到所述被测程序基于汇编语言的中间文件;接着,计算机设备基于所述中间文件,来确定所述被测程序中包含的各个函数及其对应的一项或多项调用信息。
具体地,计算机设备根据对被测程序进行反汇编后获得的中间文件,并基于该中间文件,确定中间文件中各个函数被定义的代码位置以及该各个函数被调用的代码位置,以基于各个函数的被定义位置以及被调用位置来确定各个函数分别对应的一项或多项调用关系。
接着,在步骤S6中,计算机设备基于所述各个函数的一项或多项调用信息来确定异常触发条件。
其中,计算机设备基于所述各个函数的一项或多项调用信息来确定异常触发条件的方式包括以下任一项:
1)计算机设备直接基于所获得的各项调用信息来生成异常触发条件。
例如,计算机设备直接将所获得的所有调用关系作为异常触发条件,以在判断当前调用关系满足异常触发条件时,触发预设的与当前函数对应的异常,以测试整个被测程序。
又例如,计算机设备基于所获得的各项调用关系,并结合用户所设定的与各项调用关系对应的异常函数,生成相应的异常触发条件。
2)计算机设备由所述各个函数的一项或多项调用信息中,选择至少一项调用信息;接着,计算机设备基于所述至少一项调用信息来生成异常触发条件。
其中,计算机设备由所述各个函数的一项或多项调用信息中,选择至少一项调用信息的方式包括但不限于以下任一项:
i)计算机设备基于用户的选择操作来选择至少一项调用关系。
例如,计算机设备将被测程序的所有函数的调用关系展现给用户,并获取用户所选择的至少一项调用关系。
ii)计算机设备基于预定选择规则,由所述各个函数的一项或多项调用信息中选择至少一项调用信息。
例如,预定选择规则包括“所有调用write函数的调用关系”,则计算机设备基于该预定选择规则,由所有调用关系中选择调用函数write的至少一项调用关系;又例如,预定选择规则包括“包含函数FuncA的调用关系”,则计算机设备由所有调用关系中,选择其中包含了函数FuncA的至少一项调用关系等等。
优选地,计算机设备可根据用户所选择的预定选择规则来进行选择。
根据本发明的又一优选实施例,根据本发明的方法还包括步骤S7(图未示)。
在步骤S7中,计算机设备根据与所述被测程序对应的功能描述信息,确定该被测程序中的函数的各项调用信息所对应的功能信息。
其中,所述功能描述信息包括与所述被测程序对应的各项文字注释、操作手册等描述信息。所述功能信息用于指示各项调用信息所对应的功能。
优选地,计算机设备可根据各项调用信息的功能信息,来由被测程序的各个函数分别对应的一项或多项调用信息中,选择至少一项调用信息。
例如,计算机设备基于被测程序对应的注释信息,确定各个调用信息对应的功能信息,如各项调用信息分别对应于“信息提示功能”、“信息写入功能”、“界面调整功能”、“多媒体播放功能”等,则计算机设备根据用户所选择的“所有对应于信息提示功能的调用关系”这一选择规则,来选择一项或多项满足该选择规则的调用关系。
根据本发明的又一优选实施例,根据本发明的方法还包括步骤S8(图未示)。
在步骤S8中,计算机设备输出所触发的异常的异常相关信息。
优选地,计算机设备通过有名管道侦听被测程序的函数运行,并且,计算机设备所触发的异常通过有名管道输出相应的异常相关信息。
其中,所示异常相关信息参照前述步骤S2中所述,此处不再赘述。优选地,所述异常相关信息还包括其他相关信息,例如,该异常被触发的次数等信息。
根据本发明的方法,可基于用户的测试需求来触发函数在某一特定情形下的异常情形,以测试被测程序其他模块基于该异常情况下的处理反应,从而能够有效的控制异常的发生,并且,还可方便的重复触发该异常,以便于用户做进一步调试和检测。极大的提高了测试过程的效率,并节省了大量的人力物力。
其中,根据本发明的方法通过计算机设备中的测试装置实现。所述计算机设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC,Application Specific IntegratedCircuit)、可编程门阵列(FPGA,Field-Programmable Gate Array)、数字处理器(DSP,Digital Signal Processor)、嵌入式设备等。所述计算机设备包括网络设备与用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(PDA,PersonalDigital Assistant)、游戏机、或互联网电视(IPTV,Internet Protocol Television)等。其中,所述用户设备和/或网络设备可通过网络与其他设备相互连接,所述网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网(VPN,Virtual Private Network)等。
需要说明的是,所述用户设备、网络设备以及网络仅为举例,其他现有的或今后可能出现的用户设备、网络设备以及网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
图2示意出了根据本发明的一个方面的用于对被测程序进行异常测试的测试装置的结构示意图。根据本发明的测试装置包括第一获取装置1、判断装置2和触发装置3。
参照图2,第一获取装置1获取被测程序中正在运行的当前函数的当前调用信息。
其中,所述当前调用信息用于指示当前函数的被调用关系。优选地,所述当前调用信息基于被测程序执行时的栈序列所确定。
具体地,第一获取装置1在运行所述被测程序的当前函数时,获取与该被测函数对应的函数调用栈序列,以基于所获得的栈序列确定当前函数的当前调用信息。
接着,判断装置2判断所述当前调用信息是否满足异常触发条件。
其中,所述异常包括但不限于可导致与当前函数的正常运行结果不同的其他运行结果的可执行代码,优选地,所述异常包括函数或代码。所述异常触发条件用于判断是否触发与当前函数对应的异常。
其中,所述异常触发条件包括但不限于一项或多项调用关系。优选地,所述异常触发条件包括但不限于以下任一种:
1)包括与所述当前函数对应的一项或多项调用关系;
2)与所述被测程序对应的一项或多项调用关系。
更优选地,所述异常触发条件包括与各项调用关系分别对应的异常相关信息。所述异常相关信息包括但不限于以下至少任一项:
1)异常标识信息,例如,异常函数的函数名称,或者函数编号等。
2)异常对应的返回信息,例如,异常函数或代码执行后的输出信息等。
3)异常所对应的函数的调用信息。
具体地,判断装置2将所述当前调用信息与异常触发条件进行比对,以根据比对结果,判断所述当前调用信息是否满足该异常触发条件。
接着,当所述当前函数的当前调用信息满足异常触发条件时,触发装置3触发异常,以测试所述被测程序。
具体地,当所述当前函数的当前调用信息满足异常触发条件时,确定与所述当前调用信息相对应的异常并执行,以基于该异常所输出的异常输出信息来测试所述被测程序。
作为本发明的优选实施例之一,根据本实施例的方案,判断装置2用于判断所述异常触发条件中是否包含所述当前调用信息,并当所述异常触发条件中包含所述当前调用信息时,触发装置3触发异常,以测试所述被测程序。
根据本发明的第一示例,计算机设备正在运行被测程序ProA中的函数funcM,并且,第一获取装置1获得与当前函数funcM对应的栈序列包括funcA→funcB→funcM,并将该栈序列作为与当前函数funcM的当前调用信息,其中,与被测程序ProA对应的异常触发条件如下表2所示:
表2
则判断装置2基于当前函数funcM的当前调用信息funcA→funcB→funcM在异常触发条件中检索,并获得与该当前调用信息对应的调用关系项,则判断装置2判断该异常触发条件中包含了当前函数funcM的当前调用信息。接着,触发装置3触发与该当前调用信息funcA→funcB→funcM对应的异常函数faultM1,而不再执行当前函数funcM,并提示用户该异常函数的输出为-1。
优选地,当判断装置2判断所述当前调用信息不满足异常触发条件时,计算机设备正常执行该当前函数。
继续对前述第一示例进行说明,计算机设备运行被测程序ProA中的函数funcM,且此时第一获取装置1获得的与funcM对应的当前调用信息包括funcA→funcC→funcM,则判断装置2确定该当前调用信息未包含于如表2所示的异常触发条件中,则计算机设备正常执行该函数funcM。
其中,本领域技术人员应可根据实际情况和需求,采用预定的格式来记录函数的当前调用关系,以及所述异常触发条件。例如,采用%来作为调用关系的各个函数之间的间隔符的方式等。
作为本发明的又一优选实施例,所述异常触发条件包括与所述当前函数对应的一项或多项调用关系,其中,根据本发明的方案在判断装置2执行操作之前,还执行第二获取装置(图未示)。
第二获取装置获取与所述当前函数对应的异常触发条件。
具体地,第二获取装置根据当前函数的函数标识信息,以获取与该函数标识信息对应的异常触发条件。
根据本发明的又一优选实施例,根据本发明的方案还包括第三获取装置(图未示)和第一确定装置(图未示)。
第三获取装置获取所述被测程序中包含的各个函数的一项或多项调用信息。
其中,所述第三获取装置获取所述被测程序中包含的各个函数的一项或多项调用信息的方式包括但不限于以下任一种:
1)由预定存储设备中获取与被测程序中包含的各个函数的一项或多项调用信息。
例如,由预定的网络存储设备中,获取与被测程序对应的一项或多项调用信息。
2)包含于第三获取装置中的反汇编装置(图未示)对所述被测程序进行反汇编,以得到所述被测程序基于汇编语言的中间文件;接着,包含于第三获取装置中的生成装置(图未示)基于所述中间文件,来确定所述被测程序中包含的各个函数及其对应的一项或多项调用信息。
具体地,反汇编装置根据对被测程序进行反汇编后获得的中间文件,并且,生成装置基于该中间文件,确定中间文件中各个函数被定义的代码位置以及该各个函数被调用的代码位置,以基于各个函数的被定义位置以及被调用位置来确定各个函数分别对应的一项或多项调用关系。
接着,第一确定装置基于所述各个函数的一项或多项调用信息来确定异常触发条件。
其中,第一确定装置基于所述各个函数的一项或多项调用信息来确定异常触发条件的方式包括以下任一项:
1)第一确定装置直接基于所获得的各项调用信息来生成异常触发条件。
例如,第一确定装置直接将所获得的所有调用关系作为异常触发条件,以在判断当前调用关系满足异常触发条件时,触发预设的与当前函数对应的异常,以测试整个被测程序。
又例如,第一确定装置基于所获得的各项调用关系,并结合用户所设定的与各项调用关系对应的异常函数,生成相应的异常触发条件。
2)包含于第一确定装置中的选择装置(图未示)由所述各个函数的一项或多项调用信息中,选择至少一项调用信息;接着,计算机设备基于所述至少一项调用信息来生成异常触发条件。
其中,选择装置由所述各个函数的一项或多项调用信息中,选择至少一项调用信息的方式包括但不限于以下任一项:
i)选择装置基于用户的选择操作来选择至少一项调用关系。
例如,选择装置将被测程序的所有函数的调用关系展现给用户,并获取用户所选择的至少一项调用关系。
ii)选择装置基于预定选择规则,由所述各个函数的一项或多项调用信息中选择至少一项调用信息。
例如,预定选择规则包括“所有调用write函数的调用关系”,则选择装置基于该预定选择规则,由所有调用关系中选择调用函数write的至少一项调用关系;又例如,预定选择规则包括“包含函数FuncA的调用关系”,则选择装置由所有调用关系中,选择其中包含了函数FuncA的至少一项调用关系等等。
优选地,选择装置可根据用户所选择的预定选择规则来进行选择。
根据本发明的又一优选实施例,根据本发明的方案还包括功能确定装置(图未示)。
功能确定装置根据与所述被测程序对应的功能描述信息,确定该被测程序中的函数的各项调用信息所对应的功能信息。
其中,所述功能描述信息包括与所述被测程序对应的各项文字注释、操作手册等描述信息。所述功能信息用于指示各项调用信息所对应的功能。
优选地,功能确定装置可根据各项调用信息的功能信息,来由被测程序的各个函数分别对应的一项或多项调用信息中,选择至少一项调用信息。
例如,功能确定装置基于被测程序对应的注释信息,确定各个调用信息对应的功能信息,如各项调用信息分别对应于“信息提示功能”、“信息写入功能”、“界面调整功能”、“多媒体播放功能”等,则选择装置根据用户所选择的“所有对应于信息提示功能的调用关系”这一选择规则,来选择一项或多项满足该选择规则的调用关系。
根据本发明的又一优选实施例,根据本发明的方案还包括输出装置(图未示)。
输出装置输出所触发的异常的异常相关信息。
优选地,计算机设备通过有名管道侦听被测程序的函数运行,并且,异常触发后输出装置通过有名管道输出相应的异常相关信息。
其中,所示异常相关信息参照前述判断装置2中所述,此处不再赘述。优选地,所述异常相关信息还包括其他相关信息,例如,该异常被触发的次数等信息。
根据本发明的方案,可基于用户的测试需求来触发函数在某一特定情形下的异常情形,以测试被测程序其他模块基于该异常情况下的处理反应,从而能够有效的控制异常的发生,并且,还可方便的重复触发该异常,以便于用户做进一步调试和检测。极大的提高了测试过程的效率,并节省了大量的人力物力。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (18)
1.一种用于对被测程序进行异常测试的方法,其中,所述方法包括以下步骤:
a获取被测程序中正在运行的当前函数的当前调用信息;
b判断所述当前调用信息是否满足异常触发条件;所述步骤b进一步包括:
判断所述异常触发条件中是否包含所述当前调用信息;
c当所述当前函数的当前调用信息满足异常触发条件时,触发异常,以测试所述被测程序;所述步骤c进一步包括:
当所述异常触发条件中包含所述当前调用信息时,触发异常,以测试所述被测程序。
2.根据权利要求1所述的方法,其中,所述方法在步骤b之前还包括以下步骤:
-获取与所述当前函数对应的异常触发条件。
3.根据权利要求1所述的方法,其中,所述当前调用信息基于被测程序执行时的栈序列所确定。
4.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:
m获取所述被测程序中包含的各个函数的一项或多项调用信息;
n基于所述各个函数的一项或多项调用信息来确定异常触发条件。
5.根据权利要求4所述的方法,其中,所述步骤n包括以下步骤:
-由所述各个函数的一项或多项调用信息中,选择至少一项调用信息;
-基于所述至少一项调用信息来生成异常触发条件。
6.根据权利要求4所述的方法,其中,所述步骤m包括以下步骤:
-对所述被测程序进行反汇编,以得到所述被测程序基于汇编语言的中间文件;
-基于所述中间文件,来确定所述被测程序中包含的各个函数及其对应的一项或多项调用信息。
7.根据权利要求4所述的方法,其中,所述方法还包括以下步骤:
-根据与所述被测程序对应的功能描述信息,确定该被测程序中的函数的各项调用信息所对应的功能信息。
8.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:
-输出所触发的异常的异常相关信息。
9.根据权利要求8所述的方法,其中,所述异常相关信息包括以下信息:
-该异常所对应的函数的调用信息;
-该异常所对应的返回信息;
-该异常的标识信息。
10.一种用于对被测程序进行异常测试的测试装置,其中,测试装置包括:
第一获取装置,用于获取被待测程序中正在运行的当前函数的当前调用信息;
判断装置,用于判断所述当前调用信息是否满足异常触发条件;所述判断装置进一步用于:
判断所述异常触发条件中是否包含所述当前调用信息;
触发装置,用于当所述当前函数的当前调用信息满足异常触发条件时,触发异常,以测试所述被测程序;所述触发装置进一步用于:
当所述异常触发条件中包含所述当前调用信息时,触发异常,以测试所述被测程序。
11.根据权利要求10所述的测试装置,其中,所述测试装置还包括:
第二获取装置,用于获取与所述当前函数对应的异常触发条件。
12.根据权利要求10所述的测试装置,其中,所述当前调用信息基于被测程序执行时的栈序列所确定。
13.根据权利要求10所述的测试装置,其中,所述测试装置还包括:
第三获取装置,用于获取所述被测程序中包含的各个函数的一项或多项调用信息;
第一确定装置,用于基于所述各个函数的一项或多项调用信息来确定异常触发条件。
14.根据权利要求13所述的测试装置,其中,所述第一确定装置包括:
选择装置,用于由所述各个函数的一项或多项调用信息中,选择至少一项调用信息;
生成装置,用于基于所述至少一项调用信息来生成异常触发条件。
15.根据权利要求13所述的测试装置,其中,所述第三获取装置包括:
反汇编装置,用于对所述被测程序进行反汇编,以得到所述被测程序基于汇编语言的中间文件;
第二确定装置,用于基于所述中间文件,来确定所述被测程序中包含的各个函数及其对应的一项或多项调用信息。
16.根据权利要求13所述的测试装置,其中,所述测试装置还包括:
功能确定装置,用于根据与所述被测程序对应的功能描述信息,确定该被测程序中的函数的各项调用信息所对应的功能信息。
17.根据权利要求10所述的测试装置,其中,所述测试装置还包括:
输出装置,用于输出所触发异常的异常相关信息。
18.根据权利要求17所述的测试装置,其中,所述异常相关信息包括以下信息:
-该异常所对应的函数的调用信息;
-该异常所对应的返回信息;
-该异常的标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310169526.8A CN104142885B (zh) | 2013-05-09 | 2013-05-09 | 一种用于对被测程序进行异常测试的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310169526.8A CN104142885B (zh) | 2013-05-09 | 2013-05-09 | 一种用于对被测程序进行异常测试的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104142885A CN104142885A (zh) | 2014-11-12 |
CN104142885B true CN104142885B (zh) | 2019-01-11 |
Family
ID=51852065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310169526.8A Active CN104142885B (zh) | 2013-05-09 | 2013-05-09 | 一种用于对被测程序进行异常测试的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104142885B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677503B (zh) * | 2016-01-13 | 2018-10-26 | 北京光年无限科技有限公司 | 一种软件异常处理方法及针对软件的异常自保护系统 |
CN106354578A (zh) * | 2016-08-25 | 2017-01-25 | 深圳市金立通信设备有限公司 | 一种终端测试方法及终端 |
CN108628723B (zh) * | 2017-03-23 | 2022-03-11 | 瑞轩科技股份有限公司 | 信息处理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622051A (zh) * | 2003-11-24 | 2005-06-01 | 顺德市顺达电脑厂有限公司 | 电子装置中辅助侦错之方法 |
CN100375060C (zh) * | 2005-06-20 | 2008-03-12 | 中兴通讯股份有限公司 | 一种嵌入式系统及其实时内存监控处理方法 |
CN101452420A (zh) * | 2008-12-30 | 2009-06-10 | 中兴通讯股份有限公司 | 一种嵌入式软件异常监控和处理装置及其方法 |
CN101594627A (zh) * | 2008-05-26 | 2009-12-02 | 北京摩软科技有限公司 | 一种模拟移动终端故障的装置和方法 |
CN101719090A (zh) * | 2009-12-25 | 2010-06-02 | 珠海市君天电子科技有限公司 | 对计算机软件系统崩溃原因进行自动分析的方法 |
CN102096635A (zh) * | 2011-02-24 | 2011-06-15 | 北京播思软件技术有限公司 | 一种软件缺陷的准确定位方法 |
CN102141947A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI228650B (en) * | 2003-06-17 | 2005-03-01 | Acer Inc | Application program management system and method thereof |
-
2013
- 2013-05-09 CN CN201310169526.8A patent/CN104142885B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622051A (zh) * | 2003-11-24 | 2005-06-01 | 顺德市顺达电脑厂有限公司 | 电子装置中辅助侦错之方法 |
CN100375060C (zh) * | 2005-06-20 | 2008-03-12 | 中兴通讯股份有限公司 | 一种嵌入式系统及其实时内存监控处理方法 |
CN101594627A (zh) * | 2008-05-26 | 2009-12-02 | 北京摩软科技有限公司 | 一种模拟移动终端故障的装置和方法 |
CN101452420A (zh) * | 2008-12-30 | 2009-06-10 | 中兴通讯股份有限公司 | 一种嵌入式软件异常监控和处理装置及其方法 |
CN101719090A (zh) * | 2009-12-25 | 2010-06-02 | 珠海市君天电子科技有限公司 | 对计算机软件系统崩溃原因进行自动分析的方法 |
CN102096635A (zh) * | 2011-02-24 | 2011-06-15 | 北京播思软件技术有限公司 | 一种软件缺陷的准确定位方法 |
CN102141947A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统 |
Non-Patent Citations (3)
Title |
---|
C++程序中异常处理的分析与测试技术研究;毛澄映等;《小型微型计算机系统》;20060331;第27卷(第3期);第481-485页 |
测试Java异常处理机制的方法;姜元鹏等;《计算机工程与设计》;20071031;第28卷(第20期);第5069-5071、5075页 |
面向对象程序的异常分析与测试方法述评;毛澄映等;《计算机应用研究》;20070831;第24卷(第8期);第25-29、37页 |
Also Published As
Publication number | Publication date |
---|---|
CN104142885A (zh) | 2014-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021089739A (ja) | 質問応答処理、言語モデルの訓練方法、装置、機器および記憶媒体 | |
CN104424094B (zh) | 一种异常信息获取方法、装置及智能终端设备 | |
CN104794050B (zh) | 应用程序的测试方法、装置及系统 | |
CN105955881B (zh) | 一种自动化测试步骤录制及回放方法和装置 | |
US9159068B2 (en) | Service management using user experience metrics | |
CN104346267B (zh) | 生成程序缺陷定位信息的方法及装置 | |
CN106293914B (zh) | 一种任务调度的方法及终端 | |
CN109634819B (zh) | 告警根因定位方法和装置、电子设备 | |
CN108810637A (zh) | 视频播放方法、装置及终端设备 | |
CN109376267A (zh) | 用于生成模型的方法和装置 | |
CN104317392B (zh) | 一种信息控制方法及电子设备 | |
CN104142885B (zh) | 一种用于对被测程序进行异常测试的方法和装置 | |
CN110502591A (zh) | 一种数据提取方法、装置及设备 | |
CN104580109A (zh) | 生成点选验证码的方法及装置 | |
CN110286776A (zh) | 字符组合信息的输入方法、装置、电子设备和存储介质 | |
CN105653441B (zh) | 一种ui遍历测试方法与系统 | |
CN108763050A (zh) | 一种应用内存泄露的检测方法和装置 | |
CN110955548B (zh) | 数据处理方法及装置 | |
CN106776277A (zh) | 一种跨进程测试的方法、装置及电子设备 | |
CN109815118A (zh) | 数据库管理方法及装置、电子设备和计算机可读存储介质 | |
CN110209572A (zh) | 用户界面测试方法、用户界面测试系统及终端 | |
CN105095093A (zh) | 一种智能终端性能测试方法及系统 | |
CN109242403A (zh) | 一种需求管理方法及计算机设备 | |
CN107885649A (zh) | Ios应用程序的性能测试方法和装置 | |
CN106970869A (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 |