CN104915293B - 基于仿射运算的软件测试方法及系统 - Google Patents

基于仿射运算的软件测试方法及系统 Download PDF

Info

Publication number
CN104915293B
CN104915293B CN201510325619.4A CN201510325619A CN104915293B CN 104915293 B CN104915293 B CN 104915293B CN 201510325619 A CN201510325619 A CN 201510325619A CN 104915293 B CN104915293 B CN 104915293B
Authority
CN
China
Prior art keywords
variable
span
tested program
paths
node
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
CN201510325619.4A
Other languages
English (en)
Other versions
CN104915293A (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 University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201510325619.4A priority Critical patent/CN104915293B/zh
Publication of CN104915293A publication Critical patent/CN104915293A/zh
Application granted granted Critical
Publication of CN104915293B publication Critical patent/CN104915293B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种基于仿射运算的软件测试方法及系统,该方法包括:确定被测程序的抽象语法树;遍历分析抽象语法树,获取对应的符号表和控制流图;根据符号表确定被测程序的输入变量和全局变量,并分别赋予输入变量和全局变量初始取值范围,输入变量和全局变量的取值范围以数值的区间形式表示;将输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;根据控制流图确定路径集合,并对路径集合中的每条路径进行逐节点的变量仿射形式运算,输出每条路径对应的变量以及变量取值范围;在每条路径对应的变量的取值范围中取值,生成测试用例,并根据测试用例对被测程序进行测试。提高了变量取值范围和软件测试结果的精确性。

Description

基于仿射运算的软件测试方法及系统
技术领域
本发明涉及软件测试领域,尤其涉及一种基于仿射运算的软件测试方法及系统。
背景技术
区间运算作为一种有效的程序变量取值范围的分析方法,已经被广泛的应用到面向路径的程序结构化测试中,如测试程序中的路径可达性判断、程序取值范围分析等。
在面向路径的程序结构化测试中,自动测试用例的生成是程序结构化测试的基础。现有技术中,自动测试用例的生成方法主要为:通过对被测程序进行分析获取程序的输入变量,全局变量以及路径集合,并为程序的输入变量和全局变量赋予初始取值范围,根据程序的输入变量和全局变量的初始取值范围对路径集合中的每一条路径进行区间运算,最终输出每条路径对应的输出变量的取值范围,并根据输出变量的取值范围,形成自动测试用例。在此过程中,每条路径输出变量的取值范围的大小,将直接影响测试的精度与效率。
但是,由于在区间运算中变量之间的取值是相互独立的,因此,变量的取值过于保守,经区间运算后得到的变量取值区间比实际范围大得多,这个问题在一个接一个的区间运算的长计算链中尤其突出,而这样的长计算链情况,在实际计算中是经常出现的。因此,通过现有的面向路径的程序结构化测试方法得到的测试结果精度不高。
发明内容
本发明提供一种基于仿射运算的软件测试方法及系统,用以解决现有测试方法中,由于区间运算导致的变量取值范围和测试结果精确性较低的问题。
本发明提供的软件测试方法,包括:
确定被测程序的抽象语法树;
遍历分析所述抽象语法树,获取对应的符号表和控制流图;
根据所述符号表确定所述被测程序的输入变量和全局变量,并分别赋予所述输入变量和全局变量初始取值范围,其中,所述输入变量和全局变量的取值范围以数值的区间形式表示;
将所述输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;
根据所述控制流图确定路径集合,并对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,其中,所述路径集合中包含所述被测程序的所有待覆盖元素,所述待覆盖元素包括所述被测程序中的变量以及变量间的运算关系;
在所述每条路径对应的变量的取值范围中取值,生成测试用例,并根据所述测试用例对所述被测程序进行测试。
本发明提供的基于仿射运算的软件测试系统,包括:
第一确定模块,用于确定被测程序的抽象语法树;
分析模块,用于遍历分析所述抽象语法树,获取对应的符号表和控制流图;
第二确定模块,用于根据所述符号表确定所述被测程序的输入变量和全局变量;
赋值模块,用于为所述输入变量和全局变量赋予初始取值范围,其中,所述输入变量和全局变量的取值范围以数值的区间形式表示;
转换模块,用于将所述输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;
第三确定模块,用于根据所述控制流图确定路径集合;
运算模块,用于对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,其中,所述路径集合中包含所述被测程序的所有待覆盖元素,所述待覆盖元素包括所述被测程序中的变量以及变量间的运算关系;
测试模块,用于在所述每条路径对应的变量的取值范围中取值,生成测试用例,并根据所述测试用例对所述被测程序进行测试。
本发明提供的基于仿射运算的软件测试方法及系统,通过将被测程序的输入变量和全局变量的初始取值范围的区间表示形式转换为仿射表示形式,并以输入变量和全局变量的仿射表示形式,对路径集合中的每条路径进行逐节点的变量仿射形式运算,获得了较为精确的变量取值范围,并且,根据以此获得的测试用例对被测程序进行测试,能够获得更为精确的测试结果。
附图说明
图1为本发明实施例一提供的基于仿射运算的软件测试方法的流程示意图;
图2为变量间的运算结果示意图;
图3为本发明图1中步骤105的具体实现流程图;
图4为本发明实施例二提供的基于仿射运算的软件测试系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面实施例所描述的技术方案,均是在面向路径的程序结构化测试背景下所进行阐述。
实施例一
图1为本发明实施例一提供的基于仿射运算的软件测试方法的流程示意图,如图1所示,本实施例提供的软件测试方法,包括:
步骤101、确定被测程序的抽象语法树;
具体的,抽象语法树是被测程序的一种树形的抽象表示,其包含了与被测程序相关的如行列号、标识符、函数调用等全部信息,是进行后续检测工作的前提条件。
抽象语法树可以通过先采用宏展开、条件编译预处理等方法对读入的被测程序进行预处理,再通过将被测程序中的字符序列转换为单词序列进行词法分析,最后,再将单词序列组合成各类语法短句进行语法分析来得到。
步骤102、遍历分析所述抽象语法树,获取对应的符号表和控制流图;
具体的,步骤102中获取符号表可以通过如下方式实现:
通过遍历分析所述抽象语法树,获取所述被测程序的标识符以及所述标识符对应的类型和作用域,形成所述符号表;
具体来说,在对软件进行测试时一般需要根据被测程序生成对应的测试用例,并且在被测程序所包含的各种变量中,只有输入变量和全局变量需要进行用例生成,其余变量如局部变量、常量是不需要进行用例生成的,而输入变量和全局变量是通过分析被测程序中所有标识符的类型、作用域等信息来确定的。因此,在此步骤中获得的包含被测程序中所有标识符的类型和作用域的符号表,为后续用例生成过程中输入变量和全局变量的确定提供了依据。
步骤102中获取控制流图可以通过如下方式实现:
通过遍历分析所述抽象语法树,获取包含所述被测程序的所有待覆盖元素的路径集合,形成所述控制流图。
具体来说,控制流图是一种被测程序控制结构的图形化表示,其可以看作是一组路径的集合,这些路径的起点和终点分别是控制流图的起点和终点。这些路径包含了被测程序的所有待覆盖元素,即被测程序的所有变量和变量间的运算关系。由于抽象语法树包含被测程序的全部信息,因此,通过遍历分析抽象语法树,即可获得包含被测程序所有待覆盖元素的路径集合的控制流图。
步骤103、根据所述符号表确定所述被测程序的输入变量和全局变量,并分别赋予所述输入变量和全局变量初始取值范围,其中,所述输入变量和全局变量的取值范围以数值的区间形式表示;
具体的,根据符号表中包含的标识符类型和作用域信息确定被测程序中哪些变量是输入变量,哪些变量是全局变量,并对输入变量和全局变量进行取值范围初始化,即为输入变量和全局变量分配初始的取值范围。
在这里需要说明的是:在此步骤中,分配给输入变量和全局变量的初始取值范围均以数值的区间表示形式进行表示,
举例来说,假如被测程序的输入变量为x,全局变量为y,其中,x的取值范围最小值为4,最大值为8,y的取值范围最小值为6,最大值9,则输入变量x、全局变量y的取值范围表示为x=[4,8],y=[6,9]。
步骤104、将所述输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;
在传统的面向路径的程序结构化测试中,输入变量和/或全局变量间的运算通常是以变量取值范围的区间表示形式进行运算的,然而区间运算的缺点在于,在变量间的区间运算中,各变量之间是相互独立的,即变量之间的取值毫无关系,这样就造成了区间运算后的输出结果范围较大,结果不够精确的问题。
而在仿射运算中,一个表达式中所包含的各变量之间的取值范围是存在相互制约的,即当表达式中的一个变量的取值范围确定后,表达式中的其它变量的取值范围即被限定在某一确定的范围内,而不能随意取值。因此,变量间的仿射运算相较于变量间的区间运算具有更高的精确度。
举例来说,图2为变量间的运算结果示意图,如图2所示,假设变量x的仿射表示形式为变量y的仿射表示形式为其中,εi为噪音符号εi=[-1,1],i为正整数,i=[1,4]。当εi的值为-1时,变量x、变量y取最小值,当εi的值为1时,变量x、变量y取最大值,即变量x的最小值为6,最大值为14,变量y的最小值为12,最大值为28,变量x的取值范围的区间表示形式为x=[6,14],变量y的取值范围的区间表示形式为y=[12,28],则经过变量间的仿射运算后变量x和y的取值范围如图2中阴影部分所示,而经过变量间的区间运算后变量x和y的取值范围如图2中矩形范围所示,由此可知,变量间的仿射运算相较于变量间的区间运算具有更高的精确度。
因此,在此步骤中,根据变量取值范围的区间表示形式与所述变量的仿射表示形式之间的转换关系将输入变量或全局变量取值范围的区间表示形式转换为输入变量或全局变量的仿射表示形式,以便能够通过变量间的仿射运算,获得更精确的输出变量的精确取值范围。
其中,将变量取值范围的区间表示形式转换为所述变量的仿射表示形式的方法如下:
若变量x取值范围的区间表示形式为x=[xmin,xmax],则所述变量x的仿射表示形式为x=(xmin+xmax)/2+(xmax-xmin)ε/2,其中,xmin为变量x的最小值,xmax为变量x的最大值,ε为噪音符号,ε的取值范围为[-1,1],当ε的取值为1时,变量x取最大值,当ε的取值为-1时,变量x取最小值。
步骤105、根据所述控制流图确定路径集合,并对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,其中,所述路径集合中包含所述被测程序的所有待覆盖元素,所述待覆盖元素包括所述被测程序中的变量以及变量间的运算关系;
具体的,如图3所示,步骤105具体包括以下子步骤:
步骤1050、根据控制流图确定包含被测程序所有待覆盖元素的路径集合;
步骤1051、获取当前路径中,当前节点所代表的被测程序语句中的表达式;
步骤1052、根据所述表达式中包含的变量的仿射表示形式以及仿射运算规则对所述表达式进行仿射运算;
步骤1053、确定所述当前节点是否为所属路径最后一个节点,若是则执行步骤1054,否则执行步骤1055;
步骤1054、输出所述表达式对应的输出变量以及所述输出变量的取值范围;
在此步骤中,所述输出所述表达式对应的输出变量的取值范围,可以为直接以输出变量取值范围的仿射表示形式进行输出,也可以先将输出变量取值范围的仿射表示形式转换为区间表示形式,再进行输出。
将输出变量取值范围的仿射表示形式转换为区间表示形式的方法如下所示:
若变量x的仿射表示形式为:其中,x0的中心值,系数xn为局部偏差,εi为噪音符号,εi=[-1,1],i为正整数,i=1,2,...n;则变量x取值范围的区间表示形式为:即当所有噪音符号取-1时,变量x取最小值,当所有噪音符号取1时,变量x取最大值。
步骤1055、将所述输出变量的仿射表示形式带入下一节点中的相关表达式进行运算,并返回步骤1053。
步骤106、在所述每条路径对应的变量的取值范围中取值,生成测试用例,并根据所述测试用例对所述被测程序进行测试。
本实施例提供的软件测试方法及系统,通过将被测程序的输入变量和全局变量的初始取值范围的区间表示形式转换为仿射表示形式,并以输入变量和全局变量的仿射表示形式,对路径集合中的每条路径进行逐节点的变量仿射形式运算,获得了较为精确的变量取值范围,并且,根据以此获得的测试用例对被测程序进行测试,能够获得更为精确的测试结果。
实施例二
图4为本发明实施例二提供的基于仿射运算的软件测试系统的结构示意图,如图4所示,本实施例提供的软件测试系统包括:
第一确定模块1,用于确定被测程序的抽象语法树;
分析模块2,用于遍历分析所述抽象语法树,获取对应的符号表和控制流图;
第二确定模块3,用于根据所述符号表确定所述被测程序的输入变量和全局变量;
赋值模块4,用于为所述输入变量和全局变量赋予初始取值范围,其中,所述输入变量和全局变量的取值范围以数值的区间形式表示;
转换模块5,用于将所述输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;
第三确定模块6,用于根据所述控制流图确定路径集合;
运算模块7,用于对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,其中,所述路径集合中包含所述被测程序的所有待覆盖元素,所述待覆盖元素包括所述被测程序中的变量以及变量间的运算关系;
测试模块8,用于在所述每条路径对应的变量的取值范围中取值,生成测试用例,并根据所述测试用例对所述被测程序进行测试。
其中,所述第一确定模块1,具体用于:
读入所述被测程序,并对所述被测程序进行静态分析产生与所述被测程序对应的抽象语法树,其中,所述静态分析包括预处理、词法分析、语法分析。
所述分析模块2,具体用于:
通过遍历分析所述抽象语法树,获取所述被测程序的标识符以及所述标识符对应的类型和作用域,形成所述符号表;
通过遍历分析所述抽象语法树,获取包含所述被测程序的所有待覆盖元素的路径集合,形成所述控制流图。
所述转换模块5将所述变量取值范围的区间表示形式转换为所述变量的仿射表示形式,具体为:
若变量x取值范围的区间表示形式为x=[xmin,xmax],则所述变量x的仿射表示形式为x=(xmin+xmax)/2+(xmax-xmin)ε/2,其中,xmin为变量x的最小值,xmax为变量x的最大值,ε为噪音符号,ε的取值范围为[-1,1],当ε的取值为1时,变量x取最大值,当ε的取值为-1时,变量x取最小值。
所述运算模块7,具体用于:
获取当前节点所代表的被测程序语句中的表达式;
根据所述表达式中包含的变量的仿射表示形式以及仿射运算规则对所述表达式进行仿射运算;
确定所述当前节点是否为所属路径最后一个节点;
若是,则输出所述表达式对应的输出变量以及所述输出变量的取值范围;
若不是,则将所述输出变量的仿射表示形式带入下一节点中的相关表达式进行运算。
本实施例提供的所述基于仿射运算的软件测试系统可以用于执行如图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种基于仿射运算的软件测试方法,其特征在于,包括:
确定被测程序的抽象语法树;
遍历分析所述抽象语法树,获取对应的符号表和控制流图;
根据所述符号表确定所述被测程序的输入变量和全局变量,并分别赋予所述输入变量和全局变量初始取值范围,其中,所述输入变量和全局变量的取值范围以数值的区间形式表示;
根据变量取值范围的区间表示形式与变量的仿射表示形式之间的转换关系,将所述输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式,其中,变量取值范围的区间表示形式与变量的仿射表示形式之间的转换关系为:
若变量x取值范围的区间表示形式为x=[xmin,xmax],则所述变量x的仿射表示形式为x=(xmin+xmax)/2+(xmax-xmin)ε/2,其中,xmin为变量x的最小值,xmax为变量x的最大值,ε为噪音符号,ε的取值范围为[-1,1],当ε的取值为1时,变量x取最大值,当ε的取值为-1时,变量x取最小值;根据所述控制流图确定路径集合,并对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,其中,所述路径集合中包含所述被测程序的所有待覆盖元素,所述待覆盖元素包括所述被测程序中的变量以及变量间的运算关系;
在所述每条路径对应的变量的取值范围中取值,生成测试用例,并根据所述测试用例对所述被测程序进行测试。
2.根据权利要求1所述的软件测试方法,其特征在于,所述确定被测程序的抽象语法树,包括:
读入所述被测程序,并对所述被测程序进行静态分析产生与所述被测程序对应的抽象语法树,其中,所述静态分析包括预处理、词法分析、语法分析。
3.根据权利要求1所述的软件测试方法,其特征在于,所述遍历分析所述抽象语法树,获取对应的符号表和控制流图,包括:
通过遍历分析所述抽象语法树,获取所述被测程序的标识符以及所述标识符对应的类型和作用域,形成所述符号表;
通过遍历分析所述抽象语法树,获取包含所述被测程序的所有待覆盖元素的路径集合,形成所述控制流图。
4.根据权利要求1所述的软件测试方法,其特征在于,所述对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,包括:
获取当前节点所代表的被测程序语句中的表达式;
根据所述表达式中包含的变量的仿射表示形式以及仿射运算规则对所述表达式进行仿射运算;
确定所述当前节点是否为所属路径最后一个节点;
若是,则输出所述表达式对应的输出变量以及所述输出变量的取值范围;
若不是,则将所述输出变量的仿射表示形式带入下一节点中的相关表达式进行运算。
5.一种基于仿射运算的软件测试系统,其特征在于,包括:
第一确定模块,用于确定被测程序的抽象语法树;
分析模块,用于遍历分析所述抽象语法树,获取对应的符号表和控制流图;
第二确定模块,用于根据所述符号表确定所述被测程序的输入变量和全局变量;
赋值模块,用于为所述输入变量和全局变量赋予初始取值范围,其中,所述输入变量和全局变量的取值范围以数值的区间形式表示;
转换模块,用于根据变量取值范围的区间表示形式与变量的仿射表示形式之间的转换关系,将所述输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式,其中,变量取值范围的区间表示形式与变量的仿射表示形式之间的转换关系为:
若变量x取值范围的区间表示形式为x=[xmin,xmax],则所述变量x的仿射表示形式为x=(xmin+xmax)/2+(xmax-xmin)ε/2,其中,xmin为变量x的最小值,xmax为变量x的最大值,ε为噪音符号,ε的取值范围为[-1,1],当ε的取值为1时,变量x取最大值,当ε的取值为-1时,变量x取最小值;
第三确定模块,用于根据所述控制流图确定路径集合;
运算模块,用于对所述路径集合中的每条路径进行逐节点的变量仿射形式运算,输出所述每条路径对应的变量以及变量的取值范围,其中,所述路径集合中包含所述被测程序的所有待覆盖元素,所述待覆盖元素包括所述被测程序中的变量以及变量间的运算关系;
测试模块,用于在所述每条路径对应的变量的取值范围中取值,生成测试用例,并根据所述测试用例对所述被测程序进行测试。
6.根据权利要求5所述的软件测试系统,其特征在于,所述第一确定模块,具体用于:
读入所述被测程序,并对所述被测程序进行静态分析产生与所述被测程序对应的抽象语法树,其中,所述静态分析包括预处理、词法分析、语法分析。
7.根据权利要求5所述的软件测试系统,其特征在于,所述分析模块,具体用于:
通过遍历分析所述抽象语法树,获取所述被测程序的标识符以及所述标识符对应的类型和作用域,形成所述符号表;
通过遍历分析所述抽象语法树,获取包含所述被测程序的所有待覆盖元素的路径集合,形成所述控制流图。
8.根据权利要求5所述的软件测试系统,其特征在于,所述运算模块,具体用于:
获取当前节点所代表的被测程序语句中的表达式;
根据所述表达式中包含的变量的仿射表示形式以及仿射运算规则对所述表达式进行仿射运算;
确定所述当前节点是否为所属路径最后一个节点;
若是,则输出所述表达式对应的输出变量以及所述输出变量的取值范围;
若不是,则将所述输出变量的仿射表示形式带入下一节点中的相关表达式进行运算。
CN201510325619.4A 2015-06-12 2015-06-12 基于仿射运算的软件测试方法及系统 Active CN104915293B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510325619.4A CN104915293B (zh) 2015-06-12 2015-06-12 基于仿射运算的软件测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510325619.4A CN104915293B (zh) 2015-06-12 2015-06-12 基于仿射运算的软件测试方法及系统

Publications (2)

Publication Number Publication Date
CN104915293A CN104915293A (zh) 2015-09-16
CN104915293B true CN104915293B (zh) 2017-10-20

Family

ID=54084371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510325619.4A Active CN104915293B (zh) 2015-06-12 2015-06-12 基于仿射运算的软件测试方法及系统

Country Status (1)

Country Link
CN (1) CN104915293B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224455B (zh) * 2015-09-28 2018-01-09 北京邮电大学 一种自动生成字符串类型测试用例的方法
CN106227668B (zh) * 2016-07-29 2017-11-17 腾讯科技(深圳)有限公司 数据处理方法和装置
CN108009082B (zh) * 2017-11-22 2021-05-25 中国航空工业集团公司西安飞机设计研究所 一种基于飞行管理的组合测试用例生成方法
CN109299003A (zh) * 2018-08-31 2019-02-01 苏州洞察云信息技术有限公司 一种面向复杂软件的全自动测试用例驱动生成系统
CN111611152B (zh) * 2019-02-25 2023-08-04 北京嘀嘀无限科技发展有限公司 测试用例生成方法、装置、电子设备及可读存储介质
CN110688313B (zh) * 2019-09-26 2022-11-18 天津津航计算技术研究所 一种VxWorks操作系统下软件测试的故障注入方法
CN111125714A (zh) * 2019-12-18 2020-05-08 支付宝(杭州)信息技术有限公司 一种安全检测方法、装置及电子设备
CN117008911A (zh) * 2022-04-28 2023-11-07 三六零数字安全科技集团有限公司 基于抽象语法树的代码检测方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
CN102591622A (zh) * 2011-12-20 2012-07-18 南京大学 基于相似变换模型的栅格数据坐标转换并行方法
CN104536883A (zh) * 2014-12-05 2015-04-22 北京邮电大学 一种静态缺陷检测方法及其系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60308505T2 (de) * 2002-05-11 2007-01-18 Accenture Global Services Gmbh Verfahren und system zur automatischen prüfung von software

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
CN102591622A (zh) * 2011-12-20 2012-07-18 南京大学 基于相似变换模型的栅格数据坐标转换并行方法
CN104536883A (zh) * 2014-12-05 2015-04-22 北京邮电大学 一种静态缺陷检测方法及其系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于区间必然集的测试用例生成方法;王雅文 等;《计算机辅助设计与图形学学报》;20130430;第25卷(第4期);第550-563页 *

Also Published As

Publication number Publication date
CN104915293A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
CN104915293B (zh) 基于仿射运算的软件测试方法及系统
US11036614B1 (en) Data control-oriented smart contract static analysis method and system
CN102073587B (zh) 一种程序中不可达路径的静态检测方法
CN101216803B (zh) 基于基路径的测试程序控制流路径集生成方法
CN110471666A (zh) 代码自动转换方法和装置、代码转换器及介质
CN102541521B (zh) 基于结构化查询语言的操作指令自动生成装置及方法
CN105335412A (zh) 用于数据转换、数据迁移的方法和装置
CN102073589A (zh) 一种基于代码静态分析的数据竞争检测方法及系统
CN102360336B (zh) 一种基于语法规则的自动化测试系统及方法
CN102567200A (zh) 基于函数调用图的并行化安全漏洞检测方法
CN102799529A (zh) 一种动态的二进制代码测试用例生成方法
CN103150200A (zh) 一种计算机语言转换系统及c语言到msvl语言的转换方法
CN103914379A (zh) 故障自动注入与故障检测的方法及其系统
CN103218299B (zh) 优化的蚁群算法测试用例自动生成方法和系统
CN101261602A (zh) 一种基于语法树的程序正确性验证方法
CN110147235A (zh) 一种源代码与二进制代码间的语义比对方法和装置
CN101710303B (zh) 基于流敏感上下文敏感指向图的内存泄漏检测方法
CN103793653B (zh) 一种基于树优化的程序依赖关系分析方法及系统
CN103646194B (zh) 一种基于形式化验证的同步数据流程序的可信排序方法
CN103235757B (zh) 基于自动化造数对输入域测试对象进行测试的装置和方法
CN102521126A (zh) 基于模块分解技术的软件缺陷检测系统的复杂性分析方法
CN102087629A (zh) 一种基于Agent嵌入式软件的不变量测试方法与工具
CN102023923B (zh) 一种基于别名分析技术的软件测试方法
CN104239055A (zh) 检测软件代码复杂度的方法
Yan et al. DFlow: a data flow analysis tool for C/C++

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