CN108710575B - 基于路径覆盖测试用例自动生成的单元测试方法 - Google Patents

基于路径覆盖测试用例自动生成的单元测试方法 Download PDF

Info

Publication number
CN108710575B
CN108710575B CN201810501975.0A CN201810501975A CN108710575B CN 108710575 B CN108710575 B CN 108710575B CN 201810501975 A CN201810501975 A CN 201810501975A CN 108710575 B CN108710575 B CN 108710575B
Authority
CN
China
Prior art keywords
code
node
control flow
flow graph
test case
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
CN201810501975.0A
Other languages
English (en)
Other versions
CN108710575A (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.)
Beiming Software Co ltd
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201810501975.0A priority Critical patent/CN108710575B/zh
Publication of CN108710575A publication Critical patent/CN108710575A/zh
Priority to US17/058,110 priority patent/US11720477B2/en
Priority to PCT/CN2018/113236 priority patent/WO2019223247A1/zh
Application granted granted Critical
Publication of CN108710575B publication Critical patent/CN108710575B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了基于路径覆盖测试用例自动生成的单元测试方法,首先对被测试程序的代码进行词法分析与语法分析,然后得到程序的控制流图。得到控制流图后根据已知的判断节点个数生成节点表。然后根据自动生成的测试用例,在生成的控制流图中驱动节点中的可执行代码的执行,同时根据可执行代码的执行结果计算获取fitness适应值,进行选择子节点继续重复上述过程,直到找到图中的终止节点,最后生成路径标记与得到该路径对应的fitness适应值。接着运行测试用例自动生成算法,该算法根据返回的fitness适应值不断自动生成测试用例,直到路径完全覆盖,或者超过设定的运行时间时退出。本发明适用于软件测试的,经过实验验证,可以应用于实际的软件测试工作环境。

Description

基于路径覆盖测试用例自动生成的单元测试方法
技术领域
本发明涉及计算机软件工程的软件测试领域,具体涉及基于路径覆盖测试用例自动生成的单元测试一体化方法。
背景技术
随着软件产业的不断发展,软件测试在软件开发中的地位越来越重要,因为传统的软件测试基本是由人工生成测试用例,再对软件进行测试,这是一个极其复杂和繁琐的体力劳动,不仅成本高而且易出错,再者在软件测试的过程中存在大量技术含量低且重复性极高的工作,所以设计一个软件自动测试智能软件能够有效降低企业的测试人力成本,同时对测试报告进行分析,能够有效地保证测试效率和效果并控制测试成本。一个优秀的自动化测试软件可以极大地节省大量的人力物力,减少资源消耗,提高企业效益与企业的市场竞争力。
现有的软件自动化测试方法中使用的动态的方法大都是具体基于语句覆盖或者是分支覆盖,而在软件测试所有的覆盖类型中,路径覆盖是最强的覆盖,有更强的纠错能力,能更有效地检查出软件的瑕疵和错误。且现如今虽有测试用例自动生成的方法,却没有一个完整的,可以对源代码自动进行解析,并将测试用例代入进行测试,同时生成测试报告的软件自动化测试智能方法。
本发明中采用的基于路径覆盖测试用例自动生成的单元测试方法,构建源代码分析生成控制流图模块、测试用例自动生成模块、测试用例执行模块、测试报告生成模块,并将这些模块组合生成软件自动化测试***。基于路径覆盖测试用例自动生成,无须人工干预,仅需输入需要测试的源代码,***便可解析源代码生成控制流图,再自动生成测试用例,不断地进行测试,直至覆盖源代码中所有路径或已超过最大迭代次数,最后生成一份测试报告。本发明采用合理源代码解析与程序分析技术并结合测试用例自动生成的方法,实现软件自动化测试,因为无需人工干预,该***极大地提高软件测试的效率与降低软件测试成本,效果极好。
发明内容
本发明针对如今软件行业上缺乏一体化的软件自动化测试方法的不足,开发出了基于路径覆盖测试用例自动生成的单元测试智能软件。本发明的目的在于构建一个软件自动化测试的***,帮助软件测试人员去除大量的技术含量低且重复性的工作,能够快速的获得覆盖被测试程序所有路径的测试用例的报告,从而利用这些测试用例更好地检测出测试程序可能存在的BUG,用于修复程序漏洞,提高软件质量。
基于路径覆盖测试用例自动生成的单元测试方法,其包括以下步骤:
(a)对输入源程序即源代码进行文件预处理,使其符合词法分析与语法分析要求的语法结构;
(b)对步骤(a)预处理后的输入源代码进行词法分析,建立符号表;
(c)对步骤(a)预处理后的输入源代码进行语法分析,建立源代码对应的控制流图(CFG),其中包含控制节点、普通节点与终止节点,将源代码转化可执行的中间代码,并在控制节点中***可执行代码;
(d)由测试用例自动生成算法生成测试用例;
(e)由测试用例执行模块获取测试用例,并驱动控制流图中节点的可执行代码的执行,根据可执行代码执行结果计算适应度函数fitness适应值;
(f)若当前节点不是终止节点,由可执行代码的执行结果选择下一个子节点(子节点指的是当前节点指向的下一个节点)重复(c),(d),(e)步骤;否则进入下一步;
(g)当前节点是终止节点,获取fitness适应值的最终结果,并生成该测试用例对应的路径编码;
(h)判断路径覆盖是否已经达到100%或者运行是否已经超时,若已经达到100%则进入下一步,若已经超则退出,否则,重复(d),(e),(f),(g)步骤;
(i)生成包含测试用例对应覆盖的路径,以及路径覆盖率的测试报告。
进一步的,步骤(a)中,文件预处理中,若有多文件,在C/C++中将通过include语句进行识别,将需要include的文件放到同一个源文件中;将if-elseif-else结构中在elseif和else中***块结束标识符(一般为‘{’与‘}’),将if-elseif-else结构转换成if-else嵌套结构,将switch语句结构中case多分支结构进行转换成if-else多嵌套结构,降低代码抽象程度与控制流图实现难度。
进一步的,步骤(b)(c)中,对源代码进行词法分析与语法分析,生成源代码的对应的控制流图(CFG),通过循环、分支、顺序结构能表示任何可执行代码的结构,所以将顺序执行代码转化为控制流图中的顺序节点,其中包含着源代码中顺序结构代码的中间表示代码,用栈存储相关代码信息,将分支结构与循环结构通过构建图的分支节点与局部回路形式将分支与循环结构,在图中实例化。
进一步的,步骤(c)中,源代码中存在函数调用与递归函数,将函数视为一个模块,对函数进行分析,构建该函数代码对应的控制流图,在函数调用时,将函数对应的控制流图的第一个节点的指针传给调用函数,组合构建控制流图;对于简单的递归函数则将其构建为带有局部回路的控制流图子图,递归调用时将子图传给外部调用者构建总的控制流图。
进一步的,步骤(c)中,设计一套基于栈式计算机的中间代码指令,将操作符如+、-、*、/等转换为对应的运算指令如ADD、SUB、MUL、DIV等,增加PUSH,POP,MOV等操作指令与增加ID,NUM,STR等标识指令。用以将高级程序设计语言进行转化生成中间代码,通过中间代码的执行来模拟程序的执行。
进一步的,步骤(b)(c)中,普通节点与控制节点中的存储的是源代码的中间代码表示方法,程序的执行可以抽象为内存中变量值的修改,该方法将变量表示为ID符,并压栈,同时再将该变量在符号表中的地址压栈,在后面中间代码执行阶段,便可通过ID标识符获知当前处理为变量,接着通过ID后面的地址能访问到该变量位置,并对变量进行操作,如果是数字,则将NUM符压栈,同时将数字的值压栈,操作符直接压栈,通过这种中间代码表示降低高级程序设计语言的抽象程度,之后创建一个中间代码解释器,便能直接运行设计的中间代码;构建的中间代码解释器其基本原理是使用栈式计算机的机理,通过一个栈与几个暂存器来执行中间代码,并返回中间代码执行结果;
将代码转为中间代码之后,降低了代码抽象程度,在实际的中间代码运行中,采用中缀表达式转后缀表达式的方法,通过栈的数据结构计算中中间代码的结果。
进一步的,步骤(b)(c)中,在语法分析过程中,采用递归下降的分析方法将源代码进行语法分析,从而辅助控制流图的构建,通过步骤(b)(c)***性地根据测试用例自动生成算法的需求构建源程序解析生成控制流图,从而使控制流图生成自动化。
进一步的,步骤(d)(e)中,生成的控制流图是可驱动性,即该控制流图可以根据生成的测试用例自动执行节点中的可执行代码,再根据代码执行结果,自动选择下一节点,实现了控制流图中的路径自动生成。
进一步的,步骤(d)(e)中,控制流图中节点里的中间代码在执行过程中,在中间代码解释器访问符号表的过程中,当前符号若被访问,则将当前符号记录与符号表中前一个符号的记录进行交换,提高符号表中符号被命中的概率与减少符号命中过程中所花费的时间。
进一步的,步骤(d)(e)(f)(g)中,测试用例自动生成算法不断地自动生成测试用例,驱动控制流图中路径生成,如果路径覆盖率没有带到100%或者运行还未超时,则根据上一个测试用例执行结果进行改进继续生成测试用例,不断生成路径。
上述步骤(h)中,程序正常退出并打印测试报告,该***完整地实现了基于路径覆盖的软件自动化测试,通过该***,即可对软件代码进行自动化测试。
与现有技术相比,本发明具有一下优点与技术效果:
基于路径覆盖测试用例自动生成的单元测试方法的测试用例自动生成,测试人员无须再花费大量精力与做大量重复性工作去设计测试用例。软件根据输入的待测源代码,即可全自动地进行分析与生成测试报告,极大地提高测试效率。
测试人员仅需将待测的源代码输入基于路径覆盖测试用例自动生成的单元测试智能软件中,就可以得到一份由测试用例及测试用例对应的路径的测试报告,非常的简便,测试人员无须了解内部原理,即可快捷方便地完成测试工作,拥有极强的易用性,有广阔的应用空间。
附图说明
图1为实施例中基于路径覆盖测试用例自动生成的单元测试方法实现流程。
图2为实例中测试程序“Triangle”控制流图。
具体实施方式
以下结合实施例对本发明的实施方式作进一步说明,但本发明的实施不限于此,需指出的是,以下若有未特别详细说明之处,均是本领域技术人员可参照现有技术实现或理解的。
如图1,基于路径覆盖测试用例自动生成的单元测试方法包括以下步骤:
第一步,输入待测的源程序,对源程序文件进行预处理,将源代码进行解析编译生成控制流图(CFG);对于每个输入的、输出以及判断、循环分支进行分析,以这些信息为基准,画出被测试功能单元的控制流图(CFG),如图2所示。根据控制流图中的判断节点生成路径编码表与节点编码表,确定测试用例的维度。得到控制流图之后,根据控制流图的圈复杂度得到被测试程序存在的路径数目。通过分析图2我们知道测试程序存在5个分支判断节点{1,5,6,10,14},我们将这些节点从1~5进行编号,由源代码分析可知,该源代码的路径数4条,4条路径的编码及对应的判断节点的代码执行结果(NAN为未知数)如表1所示。
表1
Figure GDA0002531661160000051
表2为实例中测试程序“Triangle”代码部分。
表2
Figure GDA0002531661160000052
判断点1是中的判断条件是判断是否符合三角形条件,判断节点5是判断isTriangle变量是否为true,判断节点6是判断三角形是否为等腰三角形,判断节点10是判断三角形是否为等边三角形,判断节点14是判断三角形是否为普通三角形。
路径1表明输入测试用例符合等腰三角形条件,路径2表明输入的测试用例符合等边三角形条件,路径三表明输入的测试用例符合普通三角形的条件,路径4表明输入的测试用例符合不是三角形的条件。路径4中因为输入的测试用例符合不是三角形的条件,所以当驱动程序执行到判断节点5时,代码执行结果为false,向右搜索子节点继续执行,即选择节点18,接着便是执行节点19到达控制流图终止节点程序结束,所以判断节点6,10,14中的可执行代码没有执行,所以结果为NAN。
由图2,我们可以清楚地知道Triangle问题存在的所有路径在控制流图中对应的节点顺序如表3所示。
表3
路径编码 控制流图中对应的节点组成的路径
路径1 {0,1,2,4,5,6,7,9,10,12,13,14,16,17,19}
路径2 {0,1,2,4,5,6,8,9,10,11,13,14,16,17,19}
路径3 {0,1,2,4,5,6,8,9,10,12,13,14,15,17,19}
路径4 {0,1,3,4,5,18,19}
第二步,确定被测试程序的具体问题编码。根据测试用例自动生成算法(可采用申请号为2017107664223的已经公开的中国专利申请“一种基于路径覆盖软件测试的测试用例自动生成方法”提供的方法)自动生成基于路径覆盖的测试用例,根据生成的测试用例,软件中的测试用例执行模块将前述生成的控制流图自动搜索生成路径,并更新路径表与节点表,同时返回一个该测试用例对应生成的fitness适应值,用以算法的继续生成测试用例。测试用例所对应的路径编码与fitness适应值均会被同时记录下来,用以输出测试报告根据测试问题“Triangle”中对输入变量a,b,c三者的定义,a,b,c都是范围为[1,MAX_VALUE]的正整数,其中MAX_VALUE代表着计算机可表达的正整数。
第三步,我们不断地生成测试用例在控制流图中搜索生成路径,如果第一步中的4条路径被完全覆盖或者超出最大迭代次数,停止生成测试用例,退出程序,同时输出测试报告,其中包含测试用例覆盖的路径及该测试用例。
从实例结果来看,通过本发明方法,可以找到Triangle问题的有效路径测试用例。
对于其他待测的源程序,只需向该软件输入待测源程序代码,即可输出一份测试报告。

Claims (7)

1.基于路径覆盖测试用例自动生成的单元测试方法,其特征在于,包括以下步骤:
(a) 对输入源程序即源代码进行文件预处理,使其符合词法分析与语法分析要求的语法结构;文件预处理中,若有多文件,在C/C++中将通过include语句进行识别,将需要include的文件放到同一个源文件中;将if-elseif-else结构中在elseif和else中***块结束标识符,将if-elseif-else结构转换成if-else嵌套结构,将switch语句结构中case多分支结构进行转换成if-else多嵌套结构,降低代码抽象程度与控制流图实现难度;
(b) 对步骤(a)预处理后的输入源代码进行词法分析,建立符号表;
(c) 对步骤(a)预处理后的输入源代码进行语法分析,建立源代码对应的控制流图(CFG),其中包含控制节点、普通节点与终止节点,将源代码转化可执行的中间代码,并在控制节点中***可执行代码;源代码中存在函数调用与递归函数,将函数视为一个模块,对函数进行分析,构建该函数代码对应的控制流图,在函数调用时,将函数对应的控制流图的第一个节点的指针传给调用函数,组合构建控制流图;对于简单的递归函数则将其构建为带有局部回路的控制流图子图,递归调用时将子图传给外部调用者构建总的控制流图;
步骤(b)(c)中,普通节点与控制节点中的存储的是源代码的中间代码表示方法,程序的执行可以抽象为内存中变量值的修改,该方法将变量表示为ID符,并压栈,同时再将该变量在符号表中的地址压栈,在后面中间代码执行阶段,便可通过ID标识符获知当前处理为变量,接着通过ID后面的地址能访问到该变量位置,并对变量进行操作,如果是数字,则将NUM符压栈,同时将数字的值压栈,操作符直接压栈,通过这种中间代码表示降低高级程序设计语言的抽象程度,之后创建一个中间代码解释器,便能直接运行设计的中间代码;构建的中间代码解释器其基本原理是使用栈式计算机的机理,通过一个栈与几个暂存器来执行中间代码,并返回中间代码执行结果;
将代码转为中间代码之后,降低了代码抽象程度,在实际的中间代码运行中,采用中缀表达式转后缀表达式的方法,通过栈的数据结构计算中间代码的结果;
(d) 由测试用例自动生成算法生成测试用例;
(e) 由测试用例执行模块获取测试用例,并驱动控制流图中节点的可执行代码的执行,根据可执行代码执行结果计算适应度函数fitness适应值;
(f) 若当前节点不是终止节点,由可执行代码的执行结果选择下一个子节点重复(c),(d),(e)步骤;否则进入下一步;
(g) 当前节点是终止节点,获取fitness适应值的最终结果,并生成该测试用例对应的路径编码;
(h) 判断路径覆盖是否已经达到100%或者运行是否已经超时,若已经达到100%则进入下一步,若已经超时则退出,否则,重复(d),(e),(f),(g)步骤;
(i) 生成包含测试用例对应覆盖的路径,以及路径覆盖率的测试报告。
2.根据权利要求1所述的基于路径覆盖测试用例自动生成的单元测试方法,其特征在于:步骤(b)(c)中,对源代码进行词法分析与语法分析,生成源代码的对应的控制流图(CFG),通过循环、分支、顺序结构能表示任何可执行代码的结构,所以将顺序执行代码转化为控制流图中的顺序节点,其中包含着源代码中顺序结构代码的中间表示代码,用栈存储相关代码信息,将分支结构与循环结构通过构建图的分支节点与局部回路形式将分支与循环结构,在图中实例化。
3.根据权利要求1所述的基于路径覆盖测试用例自动生成的单元测试方法,其特征在于:步骤(c)中,设计一套基于栈式计算机的中间代码指令,将操作符转换为对应的运算指令,增加PUSH,POP,MOV的操作指令与增加ID,NUM,STR的标识指令;用以将高级程序设计语言进行转化生成中间代码,通过中间代码的执行来模拟程序的执行。
4.根据权利要求1所述的基于路径覆盖测试用例自动生成的单元测试方法,其特征在于:步骤(b)(c)中,在语法分析过程中,采用递归下降的分析方法将源代码进行语法分析,从而辅助控制流图的构建,通过步骤(b)(c) ***性地根据测试用例自动生成算法的需求构建源程序解析生成控制流图,从而使控制流图生成自动化生产。
5.根据权利要求1所述基于路径覆盖测试用例自动生成的单元测试方法,其特征在于:步骤(e)中,生成的控制流图是可驱动性的,即该控制流图可以根据生成的测试用例自动执行节点中的可执行代码,再根据代码执行结果,自动选择下一节点,实现了控制流图中的路径自动生成。
6.根据权利要求1所述的基于路径覆盖测试用例自动生成的单元测试方法,其特征在于:步骤(e)中,控制流图中节点里的中间代码在执行过程中,在中间代码解释器访问符号表的过程中,当前符号若被访问,则将当前符号记录与符号表中前一个符号的记录进行交换,提高符号表中符号被命中的概率,减少符号命中过程中所花费的时间。
7.根据权利要求1所述基于路径覆盖测试用例自动生成的单元测试方法,其特征在于:步骤(d)(e)(f)(g)中,测试用例自动生成算法不断地自动生成测试用例,驱动控制流图中路径生成,如果路径覆盖率没有带到100% 或者运行还未超时,则根据上一个测试用例执行结果进行改进继续生成测试用例,不断生成路径。
CN201810501975.0A 2018-05-23 2018-05-23 基于路径覆盖测试用例自动生成的单元测试方法 Active CN108710575B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810501975.0A CN108710575B (zh) 2018-05-23 2018-05-23 基于路径覆盖测试用例自动生成的单元测试方法
US17/058,110 US11720477B2 (en) 2018-05-23 2018-10-31 Unit testing method based on automatic generation of path coverage test cases
PCT/CN2018/113236 WO2019223247A1 (zh) 2018-05-23 2018-10-31 基于路径覆盖测试用例自动生成的单元测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810501975.0A CN108710575B (zh) 2018-05-23 2018-05-23 基于路径覆盖测试用例自动生成的单元测试方法

Publications (2)

Publication Number Publication Date
CN108710575A CN108710575A (zh) 2018-10-26
CN108710575B true CN108710575B (zh) 2020-11-24

Family

ID=63869344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810501975.0A Active CN108710575B (zh) 2018-05-23 2018-05-23 基于路径覆盖测试用例自动生成的单元测试方法

Country Status (3)

Country Link
US (1) US11720477B2 (zh)
CN (1) CN108710575B (zh)
WO (1) WO2019223247A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710575B (zh) * 2018-05-23 2020-11-24 华南理工大学 基于路径覆盖测试用例自动生成的单元测试方法
CN110543421B (zh) * 2019-08-31 2022-03-29 华南理工大学 基于测试用例自动生成算法的单元测试自动执行方法
US11461508B2 (en) * 2020-05-28 2022-10-04 Izuma Tech, Inc. Memory protection unit boundary partitioning based on compiled software objects
CN111694754B (zh) * 2020-07-30 2023-04-07 抖音视界有限公司 应用程序的测试方法、装置、电子设备及计算机介质
CN113760700A (zh) * 2020-08-06 2021-12-07 北京京东振世信息技术有限公司 程序死循环检测方法、装置、电子设备及存储介质
CN112380120B (zh) * 2020-11-13 2022-06-10 华南理工大学 单元测试代码结构自动解析与路径分析方法
CN112486808B (zh) * 2020-11-20 2024-04-16 中国人寿保险股份有限公司 一种***测试方法、装置、电子设备及存储介质
CN112527587B (zh) * 2020-12-03 2023-04-18 深圳大普微电子科技有限公司 一种验证进度确定方法、装置、设备及可读存储介质
CN112464502B (zh) * 2020-12-28 2022-02-01 芯天下技术股份有限公司 优化加快存储器仿真验证方法、装置、存储介质和终端
CN113419955B (zh) * 2021-06-25 2023-06-02 展讯通信(上海)有限公司 软件版本自动测试***、方法、介质及设备
CN113419964B (zh) * 2021-07-14 2022-07-15 上海浦东发展银行股份有限公司 一种测试案例生成方法、装置、计算机设备及存储介质
CN113886245A (zh) * 2021-09-30 2022-01-04 平安普惠企业管理有限公司 基于人工智能的***验收方法、装置、计算机设备和介质
CN114064453B (zh) * 2021-10-12 2023-04-07 华南理工大学 基于聚类和进化算法的软件测试用例自动生成方法
WO2023060594A1 (en) * 2021-10-15 2023-04-20 Intel Corporation A concept for generating a test specification
CN114490339B (zh) * 2021-12-30 2024-05-31 天津大学 一种基于搜索测试的智能种子策略方法
CN114491424B (zh) * 2021-12-31 2024-05-03 西安电子科技大学 基于模糊测试的二进制代码裁剪方法
CN114416570B (zh) * 2022-01-20 2024-05-28 哈尔滨工业大学 基于加权软件行为图的等价变异体检测方法
CN114238154B (zh) * 2022-02-24 2022-05-06 湖南泛联新安信息科技有限公司 一种符号执行方法、单元测试方法、电子设备及存储介质
CN115576848B (zh) * 2022-11-10 2023-04-07 江西财经大学 结合关键边概率与路径层接近度的多路径覆盖测试方法
CN116048958B (zh) * 2022-11-17 2023-12-01 中山大学 医疗机器人控制软件测试数据的生成方法、注入方法
CN115576854B (zh) * 2022-11-25 2023-03-28 微科智检(佛山市)科技有限公司 一种安卓自动化单元测试方法
CN115794658B (zh) * 2023-01-09 2023-05-30 国网区块链科技(北京)有限公司 一种区块链的模糊测试方法及***
CN116302971A (zh) * 2023-02-07 2023-06-23 北京大学 一种针对可编程数据平面可扩展的测试生成方法
CN116302994B (zh) * 2023-02-28 2023-10-10 浙江大学 一种程序路径的层次化匹配方法、装置、设备及存储介质
CN116010291A (zh) * 2023-03-28 2023-04-25 江西财经大学 基于均衡优化理论与灰色预测模型的多路径覆盖测试方法
CN116431522A (zh) * 2023-06-12 2023-07-14 天翼云科技有限公司 一种低代码对象存储网关自动化测试方法及***
CN116932416B (zh) * 2023-09-15 2023-12-22 北京华云安信息技术有限公司 基于敏感函数的模糊测试方法、装置、设备以及存储介质
CN117194731B (zh) * 2023-11-06 2024-01-26 中国西安卫星测控中心 一种基于有向带环图的测控流程自动化调度方法
CN117520191B (zh) * 2023-11-27 2024-06-21 浙江大学 一种基于程序路径的测试完备性检查方法、设备及存储介质
CN117851254A (zh) * 2024-01-09 2024-04-09 浙江大学 一种基于符号执行和路径数缩减的mc/dc覆盖用例生成方法
CN117891733A (zh) * 2024-01-17 2024-04-16 南京数睿数据科技有限公司 测试用例应用程序测试方法、装置、电子设备和介质
CN117951712A (zh) * 2024-01-23 2024-04-30 烟台大学 基于静态分析与模糊测试结合的智能合约漏洞检测方法
CN117632770B (zh) * 2024-01-25 2024-04-19 江西财经大学 一种多路径覆盖测试用例生成方法和***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419728A (zh) * 2011-11-01 2012-04-18 北京邮电大学 基于覆盖率量化指标确定软件测试过程充分性的方法
CN102708053A (zh) * 2012-04-27 2012-10-03 北京邮电大学 程序路径中确定函数调用的上下文环境影响的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878054A (en) * 1995-09-11 1999-03-02 Digital Equipment Corporation Method and apparatus for test data generation
US5805795A (en) * 1996-01-05 1998-09-08 Sun Microsystems, Inc. Method and computer program product for generating a computer program product test that includes an optimized set of computer program product test cases, and method for selecting same
US7665072B2 (en) * 2005-04-21 2010-02-16 Microsoft Corporation Generating test cases for software with complex preconditions
AU2007299571B2 (en) * 2006-09-20 2013-09-12 National Ict Australia Limited Generating a transition system for use with model checking
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成***
CN102323906B (zh) * 2011-09-08 2014-01-08 哈尔滨工程大学 一种基于遗传算法的mc/dc测试数据自动生成方法
US8966457B2 (en) * 2011-11-15 2015-02-24 Global Supercomputing Corporation Method and system for converting a single-threaded software program into an application-specific supercomputer
US9559928B1 (en) * 2013-05-03 2017-01-31 Amazon Technologies, Inc. Integrated test coverage measurement in distributed systems
US9619375B2 (en) * 2014-05-23 2017-04-11 Carnegie Mellon University Methods and systems for automatically testing software
US9329974B2 (en) * 2014-06-26 2016-05-03 Intel Corporation Technologies for determining binary loop trip count using dynamic binary instrumentation
CN104063325B (zh) * 2014-07-11 2016-10-26 电子科技大学 一种针对嵌入式软件的测试用例自动化生成装置及其方法
US9928156B2 (en) * 2015-10-23 2018-03-27 Microsoft Technology Licensing, Llc. Missing include suggestions for external files
US10545739B2 (en) * 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
CN107590073B (zh) * 2017-08-30 2021-03-30 华南理工大学 基于路径覆盖软件测试的测试用例自动生成方法
CN108519944B (zh) * 2018-03-07 2019-04-05 北京航空航天大学 一种基于噪声共振的软件加速测试技术的构建方法
CN108710575B (zh) 2018-05-23 2020-11-24 华南理工大学 基于路径覆盖测试用例自动生成的单元测试方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419728A (zh) * 2011-11-01 2012-04-18 北京邮电大学 基于覆盖率量化指标确定软件测试过程充分性的方法
CN102708053A (zh) * 2012-04-27 2012-10-03 北京邮电大学 程序路径中确定函数调用的上下文环境影响的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于节点概率的路径覆盖测试数据进化生成;夏春艳等;《软件学报》;20160113;第802-813页 *

Also Published As

Publication number Publication date
CN108710575A (zh) 2018-10-26
US20210209008A1 (en) 2021-07-08
US11720477B2 (en) 2023-08-08
WO2019223247A1 (zh) 2019-11-28

Similar Documents

Publication Publication Date Title
CN108710575B (zh) 基于路径覆盖测试用例自动生成的单元测试方法
CN109739755B (zh) 一种基于程序追踪和混合执行的模糊测试***
CN110543421B (zh) 基于测试用例自动生成算法的单元测试自动执行方法
US8898647B2 (en) Method and apparatus for test coverage analysis
Bertolino et al. Automatic generation of path covers based on the control flow analysis of computer programs
US5761408A (en) Method and system for generating a computer program test suite using dynamic symbolic execution
US8291399B2 (en) Off-line program analysis and run-time instrumentation
US8739145B2 (en) Super nested block method to minimize coverage testing overhead
EP0428560A1 (en) Machine process for translating programs in binary machine language into another binary machine language
US20100162217A1 (en) Debugging System Using Static Analysis
CN108763064B (zh) 一种基于黑盒函数与机器学习的代码测试生成方法和装置
US8752007B2 (en) Automatic generation of run-time instrumenter
CN111026660A (zh) 一种基于专家***知识库的渗透测试方法
Zhang SymPas: symbolic program slicing
CN104750608A (zh) 一种程序中基于动态符号执行的自动错误定位方法
CN113935041A (zh) 面向实时操作***设备的漏洞检测***及方法
WO2002001357A2 (en) A method for allowing execution management of optimized code
Alalfi et al. Automating coverage metrics for dynamic web applications
CN115617410B (zh) 驱动接口识别方法、装置、设备及存储介质
CN115858404A (zh) 一种基于eda的图形用户界面的测试***
CN109002723A (zh) 一种分段式符号执行方法
Gerasimov et al. Reachability confirmation of statically detected defects using dynamic analysis
CN111221731B (zh) 一种快速获取到达程序指定点测试用例的方法
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
CN109977019B (zh) 一种基于增量采样的编译器优化序列测试方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220523

Address after: 510640 No. five, 381 mountain road, Guangzhou, Guangdong, Tianhe District

Patentee after: SOUTH CHINA University OF TECHNOLOGY

Patentee after: BEIMING SOFTWARE Co.,Ltd.

Address before: 510640 No. five, 381 mountain road, Guangzhou, Guangdong, Tianhe District

Patentee before: SOUTH CHINA University OF TECHNOLOGY

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181026

Assignee: Huizhou TCL Yunchuang Technology Co.,Ltd.

Assignor: SOUTH CHINA University OF TECHNOLOGY

Contract record no.: X2022440000252

Denomination of invention: A unit test method based on automatic generation of path coverage test cases

Granted publication date: 20201124

License type: Common License

Record date: 20221021

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181026

Assignee: BEIMING SOFTWARE Co.,Ltd.

Assignor: SOUTH CHINA University OF TECHNOLOGY

Contract record no.: X2022980018740

Denomination of invention: A unit test method based on automatic generation of path coverage test cases

Granted publication date: 20201124

License type: Common License

Record date: 20221025

EE01 Entry into force of recordation of patent licensing contract