CN105117341B - 一种基于动态符号执行的分布式自动测试案例生成方法 - Google Patents
一种基于动态符号执行的分布式自动测试案例生成方法 Download PDFInfo
- Publication number
- CN105117341B CN105117341B CN201510559331.3A CN201510559331A CN105117341B CN 105117341 B CN105117341 B CN 105117341B CN 201510559331 A CN201510559331 A CN 201510559331A CN 105117341 B CN105117341 B CN 105117341B
- Authority
- CN
- China
- Prior art keywords
- test
- tested program
- test cases
- tested
- program
- 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.)
- Expired - Fee Related
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000000605 extraction Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 description 4
- 238000007493 shaping process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000020509 sex determination Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
该发明属于软件测试案例自动生成技术领域中的一种基于动态符号执行的分布式自动测试案例生成方法。包括:测试设备配置,被测程序的预处理,路径约束条件的提取,测试案例的自动生成。该发明由于将被测程序与测试案例自动生成工具分离。该发明由于使被测程序在测试中可在真实平台上运行,因此所收集到的路径约束条件是遵循程序本身的语义且准确,也有助于对复杂数据结构进行分析处理,进而提高测试的可靠性和有效性,并可同时为多个被测程序进行测试及提供多种并行的多种路径选择方法;因而,本发明具有让被测程序真实平台上运行、其可行性高,可同时进行多个测试,且有效提高了测试的可靠性、准确性和测试效率,测试工具的利用率高等特点。
Description
技术领域
本发明属于软件测试案例自动生成技术领域,该方法以路径覆盖为目标生成测试案例集,每一个测试案例触发的被测程序执行路径都是不同的,进而实现在有限的时间内能够生成具有高路径覆盖度的测试案例集。
背景技术
程序的一次执行过程对应着程序的一条执行路径,程序的输入参数决定程序执行的路径,一组输入参数值称为一个测试案例。测试案例生成是软件测试过程中的重要环节,测试案例自动生成可有效地减轻测试人员的劳动强度,降低软件开发成本,同时提高测试效率。符号执行是一种典型的测试案例自动生成技术,主要用于测试中在给定的时间内尽可能充分地执行程序所有可能的路径,使用满足性判定和定理证明约束求解器(以下简称SMT(Satisfiability Modulo Theories)求解器,如YICES、STP、Z3、CVC等)自动生成对应于这些路径的输入参数的值。传统符号执行也叫静态符号执行,是一种有效的基于程序执行路径的静态程序分析技术。传统符号执行不真实执行程序,它使用符号变量代替程序变量的输入值,然后基于符号变量模拟程序执行即符号执行,在执行过程中收集程序执行路径中各个分支(if(条件表达式)then语句1else语句2)处包含符号输入的条件表达式称为符号约束条件,程序执行结束时,符号执行就可以获得对应于每个分支点的符号约束条件,所有约束条件的集合称为该次执行过程的路径约束条件,然后使用SMT求解器为每条执行路径所对应的约束条件集计算满足解,生成该程序路径的一个测试案例。传统符号执行存在很多不足:一是由于使用符号值代替真实值执行程序,当遇到二进制代码或者没有源代码的库函数时,无法得到精确的约束条件,这样就会造成所求结果不准确,进而导致误报现象;二是在处理大规模的或者较为复杂的程序时,由于计算复杂度过高导致无法生成具有较高路径覆盖度的测试案例集。
动态符号执行则解决了传统方法的不足,其基本思想是使用测试案例输入参数的真实值和符号值让程序同时进行真实执行和符号执行,真实执行反应程序的实际执行过程,符号执行收集关于符号变量的符号约束条件,程序执行结束时,得到本次执行路径的路径约束条件。由于被测程序真实地执行了,所以收集到的路径约束条件能够真实反映程序本身的语义,因而在动态符号执行中不会出现如静态符号执行的误报,并且也有助于对复杂数据结构进行分析处理。另外,由于程序的真实执行状态被记录,一旦遇到SMT求解器不可判定的路径约束条件时便可使用程序变量的实际值替代符号值,使后续的路径搜索过程可以继续进行,因此相比传统符号执行,动态符号执行可达到更高的覆盖率,所以被广泛的应用于程序测试与验证中。动态符号执行使用插桩的方式来实现约束条件的提取,即在被测程序中插入一些程序片段(函数),这些函数可以在程序执行时提取路径约束条件并记录程序状态。目前动态符号执行的实现方式是测试案例自动生成工具与被测程序运行在同一机器中,要求两者使用同样的操作系统运行平台,当被测程序和工具的平台不一致时,就需要对被测程序的平台进行仿真。目前大多只支持X86平台,然而被测程序的平台多种多样,例如仅硬件关联度较高的嵌入式平台就有很多种,进行仿真的工作量很大,不易实现,适用性有限。同时,它使用串行的方式,即被测程序运行一次,将收集到的路径约束条件信息传给动态符号执行工具,工具为其生成测试案例再调用被测程序执行,如此反复,直到达到终止条件。这样,测试案例自动生成工具中的SMT求解器进行可满足解计算时被测程序要等待SMT求解器计算结果,程序运行时SMT求解器也要等待被测程序的执行结果,二者不可同时进行。另外,目前各工具支持的SMT求解器很有限,且SMT求解器与测试案例自动生成工具需紧耦合,不同的SMT求解器擅长的约束条件求解类型不同,不同类型的约束条件的最优求解器也不同,紧耦合的方式不利于进行SMT求解器扩展。
发明内容
本发明的目的是针对背景技术存在的缺陷,研究开发一种基于动态符号执行的分布式自动测试案例生成方法,该方法将被测程序和测试案例自动生成工具进行平台分离,使被测程序在真实环境中执行,支持平台多样的程序测试,同时提供不同的测试覆盖标准,以提高测试效率及满足不同的测试需求。从而达到可同时进行多个测试,并有效提高测试的可靠性和有效性、测试工具的利用率及测试效率等目的。
本发明的解决方案是:首先将被测程序进行插桩并交叉编译为被测程序对应平台的可执行程序,在被测程序运行的过程中通过网络标准化接口将路径约束条件传输到测试案例自动生成工具,测试案例自动生成工具基于路径约束条件生成对应路径的测试案例,再通过网络标准化接口将测试案例传递给被测程序继续执行,将被测程序与测试案例自动生成工具分离,使被测程序在测试中可在真实平台上运行,从而克服了被测程序和测试案例自动生成工具的运行平台必须一致的弊病;另外,本发明中测试案例自动生成工具采用服务器集群或云服务平台,采用并行处技术确定多条路径约束条件的满足解,以提高测试案例自动生成的效率;同时,提供多种遍历方法以满足不同的测试需求,除了常用的随机遍历、深度优先搜索遍历外,还提供多种高效遍历策略,主要包括:1.并行深度优先搜索遍历,将路径决定参数的所有取值可能分为多个范围,这些范围完全并行进行深度优先搜索遍历,既保证了执行程序的所有路径,又可以在有限的时间内较快地获得高分支覆盖并缩短测试时间;2.基于程序CFG(Control flow graph,控制流图)的并行遍历,并行地以最快的方式覆盖控制流图中的每个分支,实现程序的分支全覆盖;3.并行的随机搜索与深度优先搜索相结合的遍历,以综合两者的优点(即随机测试的分散性和深度优先搜索的彻底性);4.根据CFG将其中相似度较高的路径丢弃的深度优先遍历,用以在测试大规模程序无法实现完全路径覆盖时,根据CFG丢弃一些相似度较高的路径,在保证分支全覆盖的前提下进行非完全路径覆盖。因此,本发明方法包括:
步骤1.测试设备配置:采用带操作系统的微机(个人电脑)、小型机作为预处理机,带有CPU、内存和数据通信接口及操作系统的嵌入式设备作为被测程序运行装置,采用带操作系统的服务器作为测试案例自动生成装置;预处理机与被测程序运行装置及服务器之间、被测程序运行装置与服务器之间均分别通过通信接口连接,待用;
步骤2.被测程序的预处理:当预处理机收到被测程序后,首先采用动态符号执行技术对被测程序中确定路径的参数变量进行符号化标识,再对源码或格式化的中间代码进行插桩处理并在程序的每个语句前插入符号执行函数的同时提取程序的分支信息、控制流图信息,然后将插桩处理后的被测程序交叉编译成(被测程序运行装置)嵌入式操作系统的可执行文件,最后将可执行文件发送给被测程序运行装置、将程序的分支信息和控制流图信息发送给测试案例自动生成装置(服务器);
步骤3.路径约束条件的提取:被测程序运行装置在收到步骤2发送来的可执行文件后,执行可执行文件并提取路径约束条件;
3-1.首先提取被测程序运行设备的操作系统平台基本数据类型的长度参数和包括本次测试的被测程序名、测试类型,最大运行次数、路径选择方法在内的测试参数,发送给测试案例生成装置(服务器)以执行步骤4、并转步骤3-2;
3-2.运行从步骤2所得可执行文件,首次运行的测试案例由步骤2插入到可执行文件中的符号执行函数的处理符号输入语句函数(HandleSymbolic)自动随机生成,然后转3-3;
3-3.在可执行文件运行过程中利用步骤2插入到程序中的符号执行函数收集执行路径的路径约束条件,并将所得路径约束条件发送给测试案例生成装置(服务器)以执行步骤4、并转步骤3-4;
3-4.接收步骤4测试案例自动生成装置(服务器)发来的新的测试案例,然后转3-3重新运行可执行文件,直至收到步骤4发出的终止信号、退出程序运行;
步骤4.测试案例的自动生成:测试案例自动生成装置(服务器)首先对由步骤2预处理机发来的程序分支信息和控制流图进行缓存,再对被测程序运行装置中步骤3-1发送来的被测程序运行装置的操作系统平台基本数据类型的长度参数和包括本次测试的测试参数进行测试案例自动生成参数的配置,然后对被测程序运行装置中步骤3-3发送来的路径约束条件进行缓存,再对路径约束条件进行格式化处理成SMT标准格式,然后并行调用SMT求解器以生成测试案例并发送给被测程序运行装置执行步骤3-4,再接收步骤3-3发送来的新的路径约束条件,如此循环、直到达到给定的最大运行次数且约束条件格式化处理及并行处理状态为结束时,则发送终止信号给步骤3-4以退出程序运行。
在步骤1中所述带操作系统的预处理机,其操作系统包括Windows或Linux、MacOS;所述被测程序运行装置,其操作系统包括Linux或uClinux、WinCE嵌入式操作系统;而所述测试案例自动生成装置,其操作系统包括Windows、Linux。在步骤2中所述插入符号执行函数,插入的符号执行函数为处理符号输入语句的函数(HandleSymbolic),处理赋值语句函数(Assignment),处理条件语句函数(CellectConstraint)和含调用函数(Call)、返回函数(Return)、处理返回值函数(HandleReturn)在内的处理函数调用语句函数。在步骤3-1中所述最大运行次数由按要求设定的分支覆盖度确定。
本发明由于将被测程序与测试案例自动生成工具分离,实现了被测程序运行平台与测试运行平台的无关性,使被测程序在测试中可在真实平台上运行,同时由于真实运行,所以收集到的路径约束条件是遵循程序本身的语义且准确,因而在本发明方法中不会出现如静态方法的误报,并且也有助于对复杂数据结构(如数组、指针等)进行分析处理,进而提高测试的可靠性和有效性。本发明可以同时并行为多个被测程序进行测试,同时提供多种并行的多种路径选择方法,提高测试工具的利用率。因而,本发明具有让被测程序真实平台上运行、其可行性高,可同时进行多个测试,而且有效提高了测试的可靠性、准确性和测试效率,测试工具的利用率高等特点。
具体实施方式
本实施方式以如下被测程序test.c为例:
test.c代码包括两个变量a和b,且它们都是影响程序执行过程的变量即都是确定路径的参数,程序中有两个分支处if(a>1)和if(a+2*b==4),有3条程序执行路径,对应的路径约束条件及测试案例如表1所示:
表1:
步骤1为测试设备配置:预处理机采用个人电脑,操作系统为ubuntu-12.04-desktop-amd64;被测程序运行装置使用带有网络通信接口的pandaboard开发板,操作系统为ubuntu-12.04-preinstalled-destop-arnhf+omap4;测试案例自动生成装置采用DellInc.PowerEdge T620服务器,操作系统为ubuntu-12.04.5-alternate-amd64。预处理机通过网络向被测程序运行装置传输可执行文件,预处理机通过网络向测试案例自动生成装置传输程序的分支信息和控制流图信息,被测程序运行装置和测试案例自动生成装置之间通过网络交互数据。
步骤2为对被测程序的预处理流程,具体描述如下:
步骤2-1:根据动态符号执行技术对待测源程序进行符号标识,即:
转步骤2-2;
步骤2-2:使用代码格式工具CIL(Common Intermediate Language)对符号化标识后的被测程序进行格式化,将其转换为格式规范的中间程序,即:
转步骤2-3;
步骤2-3:对格式化的中间程序进行插桩,即在程序的每个语句前插入相应的符号执行函数,同时提取程序的分支信息、控制流图信息,即:
分支信息为:
1 2
2 6
4 5
控制流图信息为:
1 2 6
2 3 printf
3 4 5
4 7 printf
5 7 printf
6 7 printf
7 8
8
转步骤2-4;
步骤2-4:使用交叉编译工具arm-linux-gnueabihf-gcc将插桩后的程序交叉编译为被测程序运行装置所运行操作系统平台的可执行文件test,然后将可执行文件test通过网络传输至被测程序运行装置中的步骤3-1,将程序的分支信息、控制流图信息通过网络传输至测试案例自动生成装置中的步骤4-1,转至步骤3;
步骤3为提取路径约束条件的流程,具体描述如下:
步骤3-1:获取测试参数,本例中测试参数的值为:被测程序名为test,测试类型为常规测试,最大运行次数为5、路径选择方法为深度优先搜索,获取被测程序运行装置的操作系统中各基本数据类型的长度,本次例中各基本数据类型的长度为:字符型char为1字节,短整型short为2字节,整形int为4字节,长整形long为8字节,长长整形long longint为8字节,将各基本数据类型的长度参数和本次测试的测试参数通过网络发送给测试案例自动生成装置,转至步骤3-2;
步骤3-2:运行可执行文件,被测程序的预处理流程插入到程序中的输入处理函数HandleSymbolic()为进行符号化标识的变量a和b生成随机输入(本次实施案例生成为:a=2,b=1),使用此输入作为测试案例转至步骤3-3;
步骤3-3:根据测试案例执行test可执行文件(如首次执行的测试案例为:a=2,b=1),执行结束时,会生成本次执行的路径约束条件描述信息(a>1∧a+2*b==4),将执行路径的路径约束条件通过网络发送给测试案例自动生成装置,并转至步骤3-4;
步骤3-4:等待测试案例自动生成装置返回的信息(信息为新的测试案例或终止信号),判断收到的信息是否是终止信号,如果是,则终止程序,否则,则收到的是新的测试案例(a=2,b=2),转至步骤3-3.1;
步骤3-3.1:根据步骤3-4中收到的测试案例,本次实施案例中输入为a=2,b=2,调用可执行文件test执行,执行结束时,会生成本次执行的路径约束条件描述信息(a>1∧a+2*b!=4),将路径约束条件通过网络发送给测试案例自动生成装置,转至步骤3-4.1;
步骤3-4.1:等待测试案例自动生成装置返回的信息(信息为新的测试案例或终止信号),判断收到的信息是否是终止信号,本例中收到的是新的测试案例(a=2,b=1),转至步骤3-3.2;
步骤3-3.2:根据步骤3-4.1中收到的测试案例,本次实施案例中输入为a=1,b=1,调用可执行文件test执行,执行结束时,会生成本次执行的路径约束条件描述信息(a≤1),将路径约束条件通过网络发送给测试案例自动生成装置,转至步骤3-4.2。
步骤3-4.2:等待测试案例自动生成装置返回的信息,本例中收到的是终止信号,则终止程序。
步骤4为测试案例的自动生成流程,具体描述如下:
步骤4-1:接收预处理机中步骤2-4传来的分支信息、控制流图信息,接收被测程序运行装置中步骤3-1传来的参数,包括被测程序运行装置的操作系统中各基本数据类型的长度和本次测试的测试参数,包括本次被测程序名为test,测试类型为常规测试,最大运行次数为5、路径选择方法为深度优先搜索,根据测试参数,设置本次测试的被测程序名为test,测试类型为常规测试,最大运行次数为5、路径选择方法为深度优先搜索,然后转步骤4-2;
步骤4-2:接收被测程序运行装置发来的路径约束条件组信息,判断路径约束条件是否存在,如果存在则丢弃,否则保存路径约束条件的内容和各路径约束条件的关系,根据路径选择方法选择出可以进行并行求解的新路径,本例中获得路径1的路径约束条件后可以生成路径2和3的路径约束条件,2和3对应的路径约束条件分别为(a>1∧a+2*b≠4)和(a≤1),将每组路径约束条件转化为SMT标准格式,根据当前SMT求解集群中的负载状态,选择负载最小的求解服务器对通用格式的约束条件组求解以生成测试案例,本例中求解的路径2和3对应的测试案例分别为(a=2,b=2)和(a=1,b=1),存储测试案例到测试案例缓存;同时监听约束条件格式化处理及并行处理状态,当无待处理路径约束条件组时返回处理结束信号并将约束条件格式化处理及并行处理状态设置为结束,转步骤4-3;
步骤4-3:判断测试案例缓存是否为空,若不为空,则从测试案例缓存中取出一个生成的新测试案例通过网络发送给被测程序运行装置中的步骤3-4,本例中包括传给3-3.1和3-3.2的两个测试案例,若为空则转步骤4-4;
步骤4-4:判定生成的测试案例数量是否达到最大运行次数,如果未达到最大次数且约束条件格式化处理及并行处理状态为真则转步骤4-2;如果达到最大运行次数则设置终止信号为真,并向被测程序运行装置中的步骤3-4.2发送、以结束本次测试。
Claims (4)
1.一种基于动态符号执行的分布式自动测试案例生成方法,包括:
步骤1.测试设备配置:采用带操作系统的微机、小型机作为预处理机,带有CPU、内存和数据通信接口及操作系统的嵌入式设备作为被测程序运行装置,采用带操作系统的服务器作为测试案例自动生成装置;预处理机与被测程序运行装置及服务器之间、被测程序运行装置与服务器之间均分别通过通信接口连接,待用;
步骤2.被测程序的预处理:当预处理机收到被测程序后,首先采用动态符号执行技术对被测程序中确定路径的参数变量进行符号化标识,再对格式化的中间代码进行插桩处理并在程序的每个语句前插入符号执行函数的同时提取程序的分支信息、控制流图信息,然后将插桩处理后的被测程序交叉编译成被测程序运行装置所运行操作系统平台的可执行文件,最后将可执行文件发送给被测程序运行装置、将程序的分支信息和控制流图信息发送给测试案例自动生成装置;
步骤3.路径约束条件的提取:被测程序运行装置在收到步骤2发送来的可执行文件后,执行可执行文件并提取路径约束条件;
3-1.首先提取被测程序运行设备的操作系统平台基本数据类型的长度参数和包括本次测试的被测程序名、测试类型,最大运行次数、路径选择方法在内的测试参数,发送给测试案例生成装置以执行步骤4、并转步骤3-2;
3-2.运行从步骤2所得可执行文件,首次运行的测试案例由步骤2插入到可执行文件中的符号执行函数的处理符号输入语句函数自动随机生成,然后转3-3;
3-3.在可执行文件运行过程中利用步骤2插入到程序中的符号执行函数收集执行路径的路径约束条件,并将所得路径约束条件发送给测试案例生成装置以执行步骤4、并转步骤3-4;
3-4.接收步骤4测试案例自动生成装置发来的新的测试案例,然后转3-3重新运行可执行文件,直至收到步骤4发出的终止信号、退出程序运行;
步骤4.测试案例的自动生成:
4-1.测试案例自动生成装置首先对由步骤2预处理机发来的程序分支信息和控制流图进行缓存,再对被测程序运行装置中步骤3-1发送来的被测程序运行装置的操作系统平台基本数据类型的长度参数和包括本次测试的测试参数进行测试案例自动生成参数的配置,然后转4-2;
4-2.对被测程序运行装置中步骤3-3发送来的路径约束条件进行缓存,再对路径约束条件进行格式化处理成SMT标准格式,然后并行调用SMT求解器以生成测试案例;
4-3.将步骤4-2所生成测试案例发送给被测程序运行装置执行步骤3-4,并转4-4;
4-4.判定测试案例数量如果未达到最大次数且约束条件格式化处理及并行处理状态为真则转步骤4-2;如果达到最大运行次数则设置终止信号为真,并向被测程序运行装置中的步骤3-4发送、以结束本次测试。
2.按权利要求1所述基于动态符号执行的分布式自动测试案例生成方法,其特征在于在步骤1中所述带操作系统的预处理机,其操作系统包括Windows或Linux、Mac OS;所述被测程序运行装置,其操作系统包括Linux或uClinux、WinCE的嵌入式操作系统;而所述测试案例自动生成装置,其操作系统包括Windows、Linux。
3.按权利要求1所述基于动态符号执行的分布式自动测试案例生成方法,其特征在于步骤2中所述插入符号执行函数,插入的符号执行函数为处理符号输入语句的函数,处理赋值语句函数,处理条件语句函数和含调用函数、返回函数、处理返回值函数在内的处理函数调用语句函数。
4.按权利要求1所述基于动态符号执行的分布式自动测试案例生成方法,其特征在于在步骤3-1中所述最大运行次数由按要求设定的分支覆盖度确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510559331.3A CN105117341B (zh) | 2015-09-06 | 2015-09-06 | 一种基于动态符号执行的分布式自动测试案例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510559331.3A CN105117341B (zh) | 2015-09-06 | 2015-09-06 | 一种基于动态符号执行的分布式自动测试案例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117341A CN105117341A (zh) | 2015-12-02 |
CN105117341B true CN105117341B (zh) | 2017-11-17 |
Family
ID=54665339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510559331.3A Expired - Fee Related CN105117341B (zh) | 2015-09-06 | 2015-09-06 | 一种基于动态符号执行的分布式自动测试案例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117341B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354630B (zh) * | 2016-08-23 | 2018-11-13 | 电子科技大学 | 一种基于动态符号执行的软件缺陷检测方法 |
CN106959683B (zh) * | 2017-03-27 | 2019-08-30 | 苏州黑云信息科技有限公司 | 分布式机器人系统的灰盒自主测试方法及系统 |
CN108664384B (zh) * | 2017-03-29 | 2021-05-07 | 富士通株式会社 | 数据处理装置和数据处理方法 |
EP3462319A1 (en) * | 2017-09-29 | 2019-04-03 | Siemens Aktiengesellschaft | Method, device and test program for recognizing a weak point in an original program |
CN108563561B (zh) * | 2018-03-15 | 2020-06-23 | 北京邮电大学 | 一种程序隐性约束提取方法及系统 |
CN109740222B (zh) * | 2018-12-25 | 2023-06-20 | 国汽(北京)智能网联汽车研究院有限公司 | 一种针对汽车网联化场景的测试装置和系统 |
CN113222307A (zh) * | 2020-01-21 | 2021-08-06 | 厦门邑通软件科技有限公司 | 一种生成操作行为记录集的仿真方法、系统和设备 |
CN112564997A (zh) * | 2020-10-27 | 2021-03-26 | 图灵人工智能研究院(南京)有限公司 | 网络功能的验证方法、开发系统、计算机设备及存储介质 |
CN113778882B (zh) * | 2021-09-13 | 2024-07-09 | 中国农业银行股份有限公司 | 测试案例的生成方法、装置、电子设备及计算机存储介质 |
CN114780958B (zh) * | 2022-04-14 | 2023-03-24 | 深圳开源互联网安全技术有限公司 | 一种埋点自动插桩方法、装置及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508780A (zh) * | 2011-11-21 | 2012-06-20 | 电子科技大学 | 一种用于软件测试的交叉式动态法和装置 |
CN103019862A (zh) * | 2012-12-13 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种符号执行方法、装置及系统 |
CN104063325A (zh) * | 2014-07-11 | 2014-09-24 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
US9038032B2 (en) * | 2012-05-25 | 2015-05-19 | Fujitsu Limited | Symbolic execution and automatic test case generation for JavaScript programs |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089759A1 (en) * | 2007-10-02 | 2009-04-02 | Fujitsu Limited | System and Method for Providing Symbolic Execution Engine for Validating Web Applications |
-
2015
- 2015-09-06 CN CN201510559331.3A patent/CN105117341B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508780A (zh) * | 2011-11-21 | 2012-06-20 | 电子科技大学 | 一种用于软件测试的交叉式动态法和装置 |
US9038032B2 (en) * | 2012-05-25 | 2015-05-19 | Fujitsu Limited | Symbolic execution and automatic test case generation for JavaScript programs |
CN103019862A (zh) * | 2012-12-13 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种符号执行方法、装置及系统 |
CN104063325A (zh) * | 2014-07-11 | 2014-09-24 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
Non-Patent Citations (2)
Title |
---|
一种自动机学习和符号化执行的软件自动测试方法;陈曙 等;《计算机科学》;20130831;第40卷(第8期);全文 * |
基于路径覆盖插桩的可执行代码测试工具实现;王轶 等;《计算机工程》;20120331;第38卷(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105117341A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117341B (zh) | 一种基于动态符号执行的分布式自动测试案例生成方法 | |
CN110287109B (zh) | 协议接口的测试方法、装置、计算机设备及其存储介质 | |
CN106874187B (zh) | 代码覆盖率收集方法和装置 | |
CN103294594B (zh) | 一种基于测试的静态分析误报消除方法 | |
CN105373478B (zh) | 自动化测试方法和系统 | |
CN105868050A (zh) | 基于json数据的验证方法及装置 | |
CN103180834B (zh) | 自动操作系统测试框架 | |
CN117009243A (zh) | 芯片性能自动化测试方法、装置、计算机设备及存储介质 | |
CN106776319A (zh) | 自动测试方法及装置 | |
CN110321285A (zh) | 测试用例处理方法及相关设备 | |
CN111400505A (zh) | 一种用电信息采集系统匹配故障消缺方案的方法及系统 | |
CN111966587A (zh) | 数据采集方法、装置和设备 | |
CN107153610A (zh) | 一种程序语句错误检测方法和装置 | |
CN103885341B (zh) | 基于汽车性能模拟器的性能分析系统和方法 | |
CN107066302A (zh) | 缺陷检测方法、装置及服务终端 | |
CN104021075A (zh) | 用于程序代码的评估方法和装置 | |
CN103970654A (zh) | 一种软件可靠性虚拟测试方法 | |
CN109783361A (zh) | 确定代码质量的方法和装置 | |
CN106021109A (zh) | 一种面向程序结构分析自动化框架模型 | |
CN110659200A (zh) | 航空机载软件的源码和目标码对比分析方法及系统 | |
CN106557412A (zh) | 一种模糊测试的方法及装置 | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN103019924B (zh) | 输入法智能性评测系统和方法 | |
CN109508204B (zh) | 一种前端代码质量检测方法及装置 | |
CN115827353A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171117 |
|
CF01 | Termination of patent right due to non-payment of annual fee |