CN112052166A - 一种基于支配关系的测试用例生成方法与装置 - Google Patents

一种基于支配关系的测试用例生成方法与装置 Download PDF

Info

Publication number
CN112052166A
CN112052166A CN202010868410.3A CN202010868410A CN112052166A CN 112052166 A CN112052166 A CN 112052166A CN 202010868410 A CN202010868410 A CN 202010868410A CN 112052166 A CN112052166 A CN 112052166A
Authority
CN
China
Prior art keywords
node
definition
dom
program
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.)
Granted
Application number
CN202010868410.3A
Other languages
English (en)
Other versions
CN112052166B (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.)
Hohai University HHU
Original Assignee
Hohai University HHU
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 Hohai University HHU filed Critical Hohai University HHU
Priority to CN202010868410.3A priority Critical patent/CN112052166B/zh
Publication of CN112052166A publication Critical patent/CN112052166A/zh
Application granted granted Critical
Publication of CN112052166B publication Critical patent/CN112052166B/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Quality & Reliability (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于支配关系的测试用例生成方法与装置,以生成满足all‑uses数据流测试准则的测试用例,包括:基于构建的待测试程序的控制流图CFG模型分析程序的数据流,计算程序中的定义‑使用对;定义基于支配关系的适应度函数,利用面向多目标的遗传算法生成满足all‑uses准则的测试用例集。本发明的有益效果为:面向all‑uses数据流测试准则,提出了有效的测试用例生成方法。定义了基于支配关系的适应度函数,在分析测试用例对定义‑使用对的覆盖程度中考虑了杀死定义的存在可能性,且考虑了定义结点和使用结点在执行路径中的先后顺序,可以更有效地指导遗传算法搜索出输入域内覆盖所有定义‑使用对的测试用例,从而满足all‑uses测试准则。

Description

一种基于支配关系的测试用例生成方法与装置
技术领域
本发明涉及软件测试领域,尤其是一种基于支配关系的测试用例生成方法与装置。
背景技术
软件测试的一项关键工作是针对给定的充分性覆盖准则进行测试用例的设计。尽管all-paths准则是最强的覆盖准则,但它并不能检测程序中所有的缺陷,且当程序中存在循环时有可能存在无限多的路径,这种情况下通过测试覆盖所有路径是很难实现的。程序正确性最基本的要求是,对于任意给定的输入都可以得到期望的输出。输入与输出之间的关联是通过程序中一系列的变量定义和使用关联来实现的,可以认为控制流的设计是为了实现正确的数据流。因此,进行数据流测试是非常重要的。然而,针对数据流准则的测试研究还相对比较少。all-uses准则是一种常用的数据流测试准则,它要求测试用例可以执行覆盖程序中变量的每个定义到它的每个使用的至少一条路径,即要求测试覆盖程序中所有的定义-使用对。
通过定义合适的适应度函数来描述测试用例对测试目标的覆盖程度,测试用例生成问题可以被建模为一个函数优化问题。遗传算法是一种常用的解决方法,其利用适应度函数指导有效输入域内的最优解搜索。现有的适应度函数针对数据流测试目标,可以计算测试用例对测试目标的接近度,进而比较测试用例的好坏。然而该函数认为对于变量的定义-使用对而言,某测试用例的执行路径若覆盖了定义结点和使用结点的所有支配结点,则一定覆盖定义-使用对,忽略了执行路径中杀死定义的存在可能性考虑。另外,该函数没有考虑定义结点和使用结点在执行路径中的先后顺序,导致针对某些测试目标产生不正确的解决方案,使其无法在测试中被覆盖。因此,定义合适的适应度函数非常重要,直接决定遗传算法能否在输入域内搜索出覆盖定义-使用对的有效解。如何定义适应度函数,进而如何采用遗传算法生成满足all-uses准则的测试用例集是我们关注的问题。
发明内容
发明目的:本发明的目的在于提供一种基于支配关系的测试用例生成方法,通过定义合适的适应度函数,指导遗传算法通过搜索生成满足all-uses准则的测试用例集。
技术方案:为实现上述发明目的,本发明提供的一种基于支配关系的测试用例生成方法,包括:基于构建的待测试程序的控制流图CFG模型分析程序的数据流,计算程序中的定义-使用对;定义基于支配关系的适应度函数,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集;其中测试用例x关于变量var的定义-使用对(var,d,u)基于支配关系的适应度函数表示为:
Figure BDA0002650432000000021
其中,p(x)表示测试用例x的执行路径,d、u分别是变量var的定义结点和使用结点;
Figure BDA0002650432000000022
Figure BDA0002650432000000023
Figure BDA0002650432000000024
Figure BDA0002650432000000025
其中,dom(d)是定义结点d的支配结点集,dom(u)是包括使用结点u的支配结点和定义结点d的结点集,cdom(d)和cdom(u)分别是dom(d)和dom(u)中被p(x)覆盖的结点集,fdom(d∨u)是dom(d)和dom(u)的并集中被p(x)覆盖超过1次的结点集,udom(d∨u)是dom(d)和dom(u)的并集中未被p(x)覆盖的结点集;设sp(x)是p(x)中使得定义结点d中的定义保持活性的子路径,pre(x)是p(x)中从开始结点到第一个定义结点d之间的子路径,dom1(u)是定义结点d和使用结点u之间u的支配结点集,dom2(u)是dom(u)中不属于dom1(u)的支配结点集,cdom1(u)是dom1(u)中被子路径sp(x)覆盖的结点集,cdom2(u)是dom2(u)中被子路径pre(x)覆盖的结点集;fdom’(u)是dom1(u)中被子路径sp(x)覆盖超过1次的结点集,udom’(u)是dom1(u)中未被子路径sp(x)覆盖的结点集;α是预设的阈值,0.85≤α≤0.95,max表示对p(x)的多条子路径sp(x)的计算值取最大值。
进一步地,计算p(x)中使得定义结点d中的定义保持活性的子路径sp(x)的方法为:对p(x)中出现的每个定义结点d,从d开始识别下一个对变量var进行定义的结点ni,若不存在这样的结点,则ni是p(x)中的最后一个结点,得到子路径sp(x)=(d,n1,n2,…,ni)。
进一步地,计算程序中定义-使用对的具体步骤包括:
基于CFG模型,利用如下数据流公式,分析各结点的可达定义:
Out(n)=Gen(n)∪(In(n)-Kill(n))
Figure BDA0002650432000000031
其中,In(n)和Out(n)分别表示程序结点n的入口处和出口处可达的变量定义集,Gen(n)和Kill(n)分别表示程序结点n的产生定义集和杀死定义集;若程序结点n定义了变量var,则(var,n)∈Gen(n),若程序中存在另外的结点m定义了变量var,则(var,m)∈Kill(n);pred(n)表示CFG中结点n的前驱结点集合;
基于每个程序结点入口处的可达定义,利用如下公式获取程序中关于变量var的所有定义-使用对(var,n,n’):
du(var,n)={n’|(var,n)∈In(n’)∧var∈use(n’)}
其中,du(var,n)表示使用变量var在结点n处定义值的结点集,∧表示“且”的数学符号;use(n’)=cuse(n’)∪puse(n’),cuse(n’)表示结点n’中计算使用的变量集,puse(n’)表示结点n’中谓词使用的变量集。
进一步地,计算测试用例x关于变量var的定义-使用对(var,d,u)的适应度值的具体步骤包括:
在控制流图CFG中,计算定义结点d和使用结点u的支配结点集dom(d)和dom(u),并将定义结点d加到集合dom(u)中;
对待测试程序进行插装,以记录程序的执行路径,以测试用例x为输入运行待测试程序,获取程序的执行路径p(x);
判定执行路径p(x)中是否包含定义结点d,若不包含,则对执行路径p(x)计算dom(d)和dom(u)被覆盖的结点集cdom(d)和cdom(u),dom(d)和dom(u)中未被覆盖的结点集udom(d∨u),以及dom(d)和dom(u)中被覆盖超过1次的结点集fdom(d∨u),然后利用ft(d,u,x)和CL的公式计算得到适应度值;
若执行路径p(x)中包含定义结点d,计算结点d和u之间属于dom(u)的支配结点dom1(u),dom(u)减去dom1(u)即得到dom2(u);计算p(x)中定义d保持活性的子路径sp(x),以及子路径pre(x);计算dom2(u)中被子路径pre(x)覆盖的结点集cdom2(u),对每条子路径sp(x)计算dom1(u)中被覆盖的结点集cdom1(u),未被覆盖的结点集udom’(u),以及被覆盖超过1次的结点集fdom’(u),然后利用ft'(d,u,x)和CL'的公式计算得到适应度值,并对多条子路径sp(x)的计算值取最大值。
进一步地,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集的方法为:随机生成初始种群作为当前种群,对当前种群中的每个个体解码,作为输入运行插装后的程序获取执行路径,利用适应度函数计算个体对各定义-使用对的适应度值,判断个体是否覆盖某定义-使用对;若还存在未覆盖的定义-使用对或设定的最大迭代次数未达到,则对当前种群进行选择、交叉、变异,得到新的种群,并对新种群中的个体进行判断;在遗传算法的一次迭代中,种群面临的问题目标是覆盖所有待测试的定义-使用对,若某些定义-使用对被该种群中的个体覆盖到,则将它们从待覆盖的定义-使用对集合中删除,如此随着测试用例的生成,待覆盖的目标数量渐减。
基于相同的发明构思,本发明提供的一种基于支配关系的测试用例生成装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于支配关系的测试用例生成方法。
有益效果:与现有技术相比,本发明的有益效果为:面向all-uses数据流测试准则,提出了有效的测试用例生成方法。定义了基于支配关系的适应度函数,在分析测试用例对定义-使用对的覆盖程度中考虑了杀死定义的存在可能性,且考虑了定义结点和使用结点在执行路径中的先后顺序,可以更有效地指导遗传算法搜索出输入域内覆盖所有定义-使用对的测试用例,从而满足all-uses测试准则。
附图说明
图1是本发明实施例的流程示意图。
图2是本发明实施例中计算程序定义-使用对的流程示意图。
图3是本发明实施例中计算测试用例关于定义-使用对的适应度值的流程示意图。
图4是本发明实施例中利用遗传算法生成测试用例的流程示意图。
图5是本发明实施例中示例性的example程序的CFG模型示意图。
具体实施方式
如图1所示,本发明实施例面向all-uses数据流测试准则公开的一种基于支配关系的测试用例生成方法,包括如下步骤:
(1)构建程序的控制流图模型CFG;
(2)基于CFG模型分析程序的数据流,计算程序中的定义-使用对;
(3)定义基于支配关系的适应度函数,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集。
如图2所示,步骤(2)中,计算程序中定义-使用对的具体步骤为:
(a)基于CFG模型,利用如下数据流公式,分析各结点的可达定义:
Out(n)=Gen(n)∪(In(n)-Kill(n))
Figure BDA0002650432000000051
其中,In(n)和Out(n)分别表示程序结点n的入口处和出口处可达的变量定义集,Gen(n)和Kill(n)分别表示程序结点n的产生定义集和杀死定义集。若程序结点n定义了变量var,则(var,n)∈Gen(n)。若程序中存在另外的结点m定义了变量var,则(var,m)∈Kill(n)。另外,pred(n)表示CFG中结点n的前驱结点集合。
(b)基于每个程序结点入口处的可达定义,利用如下公式获取程序中关于变量var的所有定义-使用对(var,n,n’):
du(var,n)={n’|(var,n)∈In(n’)∧var∈use(n’)}
其中,du(var,n)表示使用变量var在结点n处定义值的结点集,∧表示“且”的数学符号;use(n’)=cuse(n’)∪puse(n’),cuse(n’)表示结点n’中计算使用的变量集,puse(n’)表示结点n’中谓词使用的变量集。
步骤(3)中,定义了测试用例x关于变量var的定义-使用对(var,d,u)的适应度函数,假设x的执行路径为p(x),则适应度函数如下所示:
Figure BDA0002650432000000061
若定义结点d未被p(x)覆盖,则可以利用如下两个公式计算x对(var,d,u)的适应度:
Figure BDA0002650432000000062
Figure BDA0002650432000000063
其中,对于程序CFG的结点nj,若从开始结点到nj的每条路径都经过结点ni,则称ni是nj的支配结点。dom(d)是定义结点d的支配结点集,dom(u)包括使用结点u的支配结点集和定义结点d,cdom(d)和cdom(u)分别是dom(d)和dom(u)中被p(x)覆盖的结点集,fdom(d∨u)是dom(d)和dom(u)的并集中被p(x)覆盖超过1次的结点集,udom(d∨u)是dom(d)和dom(u)的并集中未被p(x)覆盖的结点集。α是预设的阈值,0.85≤α≤0.95,一般可取值为0.9。
若定义结点d被p(x)覆盖,则可以利用如下两个公式计算x关于定义-使用对(var,d,u)的适应度:
Figure BDA0002650432000000064
Figure BDA0002650432000000065
其中首先需要计算p(x)的子路径,使得定义结点d中的定义保持活性。对p(x)中出现的每个定义结点d,从d开始识别下一个对变量var进行定义的结点ni,若不存在这样的结点,则ni是p(x)中的最后一个结点,得到子路径sp(x)=(d,n1,n2,…,ni)。pre(x)是p(x)中从开始结点到第一个定义结点d之间的子路径。dom1(u)是定义结点d和使用结点u之间u的支配结点集,dom2(u)是dom(u)中不属于dom1(u)的支配结点集,cdom1(u)是dom1(u)中被子路径sp(x)覆盖的结点集,cdom2(u)是dom2(u)中被子路径pre(x)覆盖的结点集。fdom’(u)是dom1(u)中被子路径sp(x)覆盖超过1次的结点集,udom’(u)是dom1(u)中未被子路径sp(x)覆盖的结点集。
如图3所示,测试用例x关于定义-使用对(var,d,u)的适应度评估包括以下4个步骤:
(a)在控制流图CFG中,计算定义结点d和使用结点u的支配结点集dom(d)和dom(u),并将结点d加到集合dom(u)中。
(b)对待测程序进行插装,以记录程序的执行路径。以测试用例x为输入运行待测试程序,获取程序的执行路径p(x)。
(c)判定执行路径p(x)中是否包含d结点,若不包含,则对执行路径p(x)计算dom(d)和dom(u)被覆盖的结点集cdom(d)和cdom(u),dom(d)和dom(u)中未被覆盖的结点集udom(d∨u),以及dom(d)和dom(u)中被覆盖超过1次的结点集fdom(d∨u)。然后利用ft(d,u,x)和CL的公式计算适应度值。
(d)若执行路径p(x)中包含d结点,计算结点d和u之间属于dom(u)的支配结点dom1(u),dom(u)减去dom1(u)即得到dom2(u)。。计算p(x)中定义d保持活性的子路径sp(x),以及子路径pre(x)。计算dom2(u)中被子路径pre(x)覆盖的结点集cdom2(u),对每条子路径sp(x)计算dom1(u)中被覆盖的结点集cdom1(u),未被的结点集udom’(u),以及被覆盖超过1次的结点集fdom’(u)。然后利用ft'(d,u,x)和CL'的公式计算适应度值,并对多条子路径sp(x)的计算值取最大值。
步骤(3)中利用面向多目标的遗传算法生成满足all-uses准则的测试用例集的具体方法如图4所示。首先随机生成初始种群作为当前种群,对当前种群中的每个个体解码,作为输入运行插装后的程序获取执行路径,利用适应度函数计算个体对各定义-使用对的适应度值,判断个体是否覆盖某定义-使用对,若测试用例x关于定义-使用对(var,d,u)的适应度值为1,则表示测试用例x覆盖了定义-使用对(var,d,u)。若还存在未覆盖的定义-使用对或设定的最大迭代次数未达到,则对当前种群进行选择、交叉、变异,得到新的种群,并采用如上方法对新种群中的个体进行判断。该算法的一次迭代中,种群面临的问题目标是覆盖所有待测试的定义-使用对,若某些定义-使用对被该种群中的个体覆盖到,则将它们从待覆盖的定义-使用对集合中删除,如此随着测试用例的生成,待覆盖的目标数量渐减。
基于相同的发明构思,本发明实施例公开的一种基于支配关系的测试用例生成装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的基于支配关系的测试用例生成方法。
为了方便描述,我们面向all-uses数据流测试准则,利用基于支配关系的测试用例生成方法为Java程序example生成测试用例。流程如下所示:
(1)构建程序的控制流图模型CFG。
(2)基于CFG模型分析程序的数据流,计算程序中的定义-使用对(具体见图2)。
(3)定义基于支配关系的适应度函数,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集(具体见图3,4)。
通过上述步骤,图5显示了example程序及其对应的CFG模型,表1显示了程序中的定义-使用对如,表2显示了满足all-uses准则的测试用例集。
表1程序中的定义-使用对
Figure BDA0002650432000000081
表2满足all-uses准则的测试用例集
Figure BDA0002650432000000082
尽管本发明就优选实施方式进行了示意和描述,但本领域的技术人员应当理解,只要不超出本发明的权利要求所限定的范围,可以对本发明进行各种变化和修改。

Claims (6)

1.一种基于支配关系的测试用例生成方法,其特征在于,所述方法包括:
基于构建的待测试程序的控制流图CFG模型分析程序的数据流,计算程序中的定义-使用对;
定义基于支配关系的适应度函数,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集;其中测试用例x关于变量var的定义-使用对(var,d,u)基于支配关系的适应度函数表示为:
Figure FDA0002650431990000011
其中,p(x)表示测试用例x的执行路径,d、u分别是变量var的定义结点和使用结点;
Figure FDA0002650431990000012
Figure FDA0002650431990000013
Figure FDA0002650431990000014
Figure FDA0002650431990000015
其中,dom(d)是定义结点d的支配结点集,dom(u)是包括使用结点u的支配结点和定义结点d的结点集,cdom(d)和cdom(u)分别是dom(d)和dom(u)中被p(x)覆盖的结点集,fdom(d∨u)是dom(d)和dom(u)的并集中被p(x)覆盖超过1次的结点集,udom(d∨u)是dom(d)和dom(u)的并集中未被p(x)覆盖的结点集;设sp(x)是p(x)中使得定义结点d中的定义保持活性的子路径,pre(x)是p(x)中从开始结点到第一个定义结点d之间的子路径,dom1(u)是定义结点d和使用结点u之间u的支配结点集,dom2(u)是dom(u)中不属于dom1(u)的支配结点集,cdom1(u)是dom1(u)中被子路径sp(x)覆盖的结点集,cdom2(u)是dom2(u)中被子路径pre(x)覆盖的结点集;fdom’(u)是dom1(u)中被子路径sp(x)覆盖超过1次的结点集,udom’(u)是dom1(u)中未被子路径sp(x)覆盖的结点集;α是预设的阈值,0.85≤α≤0.95,max表示对p(x)的多条子路径sp(x)的计算值取最大值。
2.根据权利要求1所述的一种基于支配关系的测试用例生成方法,其特征在于,计算p(x)中使得定义结点d中的定义保持活性的子路径sp(x)的方法为:对p(x)中出现的每个定义结点d,从d开始识别下一个对变量var进行定义的结点ni,若不存在这样的结点,则ni是p(x)中的最后一个结点,得到子路径sp(x)=(d,n1,n2,…,ni)。
3.根据权利要求1所述的一种基于支配关系的测试用例生成方法,其特征在于,计算程序中定义-使用对的具体步骤包括:
基于CFG模型,利用如下数据流公式,分析各结点的可达定义:
Out(n)=Gen(n)∪(In(n)-Kill(n))
Figure FDA0002650431990000021
其中,In(n)和Out(n)分别表示程序结点n的入口处和出口处可达的变量定义集,Gen(n)和Kill(n)分别表示程序结点n的产生定义集和杀死定义集;若程序结点n定义了变量var,则(var,n)∈Gen(n),若程序中存在另外的结点m定义了变量var,则(var,m)∈Kill(n);pred(n)表示CFG中结点n的前驱结点集合;
基于每个程序结点入口处的可达定义,利用如下公式获取程序中关于变量var的所有定义-使用对(var,n,n’):
du(var,n)={n’|(var,n)∈In(n’)∧var∈use(n’)}
其中,du(var,n)表示使用变量var在结点n处定义值的结点集,∧表示“且”的数学符号;use(n’)=cuse(n’)∪puse(n’),cuse(n’)表示结点n’中计算使用的变量集,puse(n’)表示结点n’中谓词使用的变量集。
4.根据权利要求1所述的一种基于支配关系的测试用例生成方法,其特征在于,计算测试用例x关于变量var的定义-使用对(var,d,u)的适应度值的具体步骤包括:
在控制流图CFG中,计算定义结点d和使用结点u的支配结点集dom(d)和dom(u),并将定义结点d加到集合dom(u)中;
对待测试程序进行插装,以记录程序的执行路径,以测试用例x为输入运行待测试程序,获取程序的执行路径p(x);
判定执行路径p(x)中是否包含定义结点d,若不包含,则对执行路径p(x)计算dom(d)和dom(u)被覆盖的结点集cdom(d)和cdom(u),dom(d)和dom(u)中未被覆盖的结点集udom(d∨u),以及dom(d)和dom(u)中被覆盖超过1次的结点集fdom(d∨u),然后利用ft(d,u,x)和CL的公式计算得到适应度值;
若执行路径p(x)中包含定义结点d,计算结点d和u之间属于dom(u)的支配结点dom1(u),dom(u)减去dom1(u)即得到dom2(u);计算p(x)中定义d保持活性的子路径sp(x),以及子路径pre(x);计算dom2(u)中被子路径pre(x)覆盖的结点集cdom2(u),对每条子路径sp(x)计算dom1(u)中被覆盖的结点集cdom1(u),未被覆盖的结点集udom’(u),以及被覆盖超过1次的结点集fdom’(u),然后利用ft'(d,u,x)和CL'的公式计算得到适应度值,并对多条子路径sp(x)的计算值取最大值。
5.根据权利要求1所述的一种基于支配关系的测试用例生成方法,其特征在于,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集的方法为:随机生成初始种群作为当前种群,对当前种群中的每个个体解码,作为输入运行插装后的程序获取执行路径,利用适应度函数计算个体对各定义-使用对的适应度值,判断个体是否覆盖某定义-使用对;若还存在未覆盖的定义-使用对或设定的最大迭代次数未达到,则对当前种群进行选择、交叉、变异,得到新的种群,并对新种群中的个体进行判断;在遗传算法的一次迭代中,种群面临的问题目标是覆盖所有待测试的定义-使用对,若某些定义-使用对被该种群中的个体覆盖到,则将它们从待覆盖的定义-使用对集合中删除,如此随着测试用例的生成,待覆盖的目标数量渐减。
6.一种基于支配关系的测试用例生成装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现根据权利要求1-5任一项所述的基于支配关系的测试用例生成方法。
CN202010868410.3A 2020-08-26 2020-08-26 一种基于支配关系的测试用例生成方法与装置 Active CN112052166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010868410.3A CN112052166B (zh) 2020-08-26 2020-08-26 一种基于支配关系的测试用例生成方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010868410.3A CN112052166B (zh) 2020-08-26 2020-08-26 一种基于支配关系的测试用例生成方法与装置

Publications (2)

Publication Number Publication Date
CN112052166A true CN112052166A (zh) 2020-12-08
CN112052166B CN112052166B (zh) 2021-05-18

Family

ID=73600458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010868410.3A Active CN112052166B (zh) 2020-08-26 2020-08-26 一种基于支配关系的测试用例生成方法与装置

Country Status (1)

Country Link
CN (1) CN112052166B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617700A (zh) * 2022-12-19 2023-01-17 华东交通大学 基于关系分析的测试用例设计、生成方法及系统
CN116048958A (zh) * 2022-11-17 2023-05-02 中山大学 医疗机器人控制软件测试数据的生成方法、注入方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593287A (zh) * 2013-10-30 2014-02-19 北京信息控制研究所 一种基于遗传算法的数据流测试用例自动生成方法
US20140130006A1 (en) * 2012-11-06 2014-05-08 Daegu National University Of Education Industry- Academic Cooperation Foundation Apparatus and method of generating multi-level test case from unified modeling language sequence diagram based on multiple condition control flow graph
US20150261657A1 (en) * 2014-03-13 2015-09-17 Infosys Limited Methods for generating test suites and devices thereof
CN105868116A (zh) * 2016-04-15 2016-08-17 西北工业大学 基于语义变异算子的测试用例生成和优化方法
CN107463498A (zh) * 2017-08-02 2017-12-12 河海大学 一种基于bpel组合服务的数据流分析方法
CN108509335A (zh) * 2018-01-31 2018-09-07 浙江理工大学 基于遗传算法优化的软件测试数据生成方法
CN109117364A (zh) * 2018-07-03 2019-01-01 中国科学院信息工程研究所 一种面向目标的测试用例生成方法及系统
CN110096439A (zh) * 2019-04-26 2019-08-06 河海大学 一种面向solidity语言的测试用例生成方法
CN110377511A (zh) * 2019-07-11 2019-10-25 河海大学 一种面向数据流的测试用例生成方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140130006A1 (en) * 2012-11-06 2014-05-08 Daegu National University Of Education Industry- Academic Cooperation Foundation Apparatus and method of generating multi-level test case from unified modeling language sequence diagram based on multiple condition control flow graph
CN103593287A (zh) * 2013-10-30 2014-02-19 北京信息控制研究所 一种基于遗传算法的数据流测试用例自动生成方法
US20150261657A1 (en) * 2014-03-13 2015-09-17 Infosys Limited Methods for generating test suites and devices thereof
CN105868116A (zh) * 2016-04-15 2016-08-17 西北工业大学 基于语义变异算子的测试用例生成和优化方法
CN107463498A (zh) * 2017-08-02 2017-12-12 河海大学 一种基于bpel组合服务的数据流分析方法
CN108509335A (zh) * 2018-01-31 2018-09-07 浙江理工大学 基于遗传算法优化的软件测试数据生成方法
CN109117364A (zh) * 2018-07-03 2019-01-01 中国科学院信息工程研究所 一种面向目标的测试用例生成方法及系统
CN110096439A (zh) * 2019-04-26 2019-08-06 河海大学 一种面向solidity语言的测试用例生成方法
CN110377511A (zh) * 2019-07-11 2019-10-25 河海大学 一种面向数据流的测试用例生成方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
AHMED S. GHIDUK 等: "Using Genetic Algorithms to Aid Test-Data Generation for Data-Flow Coverage", 《14TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC"07)》 *
PENGCHENG ZHANG 等: "ADF-GA: Data Flow Criterion Based Test Case Generation for Ethereum Smart Contracts", 《ICSEW"20: PROCEEDINGS OF THE IEEE/ACM 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING WORKSHOPS》 *
张功杰 等: "基于变异分析和集合进化的测试用例生成方法", 《计算机学报》 *
陈洁琼 等: "基于数据流准则的测试用例生成方法", 《计算机科学》 *
马志兵 等: "基于遗传算法的测试用例自动生成技术研究", 《电子技术与软件工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048958A (zh) * 2022-11-17 2023-05-02 中山大学 医疗机器人控制软件测试数据的生成方法、注入方法
CN116048958B (zh) * 2022-11-17 2023-12-01 中山大学 医疗机器人控制软件测试数据的生成方法、注入方法
CN115617700A (zh) * 2022-12-19 2023-01-17 华东交通大学 基于关系分析的测试用例设计、生成方法及系统

Also Published As

Publication number Publication date
CN112052166B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
Baresel et al. Fitness function design to improve evolutionary structural testing
Ben-Gal et al. Efficient construction of decision trees by the dual information distance method
CN112052166B (zh) 一种基于支配关系的测试用例生成方法与装置
Romero et al. Learning hybrid Bayesian networks using mixtures of truncated exponentials
CN111460472A (zh) 一种基于深度学习图网络的加密算法识别方法
CN114626071A (zh) 一种漏洞导向的模糊测试方法、系统和介质
Ledezma et al. GA-stacking: Evolutionary stacked generalization
CN105431825A (zh) 用于计算过程间支配者的系统和/或方法
Sestelo Perez et al. FWDselect: An R package for variable selection in regression models
CN113407425B (zh) 基于BiGAN与OTSU的内部用户行为检测方法
Panigrahi et al. Approximate post-selective inference for regression with the group lasso
CN117633804A (zh) 基于污点动态能量调控分析的电力物联终端漏洞挖掘方法
CN110990834B (zh) 一种android恶意软件的静态检测方法、系统及介质
CN116663018A (zh) 一种基于代码可执行路径的漏洞检测方法及装置
Turlea et al. Generating complex paths for testing from an EFSM
EP4116853A1 (en) Computer-readable recording medium storing evaluation program, evaluation method, and information processing device
JP2020139914A (ja) 物質構造分析装置、方法及びプログラム
Cano et al. Learning recursive probability trees from probabilistic potentials
Rodriguez et al. An IR-based artificial bee colony approach for traceability link recovery
Watson et al. Detecting software code vulnerabilities using 2D convolutional neural networks with program slicing feature maps
Li et al. A new bayesian network structure learning algorithm mechanism based on the decomposability of scoring functions
CN113627513A (zh) 一种训练数据生成方法、系统、电子设备及存储介质
CN115037648B (zh) 基于数据流约简的智能合约测试用例生成方法及系统
CN113408730A (zh) 因果关系生成方法、装置及电子设备
Keil et al. Super learning in the SAS system

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