CN102736979A - 一种基于符号执行的带反馈测试用例生成方法 - Google Patents

一种基于符号执行的带反馈测试用例生成方法 Download PDF

Info

Publication number
CN102736979A
CN102736979A CN2012102192825A CN201210219282A CN102736979A CN 102736979 A CN102736979 A CN 102736979A CN 2012102192825 A CN2012102192825 A CN 2012102192825A CN 201210219282 A CN201210219282 A CN 201210219282A CN 102736979 A CN102736979 A CN 102736979A
Authority
CN
China
Prior art keywords
test case
symbol
test
statement
coverage goal
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.)
Granted
Application number
CN2012102192825A
Other languages
English (en)
Other versions
CN102736979B (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201210219282.5A priority Critical patent/CN102736979B/zh
Publication of CN102736979A publication Critical patent/CN102736979A/zh
Application granted granted Critical
Publication of CN102736979B publication Critical patent/CN102736979B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于符号执行的带反馈测试用例生成方法,其步骤为:(1)执行已有的测试用例并收集测试用例覆盖信息;(2)根据被测程序的控制流图确定符号执行的覆盖目标;(3)对被测试程序插桩,植入符号执行的控制代码;(4)从已有测试用例集中选择合适的种子测试用例;(5)针对覆盖目标应用符号执行方法生成新的测试用例,新生成的测试用例补充入测试用例集;(6)重复上述步骤,直至达到给定的测试用例生成目标。本发明可广泛应用于软件开发过程中的自动化测试,自动化生成测试用例,避免单纯符号执行的约束条件爆炸问题,提高效率;同时能够结合其他生成方法,缓解符号执行方法不能处理复杂数据结构的问题。

Description

一种基于符号执行的带反馈测试用例生成方法
 
技术领域
本发明涉及软件自动化测试中的测试用例生成,特别涉及在现有测试用例基础上,应用符号执行方法,通过设定覆盖目标和选择种子测试用例,限制约束求解的范围,以反馈和迭代的方式高效率生成测试用例。
背景技术
在软件测试过程中,测试用例生成是最重要的环节之一。有效的测试用例生成可以提高测试执行效果,同时降低测试成本和时间。目前测试用例生成基本靠人工来完成,耗时耗力,难以达到理想的程序覆盖率,因此需要有效的自动化测试用例生成方法。自动化测试用例生成的效果一般由程序覆盖率来度量,较高的覆盖率意味着更高的缺陷检测概率和软件质量保证能力。一个好的测试用例生成方法能够以较少的测试用例数量来达到较高的程序覆盖率。
现有的自动化测试用例生成方法包含三个类别:随机测试、基于搜索的测试以及符合执行。其中随机测试方法采用随机的方式生成测试用例输入,常生成过多的测试用例,且难以完成对特定程序覆盖目标的处理;基于搜索的测试方法采用遗传算法等来达到指定程序路径的覆盖,常需要过多的时间来生成测试用例,且受到搜索空间的限制;符号执行方法采用符号变量来执行程序,通过求解约束表达式来达到程序覆盖目标;在面对较大规模程序时,常遇到约束条件爆炸问题,在现有约束求解技术下难以完成复杂约束表达式的求解。
发明内容
本发明的主要目的是针对传统自动化测试用例生成方法不能独立完成自动化测试用例生成任务的问题,提出一种基于符号执行的带反馈测试用例生成方法,以反馈和迭代的方式,通过收集程序覆盖信息,设定覆盖目标,限制符号执行中约束求解的范围,高效率生成测试用例。
为实现本发明所述目的,本发明采用如下的步骤:
1)执行已有的测试用例并收集测试用例覆盖信息;确定每个测试用例在执行时覆盖的被测程序中的语句块,一个语句块指在任何程序输入下,执行情况都相同的一组语句;汇总所有测试用例所覆盖的语句块,确定被测程序中尚未覆盖的语句块集合;
2)根据被测程序的控制流图确定符号执行的覆盖目标;覆盖目标是被测程序中尚未覆盖的某个语句块;
3)对被测程序插桩,植入引导符号执行的控制代码;控制代码包括标记语句和判定语句;
4)从已有测试用例集中选择合适的种子测试用例,用于启动符号执行方法;
5)针对覆盖目标应用符号执行方法生成新的测试用例;将新生成的多个测试用例补充到已有的测试用例集合中。
上述5个步骤迭代执行,直至达到给定的测试用例生成目标。
上述步骤2)中根据被测程序控制流图确定符号执行覆盖目标的处理过程是:首先根据代码控制结构,将被测程序语句块组织成控制流图 
Figure 2012102192825100002DEST_PATH_IMAGE001
,图中的节点对应语句块,边代表语句块执行顺序;识别被测程序中每个函数/过程/方法中处于最高层次的子树,定义为上层子树;然后寻找覆盖率最低的函数/过程/方法(通过补充已有测试用例使其至少部分覆盖),在其对应的控制流图中确定第一个没有充分覆盖的上层子树;最后选择该上层子树中第一个没有被覆盖的语句块(对应非控制节点)作为本次符号执行的覆盖目标。
上述步骤3)中被测程序插桩以植入引导符号执行的控制代码的处理过程是:首先确定覆盖目标所在的函数/过程/方法,在其起始位置插入判定变量定义语句,判定变量的初值置为“false”;然后在覆盖目标之前的位置插入判定变量赋值语句,将判定变量赋值为“true”;最后确定覆盖目标所处的上层子树,在上层子树之后的位置插入控制符号执行的判定语句;在符号执行中,判定语句根据判定变量的取值决定是否继续补充约束条件以求解更复杂的约束表达式。
上述步骤4)中从已有测试用例集中选择种子测试用例的处理过程是:首先从已有测试用例中筛选覆盖了步骤2中覆盖目标的父节点的所有测试用例;令控制流图
Figure 480236DEST_PATH_IMAGE001
中覆盖目标所对应的节点为
Figure 397377DEST_PATH_IMAGE002
,父节点是
Figure 177114DEST_PATH_IMAGE001
中位于节点
Figure 634640DEST_PATH_IMAGE002
之前且直接与相连接的节点(按步骤2中的处理方式,父节点有且仅有一个);然后从这些测试用例中筛选对覆盖目标所处之上层子树的覆盖程度最高的测试用例;最后在剩余的测试用例中选择覆盖语句块总数最少的测试用例作为种子测试用例。
上述步骤5)中针对覆盖目标应用符号执行方法生成测试用例的处理过程是:首先根据覆盖目标确定符号执行的入口,包括对应函数/过程/方法的名称和参数列表;然后识别或选择符号执行需要处理的输入参数,即参数处理类型,符号执行无法处理的非数值参数必须作为常量,其他作为符号变量;根据种子测试用例为输入参数赋初值并设置符号执行的配置信息;配置信息的具体内容取决于所采用的符号执行方法,其中的关键是符号执行入口和参数处理类型;最后以插桩程序为基础驱动符号执行方法生成新的测试用例。
本发明利用人工、随机生成、或者历史积累的初始测试用例集,以迭代和反馈的方式,通过收集程序覆盖信息,设定覆盖目标,有效限制符号执行中约束求解的范围,从而降低约束表达式的复杂度,减少符号执行的规模和数量,高效率生成测试用例。为达到同等的程序覆盖率,同随机测试方法相比较,本发明方法无论在测试用例生成时间上,还是在测试用例生成数量上,都远小于随机测试方法;同单纯符号执行方法相比较,除生成的测试用例数量略多以外,本发明只需要更少的测试用例生成时间,就可以处理更大规模和复杂度的软件程序,可以灵活处理不需要或者不能够进行符号执行的输入参数。
归纳起来,本发明的优点主要是:可用于各个测试阶段的自动化测试生成工作;可用于各种类型软件程序测试,不依赖于编程语言和测试环境;可充分利用被测程序已有的测试用例集;在自动化测试生成过程中,便于人工干预或引入其他的测试用例生成方法,具有较好的灵活性、可扩展性和适应性。
附图说明
图1 是基于符号执行的带反馈测试用例生成方法的结构图;
图2 是根据控制流图确定符号执行覆盖目标的工作流程图;
图3 是一个程序代码示例及其对应的控制流图;
图4 是被测程序插桩并植入符号执行控制代码的工作流程图;
图5 是程序代码示例和基于JPF工具的控制代码插桩示意图;
图6 是从已有测试用例集中选择种子测试用例的工作流程图;
图7 是应用符号执行方法生成新测试用例的工作流程图;
图8 是针对程序代码示例的部分JPF工具配置信息示意图。
具体实施方式
下面结合附图进行详细说明。
如图1所示,本发明方法由五个步骤组成:其一,收集已有测试用例的程序覆盖信息;其二,根据被测程序的控制流图确定符号执行的覆盖目标;其三,对被测程序插桩,植入引导符号执行的控制代码;其四,从已有测试用例集中选择合适的种子测试用例;其五,针对覆盖目标应用符号执行方法生成新的测试用例。新生成的测试用例补充入现有的测试用例集;其六,重复上述步骤,直至达到给定的测试用例生成目标,如100%语句覆盖率。本发明方法的输入包括被测程序、以及由人工或随机测试等方法生成的测试用例集;输出是达到了指定程序覆盖率的测试用例集。
步骤一是收集已有测试用例的程序覆盖信息。确定每个测试用例在执行时覆盖的程序语句块,一个语句块(或代码块)指在任何程序输入下,执行情况都相同的一组语句。汇总所有测试用例所覆盖的语句块,可以确定被测程序中尚未覆盖的语句块集合。
步骤二是根据被测程序的控制流图确定符号执行的覆盖目标,过程如图2所示。根据代码控制结构,被测程序的语句块可以组织成为控制流图
Figure 2012102192825100002DEST_PATH_IMAGE003
,其中
Figure 336721DEST_PATH_IMAGE004
为控制流图的节点集合,每个节点对应一个语句块;为控制流图的边集。对于任意两个语句块
Figure 2012102192825100002DEST_PATH_IMAGE007
,有向边
Figure 927289DEST_PATH_IMAGE008
表示
Figure 658484DEST_PATH_IMAGE006
Figure 651848DEST_PATH_IMAGE007
之间存在顺序关系,即
Figure 468494DEST_PATH_IMAGE007
可能在
Figure 205506DEST_PATH_IMAGE006
之后执行。有向边关联的节点为父子关系,即
Figure 791208DEST_PATH_IMAGE006
Figure 221053DEST_PATH_IMAGE007
的父节点,而
Figure 524995DEST_PATH_IMAGE007
Figure 800118DEST_PATH_IMAGE006
的子节点。图3所示为一个程序代码示例及其对应的控制流图。
一个软件程序通常包含多个函数/过程/方法,控制流图一般以函数/过程/方法为单位组织。图3显示了函数“func(x,y)”的语句块组成、及其所对应的一个控制流图。图3中在代码的左侧标识了每个语句块的编号,对应控制流图中相应节点的编号。控制流图中的节点一般分为控制节点(如节点1和4)和非控制节点(如节点2和5),控制节点对应程序中的控制语句。图中节点1~3组成一个分支(或选择)结构,本身构成一颗子树;节点4~9组成一个循环结构,如果不考虑逆向边
Figure 2012102192825100002DEST_PATH_IMAGE009
,则也构成了一颗子树;在这颗子树中,节点6~8又组成了一个分支结构,构成低一层次的子树。有向边关联的节点对为父子节点,例如对有向边,节点5是节点6的父节点,而节点6是节点5的子节点。
在组织被测程序的控制流图时,识别每个函数/过程/方法中最高层次的所有子树,定义为上层子树。图3所示的函数代码中包含3个上层子树,分别由节点1~3、节点4~9、以及节点10~11构成。
接下来确定符号执行的覆盖目标:寻找覆盖率最低的函数/过程/方法,如果其覆盖率为0,则需采用人工或随机测试方法补充现有测试用例;这里假设该函数/过程/方法已部分覆盖;然后在其对应的控制流图中确定第一个没有充分覆盖的上层子树;再选择该上层子树中第一个没有被覆盖的语句块(要求对应非控制节点)作为本次符号执行的覆盖目标。按上述策略设定覆盖目标的目的是使得本次迭代中新生成的测试用例能够覆盖更多的未覆盖语句块。
步骤三是插桩并植入引导符号执行的控制代码,过程如图4所示。控制代码的作用是保证随后的符号执行仅会搜索和求解该子树中覆盖目标所处路径上的约束表达式。所插桩的控制代码包含两个部分:其一是标记语句,标记语句的功能有两个,第一是定义一个布尔型的判定变量;第二是为该变量设置布尔值。判定变量的定义位置可以根据编程语言的特性来确定,一般作为局部变量定义在对应函数/过程/方法的起始位置;在布尔值设定方面,其初始值设置为“false”,然后在覆盖目标(语句块)的起始位置将布尔值设置为“true”。其二是判定语句,判定语句的功能是限制约束求解的范围和复杂度;判定语句置于覆盖目标所处的上层子树之后,要求是该子树执行之后、对应函数/过程/方法返回之前执行的第一条语句。判定语句的语法结构取决于所基于的符号执行方法,目标是根据判定变量的取值决定是否继续补充约束条件以求解更复杂的约束表达式。
图5所示是根据图3的示例插桩后的程序代码。其中假设编程语言是Java,所采用的符号执行工具是JPF(Java Path Finder)。令函数“func(x,y)”中尚未覆盖的第一个语句块编号是7。插桩后新增加了3条语句,语句1和语句2是标记语句,分别定义布尔型判定变量“__flag_”并对其设置合适的布尔值。语句3是判定语句,置于循环结构(节点4~9)之后,根据变量“__flag_”的取值决定是否继续添加后续的约束条件,图中若变量值为“false”则不再继续求解约束表达式。
步骤四是从已有测试用例集中选择合适的种子测试用例,用于启动符号执行方法。图6所示为选择种子测试用例的工作流程。对于符号执行,种子测试用例的作用主要有两个方面:一是提供确定的输入参数值,引导符号执行覆盖既定的程序覆盖目标;二是符号执行方法目前只能处理数值参数,对于非数值参数,种子测试用例能够提供合适的固定值(符号执行过程中将这些参数值视为常量)。基于上述,选择种子测试用例时遵循以下基本原则:
1)种子测试用例必须覆盖既定覆盖目标的父节点。按步骤2,覆盖目标是上层子树中第一个未覆盖的语句块(对应控制流图中的非控制节点),其父节点必然被某一个测试用例覆盖。控制流图中存在多个父节点的节点必然是控制节点,如图3中的节点3、4、8和9等,覆盖目标对应非控制节点,有且仅有一个父节点;
2)种子测试用例对覆盖目标所处的上层子树覆盖尽可能多;
3)种子测试用例所覆盖的语句块总数尽可能少。
按照原则1和2,种子测试用例可以有效减少符号执行的规模和范围,提高符号执行的效率;按照原则3,种子测试用例尽量简单,可以减少符号执行的运行时间,能够在较短的时间里生成更多的测试用例。
如图6所示,按照上述原则,首先从已有测试用例集中筛选覆盖了既定覆盖目标的父节点的所有测试用例;然后从这些测试用例中筛选对覆盖目标所处之上层子树的覆盖程度最高的测试用例;最后在剩余测试用例中选择覆盖语句块总数最少的测试用例作为种子测试用例。
步骤五是针对覆盖目标应用符号执行方法生成新的测试用例,过程如图7所示。首先根据覆盖目标确定符号执行的入口,需要获取两个方面信息:第一是进行符号执行的函数/过程/方法名称,如图3中的“func( )”,其中包含既定的覆盖目标;第二是析取该函数/过程/方法的参数列表,包括各参数的类型和名称,图3中为两个整型参数“x, y”、以及一个字符串参数“z”。然后根据参数类型确定可以采用符号执行处理的参数,目前符号执行方法尚不能处理非数值参数和结构类型参数,在图3中整型参数“x, y”可以作为符号变量由符号执行来处理,而字符串参数“z”只能作为常量来处理。
再后根据种子测试用例为输入参数赋初值,并设置符号执行方法的配置信息。图8所示为符号执行方法配置信息的一个实例,所采用的符号执行工具是 JPF,运行对象是图3中的示例函数,其中函数定义“func(int x, int y, String z)”被转换为“func(sym#sym#con)”,确定了可以采用符号执行处理的输入参数。最后采用插桩后的程序,驱动符号执行方法,生成新的测试用例。新生成的多个测试用例补充到已有的测试用例集合中。
上述五个步骤以迭代方式重复执行,直至达到给定的测试用例生成目标(如100%语句覆盖率)。应用符号执行需要考虑程序中存在不可达路径的问题,本发明方法在迭代过程中允许人工介入,可以采用限制符号执行时间、限制方法的迭代次数、以及插桩时人为修改控制代码等方式更灵活地解决不可达路径问题。实证研究中我们采用十余个样本程序应用本发明方法生成测试用例,并同随机测试和单纯符号执行方法进行比对。实验结果表明,同随机测试方法相比较,为达到同等的程序覆盖率,本发明方法无论在测试用例生成时间上,还是在测试用例生成数量上,都远小于随机测试方法;同单纯符号执行方法相比较,本发明方法需要更少的测试用例生成时间,可以处理更大规模和复杂度的软件程序,可以灵活处理不需要或者不能够进行符号执行的输入参数;但由于初始测试用例集的存在,测试用例生成数量略多于单纯符号执行方法。

Claims (5)

1.一种基于符号执行的带反馈测试用例生成方法,其特征在于包括以下步骤:
1)执行已有的测试用例并收集测试用例覆盖信息;确定每个测试用例在执行时覆盖的被测程序中的语句块;汇总所有测试用例所覆盖的语句块,确定被测程序中尚未覆盖的语句块集合;
2)根据被测程序的控制流图确定符号执行的覆盖目标;覆盖目标是被测程序中尚未覆盖的某个语句块;
3)对被测程序插桩,植入引导符号执行的控制代码;控制代码包括标记语句和判定语句;
4)从已有测试用例集中选择合适的种子测试用例,用于启动符号执行方法;
5)针对覆盖目标应用符号执行方法生成新的测试用例;将新生成的多个测试用例补充到已有的测试用例集合中;
6)上述5个步骤迭代执行,直至达到给定的测试用例生成目标。
2.根据权利要求1所述的基于符号执行的带反馈测试用例生成方法,其特征在于,上述步骤2)中根据被测程序控制流图确定符号执行覆盖目标的处理过程是:首先根据代码控制结构,将被测程序语句块组织成控制流图                                               
Figure 2012102192825100001DEST_PATH_IMAGE002
,图中的节点对应语句块,边代表语句块执行顺序;识别被测程序中每个函数/过程/方法中处于最高层次的子树,定义为上层子树;然后寻找覆盖率最低的函数/过程/方法,在其对应的控制流图中确定第一个没有充分覆盖的上层子树;最后选择该上层子树中第一个没有被覆盖的语句块,对应非控制节点作为本次符号执行的覆盖目标。
3.根据权利要求1或2所述的基于符号执行的带反馈测试用例生成方法,其特征在于,上述步骤3)中被测程序插桩以植入引导符号执行的控制代码的处理过程是:首先确定覆盖目标所在的函数/过程/方法,在其起始位置插入判定变量定义语句,判定变量的初值置为“false”;然后在覆盖目标之前的位置插入判定变量赋值语句,将判定变量赋值为“true”;最后确定覆盖目标所处的上层子树,在上层子树之后的位置插入控制符号执行的判定语句;在符号执行中,判定语句根据判定变量的取值决定是否继续补充约束条件以求解更复杂的约束表达式。
4.根据权利要求2所述的基于符号执行的带反馈测试用例生成方法,其特征在于,上述步骤4)中从已有测试用例集中选择种子测试用例的处理过程是:首先从已有测试用例中筛选覆盖了步骤2)中覆盖目标的父节点的所有测试用例;令控制流图
Figure 601237DEST_PATH_IMAGE002
中覆盖目标所对应的节点为
Figure 2012102192825100001DEST_PATH_IMAGE004
,父节点是中位于节点
Figure 385839DEST_PATH_IMAGE004
之前且直接与相连接的节点,父节点有且仅有一个;然后从这些测试用例中筛选对覆盖目标所处之上层子树的覆盖程度最高的测试用例;最后在剩余的测试用例中选择覆盖语句块总数最少的测试用例作为种子测试用例。
5.根据权利要求1或2所述的基于符号执行的带反馈测试用例生成方法,其特征在于,上述步骤5)中针对覆盖目标应用符号执行方法生成测试用例的处理过程是:首先根据覆盖目标确定符号执行的入口,包括对应函数/过程/方法的名称和参数列表;然后识别或选择符号执行需要处理的输入参数,即参数处理类型,符号执行无法处理的非数值参数必须作为常量,其他作为符号变量;根据种子测试用例为输入参数赋初值并设置符号执行的配置信息;配置信息的具体内容取决于所采用的符号执行方法,其中的关键是符号执行入口和参数处理类型;最后以插桩程序为基础驱动符号执行方法生成新的测试用例。
CN201210219282.5A 2012-06-29 2012-06-29 一种基于符号执行的带反馈测试用例生成方法 Expired - Fee Related CN102736979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210219282.5A CN102736979B (zh) 2012-06-29 2012-06-29 一种基于符号执行的带反馈测试用例生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210219282.5A CN102736979B (zh) 2012-06-29 2012-06-29 一种基于符号执行的带反馈测试用例生成方法

Publications (2)

Publication Number Publication Date
CN102736979A true CN102736979A (zh) 2012-10-17
CN102736979B CN102736979B (zh) 2014-12-31

Family

ID=46992520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210219282.5A Expired - Fee Related CN102736979B (zh) 2012-06-29 2012-06-29 一种基于符号执行的带反馈测试用例生成方法

Country Status (1)

Country Link
CN (1) CN102736979B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572437A (zh) * 2014-04-15 2015-04-29 武汉中地数码科技有限公司 基于自反馈的地理空间信息处理工具功能性自动测试方法
CN105260317A (zh) * 2015-11-19 2016-01-20 上海斐讯数据通信技术有限公司 一种测试用例的选取方法
CN106250253A (zh) * 2016-07-19 2016-12-21 努比亚技术有限公司 一种移动终端测试装置及测试方法
CN106681905A (zh) * 2015-11-05 2017-05-17 财团法人资讯工业策进会 软件测试装置及其软件测试方法
CN107656863A (zh) * 2016-11-03 2018-02-02 华东师范大学 一种基于关键点引导的数据流测试方法及其测试系统
CN108959056A (zh) * 2017-05-17 2018-12-07 富士通株式会社 测试用例生成方法和测试用例生成装置
CN109992507A (zh) * 2019-03-22 2019-07-09 北京信息科技大学 基于模拟执行的程序模糊测试方法及装置
CN110046089A (zh) * 2019-03-01 2019-07-23 华南师范大学 一种基于路径覆盖充分性准则的智能合约测试方法
CN110348216A (zh) * 2019-05-24 2019-10-18 中国科学院信息工程研究所 一种针对云计算系统虚拟设备的模糊测试方法及系统
CN110515856A (zh) * 2019-09-02 2019-11-29 华东师范大学 一种基于动态符号执行的测试用例生成系统
CN110515857A (zh) * 2019-09-02 2019-11-29 华东师范大学 一种基于动态符号执行的测试用例生成方法
CN111459786A (zh) * 2019-01-18 2020-07-28 南京大学 一种基于变异fuzz的智能合约安全测试方法
CN113485926A (zh) * 2021-07-05 2021-10-08 浙江大学 一种用于验证cpu指令模拟执行效果一致性的方法
CN114416598A (zh) * 2022-03-28 2022-04-29 广州番禺职业技术学院 一种基于测试切片的众包测试扩增方法
CN118012767A (zh) * 2024-02-27 2024-05-10 浙江大学 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210076B2 (en) 2016-09-26 2019-02-19 International Business Machines Corporation White box testing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210339A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for code coverage
CN101464797A (zh) * 2008-12-09 2009-06-24 北京星网锐捷网络技术有限公司 基于统一建模语言活动图自动生成测试用例的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210339A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for code coverage
CN101464797A (zh) * 2008-12-09 2009-06-24 北京星网锐捷网络技术有限公司 基于统一建模语言活动图自动生成测试用例的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
崔宝江 等: "基于回溯与引导的关键代码区域覆盖的二进制程序测试技术研究", 《电子与信息学报》 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572437A (zh) * 2014-04-15 2015-04-29 武汉中地数码科技有限公司 基于自反馈的地理空间信息处理工具功能性自动测试方法
CN104572437B (zh) * 2014-04-15 2017-08-01 武汉中地数码科技有限公司 基于自反馈的地理空间信息处理工具功能性自动测试方法
CN106681905A (zh) * 2015-11-05 2017-05-17 财团法人资讯工业策进会 软件测试装置及其软件测试方法
CN105260317B (zh) * 2015-11-19 2017-10-13 上海斐讯数据通信技术有限公司 一种测试用例的选取方法
CN105260317A (zh) * 2015-11-19 2016-01-20 上海斐讯数据通信技术有限公司 一种测试用例的选取方法
CN106250253A (zh) * 2016-07-19 2016-12-21 努比亚技术有限公司 一种移动终端测试装置及测试方法
CN106250253B (zh) * 2016-07-19 2019-10-15 努比亚技术有限公司 一种移动终端测试装置及测试方法
CN107656863A (zh) * 2016-11-03 2018-02-02 华东师范大学 一种基于关键点引导的数据流测试方法及其测试系统
CN108959056A (zh) * 2017-05-17 2018-12-07 富士通株式会社 测试用例生成方法和测试用例生成装置
CN108959056B (zh) * 2017-05-17 2021-11-16 富士通株式会社 测试用例生成方法和测试用例生成装置
CN111459786B (zh) * 2019-01-18 2023-08-29 南京大学 一种基于变异fuzz的智能合约安全测试方法
CN111459786A (zh) * 2019-01-18 2020-07-28 南京大学 一种基于变异fuzz的智能合约安全测试方法
CN110046089A (zh) * 2019-03-01 2019-07-23 华南师范大学 一种基于路径覆盖充分性准则的智能合约测试方法
CN110046089B (zh) * 2019-03-01 2022-05-17 华南师范大学 一种基于路径覆盖充分性准则的智能合约测试方法
CN109992507A (zh) * 2019-03-22 2019-07-09 北京信息科技大学 基于模拟执行的程序模糊测试方法及装置
CN109992507B (zh) * 2019-03-22 2022-06-24 北京信息科技大学 基于模拟执行的程序模糊测试方法及装置
CN110348216A (zh) * 2019-05-24 2019-10-18 中国科学院信息工程研究所 一种针对云计算系统虚拟设备的模糊测试方法及系统
CN110515856A (zh) * 2019-09-02 2019-11-29 华东师范大学 一种基于动态符号执行的测试用例生成系统
CN110515856B (zh) * 2019-09-02 2021-01-29 华东师范大学 一种基于动态符号执行的测试用例生成系统
CN110515857A (zh) * 2019-09-02 2019-11-29 华东师范大学 一种基于动态符号执行的测试用例生成方法
CN113485926A (zh) * 2021-07-05 2021-10-08 浙江大学 一种用于验证cpu指令模拟执行效果一致性的方法
CN114416598A (zh) * 2022-03-28 2022-04-29 广州番禺职业技术学院 一种基于测试切片的众包测试扩增方法
CN118012767A (zh) * 2024-02-27 2024-05-10 浙江大学 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法
CN118012767B (zh) * 2024-02-27 2024-09-10 浙江大学 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法

Also Published As

Publication number Publication date
CN102736979B (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
CN102736979A (zh) 一种基于符号执行的带反馈测试用例生成方法
CN107590073B (zh) 基于路径覆盖软件测试的测试用例自动生成方法
Garg et al. ICE: A robust framework for learning invariants
CN101436128B (zh) 软件测试用例自动生成方法及系统
CN102253889B (zh) 一种回归测试中基于分布的测试用例优先级划分方法
CN102750153B (zh) 一种基于程序变更的回归测试用例集构建方法
US20220398373A1 (en) Multi-stage fpga routing method for optimizing time division multiplexing
CN108647146A (zh) 基于修正条件判定组合覆盖的测试用例生成方法
CN105701016A (zh) 一种针对异常处理代码的测试方法
CN115794625A (zh) 一种智能合约模糊测试的方法及系统
CN109739759A (zh) 一种验证黑盒测试用例设计完整性的方法
Shanthi et al. A novel approach for automated test path generation using TABU search algorithm
CN103902457A (zh) 基于协同进化的并行程序路径覆盖测试数据生成方法
CN102708053A (zh) 程序路径中确定函数调用的上下文环境影响的方法
CN101271397A (zh) 一种嵌套循环结构的识别方法
CN116541846A (zh) 复合式Android平台原生程序动态漏洞挖掘系统
An et al. Comparing line and AST granularity level for program repair using PyGGI
CN112181420A (zh) 基于强化学习的编译器缺陷定位方法
CN117424745A (zh) 一种基于动态自适应策略的模糊测试优化方法
CN114840856B (zh) 一种状态感知的物联网可信执行环境模糊测试方法和系统
CN104536880A (zh) 基于符号执行的gui程序测试用例扩增方法
Jaiswal et al. Optimized test case generation for basis path testing using improved fitness function with PSO
Morsali et al. Search-based software module clustering techniques: A review article
Sahoo et al. Metaheuristic techniques for test case generation: A review
Krauss et al. Mining patterns from genetic improvement experiments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141231

Termination date: 20200629