CN102799517B - 一种快速的循环扩展检测方法 - Google Patents

一种快速的循环扩展检测方法 Download PDF

Info

Publication number
CN102799517B
CN102799517B CN201110137793.8A CN201110137793A CN102799517B CN 102799517 B CN102799517 B CN 102799517B CN 201110137793 A CN201110137793 A CN 201110137793A CN 102799517 B CN102799517 B CN 102799517B
Authority
CN
China
Prior art keywords
path
state
list
line number
circulation
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
Application number
CN201110137793.8A
Other languages
English (en)
Other versions
CN102799517A (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201110137793.8A priority Critical patent/CN102799517B/zh
Publication of CN102799517A publication Critical patent/CN102799517A/zh
Application granted granted Critical
Publication of CN102799517B publication Critical patent/CN102799517B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种快速的循环扩展检测方法,属于软件模型检测技术领域。本方法为:1)限定测试空间中各个变量的取值范围,并将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态;2)随机挑选一个未检测的状态s,调用被测程序,记录该状态s经过被测程序的执行路径p以及动态执行信息;3)根据动态执行信息,依次计算并检测执行路径p的循环扩展相似路径p’,检查路径p’的路径约束条件表示的所有状态是否正确;如果正确则将这些通过检测的状态从测试空间中裁剪掉;如果未通过检测,则打印出错状态并给出反例;4)迭代检查测试空间中的所有状态。本方法减少了执行的测试用例个数,加快检测速度。

Description

一种快速的循环扩展检测方法
技术领域
本发明涉及软件模型检测技术以及状态空间归约技术,针对含有关于聚合类型的循环的data-based程序的验证空间爆炸问题,提出了一种新的循环扩展的检测方法。
背景技术
模型检测技术是一种验证系统的有限状态空间是否满足正确属性的方法。传统的模型检测技术从被测系统的初始状态出发,产生并验证该初始状态的所有后继状态是否满足某个给定的正确或者安全属性。目前已提出很多针对状态爆炸问题的软件模型检测技术以及状态归约技术(参考文献:Chaki,S.,E.Clarke,et al.(2003).Modular verification of software componentsin C.Software Engineering,2003.Proceedings.25th International Conference on.;文献:Henzinger,T.A.,R.Jhala,et al.(2002).Lazy abstraction.Proceedings of the 29th ACM SIGPLAN-SIGACT symposium onPrinciples of programming languages.Portland,Oregon,ACM:58-70.;文献:Corbett,J.C.,M.B.Dwyer,etal.(2000).Bandera:extracting finite-state models from Java source code.Software Engineering,2000.Proceedings of the 2000 International Conference on.),例如偏序规约技术以及谓词抽象技术,然而这些技术主要用于检测control-based的程序,而不能有效的检测data-based的程序。data-based的程序通常有非常庞大(通常是无限的)的测试空间,虽然小范围假设(small scopehypothesis)理论的验证,可以将测试空间缩小到一个限定的有限空间内,但是这个空间仍然非常大。目前存在的一些针对data-based程序的模型检测技术,如Korat产生并验证限定空间中的每个合法(满足某个给定的前置条件)的状态,然而这样依次独立检查每个状态的方法往往是非常低效的(参考文献:Boyapati,C.,S.Khurshid,et al.(2002).Korat:automated testingbased on Java predicates.Proceedings of the 2002 ACM SIGSOFT international symposium onSoftware testing and analysis.Roma,Italy,ACM:123-133.)。Glass Box技术是另一种针对data-based程序的模型检测技术(参考文献:Darga,P.T.and C.Boyapati(2006).Efficient software modelchecking of data structure properties.Proceedings of the 21st annual ACM SIGPLAN conference onObject-oriented programming systems,languages,and applications.Portland,Oregon,USA,ACM:363-382.),它利用了测试空间中状态的相似性,同时检测相似状态(而不是单独的检测每个状态)。ModuleGlass Box技术(参考文献:Roberson,M.and C.Boyapati(2010).Efficient modular glass box softwaremodel checking.Proceedings of the ACM international conference on Object oriented programming systemslanguages and applications.Reno/Tahoe,Nevada,USA,ACM:4-21.)利用执行路径信息来寻找相似状态,该方法能找到更多的相似状态。然而我们观察到,很多数据结构的方法中都包含有关于聚合类型的循环,而这些循环是导致测试用例和检测时间增多的一个主要原因。目前已有的模型检测方法不能有效的检测这类程序,这就使得提出一种有效的针对含有聚合类型的循环结构的程序的模型检测方法尤为重要。
发明内容
针对现有技术存在的问题,本发明的目的在于提出一种检测含有关于聚合类型的循环(以下均简称循环)的程序的检测方法,以快速规约测试状态空间。本发明以检测含循环的程序为分析对象,公开了一种快速的循环扩展检测方法。与已有的模型检测方法相比,该方法能在更短的时间内显示检测更少的状态来检测含有循环的程序的性质。
为了验证某个程序的实现是否满足某个给定的正确属性,本方法检测被测程序是否在测试空间中的所有状态上的行为都表现正确。被测程序的合法前置状态是指满足被测程序的前置条件的状态,被测程序的合法后置状态是指满足被测程序的后置条件的状态。一个状态通过检测,当且仅当被测程序在该状态上的行为表现正确,也就是基于该状态执行被测程序后的后置状态是满足后置条件的合法后置状态。本方法只考虑限定的测试空间中的所有满足前置条件的状态。因此本方法首先初始化测试空间为被测程序的限定范围内所有满足前置条件的状态;然后从测试空间中随机挑选一个未检测的状态,并基于该状态调用被测程序,在程序的动态执行过程中收集动态执行信息以及路径信息;然后分析收集到的动态执行信息,依次静态计算刚收集的执行路径的循环扩展相似的路径,并执行静态分析检查是否所有经过该循环扩展相似路径的状态的正确性;将所有通过检测的状态从测试空间中裁剪掉;如果存在某个状态未通过检测,则表明被测程序的实现中存在错误,此时本方法打印出错,并给出反例;迭代执行这个检查过程,直到检测完测试空间中的所有状态。最终本方法验证被测程序的实现满足所检查的属性,或者给出反例集合以发现存在的错误。
为了达到上述目的,本发明采用的技术方案主要包含了动态和静态分析相结合的方法来标识状态以及检测被标识的状态的正确性,该方法包含以下几个步骤:
1a)限定测试空间中的每个变量的取值范围,并将测试空间的状态初始化为限定范围内的所有满足被测程序前置条件的状态,进入步骤1b);
1b)判断测试空间中是否存在未检测的状态,如果没有则检测结束;否则进入步骤1c);
1c)挑选一个未检测的状态s,基于状态s执行被测程序,同时符号执行(symbolicexecution)(参考文献:J.C.King.Symbolic execution and program testing.Commun.ACM,19(7):385-394,1976.)被测程序来收集该状态经过被测程序的路径p所经过的程序分支约束条件信息以及其他动态执行信息,进入步骤1d;
1d)分析收集到的动态执行信息,依次检测路径p的所有循环相似扩展路径p’,然后返回步骤1b)
对路径p的每条循环扩展相似路径p’,计算p’的路径约束(是指路径p’经过的所有程序分支约束条件的交运算),满足p’的路径约束的所有状态肯定经过被测程序的路径p’,本方法执行静态分析同时检查这些状态的正确性,如果所有状态都通过检测,则可以安全的将路径p’的路径约束表示的状态从测试空间中裁剪掉而不必执行显示执行测试用例来检测这些状态;如果存在未通过检测的状态,本方法打印出错信息,并给出反例。
如果基于状态s执行被测程序得到执行路径p,则可以说状态s经过路径p,而路径p标识了状态s。通过上述技术方案可以看出,由于本发明在每次调用被测程序时,都静态的构造与前一个执行路径循环扩展相似的所有路径,每条循环扩展相似路经的路径约束都表示测试空间中的一个状态集合,本方法依次静态检查这些状态集合(而不是显示检测这些状态),在这些状态集合中的所有状态都通过检查的时候,本方法将其从测试空间中裁剪掉。
与现有技术相比,本发明的积极效果为:
跟其他data-based的模型检测工具和方法相比,比如Korat与Glass Box模型检测方法,本方法通过静态的检测更多的状态来减少显示检测的状态数,进而减少了执行的测试用例个数,加快检测速度。
附图说明
图1是本方法检测算法的流程图;
图2是收集动态执行信息流程图;
图3是计算循环相似路径p’的行号列表流程图;
图4是静态构造循环扩展相似路径p’的路径约束和经过路径p’后的后置状态流程图;
图5是静态检测经过路径p’的所有状态流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作更进一步的说明:
本方法是检测含有关于聚合类型的循环的数据结构方法的模型检测方法。如图1所示,本方法不断迭代检测步骤,来检查整个测试空间,直到迭代检查完测试空间中的所有操作为止。该检测算法的伪代码描述如下所示:
为了更清楚地理解本发明,将本方案的具体实施过程描述如下:
(1)初始化测试空间S;
本方法首先限定测试空间中的各个变量的取值范围,并初始化测试空间中的状态为限定测试空间中的所有满足被测程序的前置条件的状态。为了能有效的管理测试空间,本方法用一种增量式求解器,YICES,来管理(包括从测试空间中随机挑选一个未检测的状态,删除一个或者多个状态等操作)测试空间。本方法将被测程序的前置条件转换为一个求解器YICES可接收的公式,并将该公式加入求解器YICES中,以使求解器产生的所有解都能编码为满足被测程序的前置条件的状态。
(2)如果测试空间S非空,则从测试空间S中随机选择一个未检测的状态s进入步骤(3),否则结束;
如果管理测试空间的求解器还能提供一组对测试空间中的变量的赋值,则表明测试空间S非空,此时本方法从求解器获取一组对测试空间中的变量的赋值,并将该组赋值编码为下一个检查状态s;如果求解器不能提供一组对测试空间中的变量的赋值,则表明已检测完所有状态,并且没有发现被测程序中的任何错误。
(3)基于状态s执行被测程序,并同时符号执行该程序收集执行路径p(为了便于表示,
每条路径用该路径经过的行号序列来表示)的路径分支约束信息,以及其他动态执行信息;
在步骤(2)中选择的未检测的状态s上执行被测程序的过程中,本方法在动态执行过程中自动收集其路径分支约束信息以及其他动态执行信息。该方法收集的动态信息包括以下几个方面:执行过程中遇到的路径分支约束条件(例如:执行语句if(a>b)时,如果该条件成立,那么记录路径条件a>b),执行语句的effect rules(effect rule是一个三元组(ln,oldValue,newValue),该三元组表示行号为ln的语句将oldValue变量的符号值改变为newValue的符号值),以及此次执行经过的所有循环子路径(是完整路径的行号序列的一部分,且该部分的下一个行号等于该部分的第一个行号,例如在完整路径1,2,3,4,5,6,4,7,8中,4,5,6是一个循环子路径)。图2描述了收集动态执行信息流程图,其具体步骤为:
(3a)用一个列表记录执行路径依次经过的语句行号,并初始化该列表为空,进入步骤3b;
(3b)执行下一条程序语句(设该语句的行号为ln),首先判断行号列表中是否已存在行号ln,是则将行号列表中从ln开始到列表末尾的子列表记录为一个循环子路径,并为该循环子路径分配一个唯一标识,然后将行号列表中的刚发现的循环子路径部分用它的唯一标识来替换,最后将当前执行的语句的行号ln加入行号列表并进入步骤(3c);如果没有发现循环子路径,则将当前执行的行号ln直接加入行号列表,并进入步骤(3c);
(3c)判断当前语句是否为条件分支语句,是则记录该条件分支语句产生的分支条件,然后进入步骤(3d);否则直接进入步骤(3d)
(3d)如果当前语句改变前置状态的某些值或被测程序的某些局部变量,则记录该语句的effect rule,并接着进入步骤(3e);否则直接进入步骤(3e);
(3e)判断此次执行是否结束,如果没有结束则进入步骤(3b),否则进入步骤(3f);
(3f)将整个行号列表记录为一个特殊的循环子路径,称其为top循环子路径,该循环子路径只能循环一次,进入步骤(3g);
(3g)计算每个循环子路径的循环模式(一个循环子路径的循环模式是一个行号列表,该列表记录该循环子路径依次经过的行号或者其他的循环子路径),然后结束。
如果一个循环子路径a连续两次或者多次经过循环子路径b,那么循环子路径a的循环模式中只记录一个而不是多个b。例如循环子路径a为{1,2,3,b,b,b,5,6},那么a连续三次经过循环子路径b,此时a的循环模式为{1,2,3,b,5,6}。
(4)如果存在还未考虑的路径p的循环扩展相似路径(某个路径的循环扩展相似路径是指与该路径以相同的顺序经过相同的循环子路径,但可能经过相同循环子路径不同的次数),则设定还未考虑过的循环子路径的循环次数组合后进入步骤(5),否则进入步骤(2);
如果路径p共有n个循环子路径lb1,...lbn,用t1,..tn分别表示这n个循环子路径在循环扩展相似路径p’中的循环次数,那么每个对t1,...tn的一组赋值就对应着一个p的可能的循环扩展相似路径。在设定好t1...tn的值后进入步骤(5)。
如果所有的循环子路径的循环次数组合都考虑过,则直接进入步骤(2)。
(5)根据步骤(4)的设定,构造路径p的循环扩展相似路径p’;
构造路径p’包括构造路径p’的路径约束条件以及经过路径p’后的后置状态。
本方法首先找出路径p’经过的行号列表,如图3所示。具体来说:根据步骤(4)的设定依次赋值t1,...tn,将ti(1<=i<=n)设定为循环子路径lbi的循环次数,并按照此种设定计算出对应的路径p’经过的行号列表。用一个列表list来记录路径p’依次经过的行号或者循环子路径,并将list初始化为top循环子路径的循环模式;然后依次遍历list中的各个元素e,如果e表示循环子路径lbi,则表示循环子路径lbi在路径p’中的循环次数为ti,因此将lbi的循环模式迭代ti次后得到的列表替换list中的元素e。依次处理完list中的所有元素后,list记录了路径p’依次经过的行号列表。
在得到路径p’经过的行号列表后,本方法构造路径p’的路径约束和经过路径p’后的后置状态,如图4所示。具体步骤为:依次遍历路径p’经过的行号列表,如果行号对应的语句带有effect rule,则根据该effect rule改变前置状态;如果行号对应的语句能产生分支条件,则产生对应的分支条件。当遍历完list中的所有元素时,本方法得到了路径p’的所有分支条件,因此得到了路径p’的路径约束(所有分支条件的交运算得到的约束条件)。为了保证路径p’是一条合法的循环扩展路径,本方法判断路径p’的路径约束是否是可满足的。如果p’的路径约束是不可满足的,则表明p’是一条非法的路径,此时返回步骤(4)。
(6)检查经过路径p’的所有状态,并返回步骤4.
图5描述了本方法静态检测经过路径p’的所有状态的流程图。具体步骤为:
6a)满足路径p’的路径约束的所有状态为经过路径p’的状态,设这个状态集合为S’。
6b)检测路径p’的后置状态是否满足测试程序的后置条件,如果后置状态不满足被测程序的后置条件,则本方法打印错误信息,并给出反例,然后进入步骤(6c);否则直接进入步骤(6c)。
具体来说,本方法检测工具S’->R的合法性,其中S’是表示经过路径p’的所有状态,R表示被测程序的后置条件,该公式成立则表示所有经过路径p’的状态的后置状态都满足后置条件R。为了便于该公式的合法性检测,本方法检测公式~(S’->R)是否有解,如果该公式有解,则表明原公式S’->R不是恒成立,此时存在某个状态未通过检测,因而发现反例。
6c)从测试空间S中裁剪所有经过路径p’的状态集合S’,并返回步骤5a。
从以上的对本方法描述可知,如果本方法在步骤(5d)中给出被测程序的反例,则每个反例发现被测程序中的一个错误,如果在步骤(5d)中未生成任何反例,则表示本方法没有发现被测程序中的任何错误。

Claims (9)

1.一种快速的循环扩展检测方法,其步骤为:
1)限定测试空间中各个变量的取值范围,并将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态;
2)从测试空间中随机挑选一个未检测的状态s,并基于该状态s调用被测程序,记录该状态s经过被测程序的执行路径p,以及动态执行信息;
3)根据所收集的动态执行信息,依次计算并检测执行路径p的循环扩展相似路径p’:执行静态分析,检查路径p’的路径约束条件表示的所有状态是否正确;如果所有状态都通过检测,则将这些通过检测的状态从测试空间中裁剪掉;如果存在某个状态未通过检测,则打印该未通过检测的状态并给出反例;
4)重复步骤2)~3),直到检测完测试空间中的所有状态;
其中,记录所述动态执行信息的方法为:
a)建立并初始化一列表,用于记录执行路径依次经过的语句行号;
b)执行程序的第ln行语句,首先判断行号列表中是否已存在行号ln;如果存在,则将行号列表中从ln开始到列表末尾的子列表记录为一个循环子路径,并为该循环子路径分配一个唯一标识,然后将行号列表中的子列表部分用其唯一标识替换,最后将当前执行语句的行号ln加入行号列表并进入步骤c);如果不存在,则将当前执行的行号ln直接加入行号列表,并进入步骤c);
c)判断当前语句是否为条件分支语句;如果是,则记录该条件分支语句产生的分支条件,然后进入步骤e);否则直接进入步骤d);
d)判断当前语句是否会改变前置状态的某些值或被测程序的某些局部变量;如果是,则用一个effect rule来记录该语句对前置状态产生的影响,然后进入步骤e);否则直接进入步骤e);其中,effect rule是一个三元组(ln,oldValue,newValue),ln为行号、oldValue为修改前的变量值、newValue修改后的变量值;
e)执行下一行语句,直到程序结束,将整个行号列表记录为top循环子路径;执行top循环子路径,计算所有找到的循环子路径的循环模式。
2.如权利要求1所述的方法,其特征在于所述将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态的方法为:将被测程序的前置条件转换为一个求解器YICES可接收的公式,并将该公式加入求解器YICES中,然后将求解器YICES产生的所有解编码为满足被测程序前置条件的限定范围内所有状态。
3.如权利要求1所述的方法,其特征在于所述从测试空间中随机挑选一个未检测的状态s的方法为:利用求解器获取一组对测试空间中的变量的赋值,并将该组赋值编码为状态s。
4.如权利要求1所述的方法,确定是否检测完测试空间中的所有状态的方法为:如果求解器不能提供一组对测试空间中的变量的赋值,则确定已检测完测试空间中的所有状态。
5.如权利要求1所述的方法,其特征在于所述动态执行信息包括:执行过程中遇到的路径条件、语句的effect rule、此次执行经过的所有循环子路径。
6.如权利要求1或5所述的方法,其特征在于所述根据所收集的动态执行信息,依次计算并检测执行路径p的每条循环扩展相似路径p’的方法为:设路径p共有n个循环子路径lb1,…lbn,用t1,..tn分别表示这n个循环子路径的循环次数;对于t1,…tn的每一组赋值对应路径p的一条循环扩展相似路径p’。
7.如权利要求6所述的方法,其特征在于执行路径p的每条循环扩展相似路径p’的计算方法为:用一个列表list来记录路径p’依次经过的行号或者循环子路径,并将list初始化为top循环子路径的循环模式;然后依次遍历list中的各个元素e,如果e表示循环子路径lbi,则将lbi的循环模式迭代ti次后得到的列表替换list中的元素e;依次处理完list中的所有元素后,list记录了路径p’依次经过的所有行号,得到路径p’的行号列表;然后计算路径p’的路径约束和经过路径p’的后置状态。
8.如权利要求7所述方法,其特征在于计算路径p’的路径约束和经过路径p’的后置状态的方法为:依次遍历路径p’经过的行号列表,如果行号对应的语句带有effect rule,则根据该effect rule改变前置状态;如果行号对应的语句能产生分支条件,则产生对应的分支条件;当遍历完list中的所有元素时,得到路径p’的所有分支条件和路径约束。
9.如权利要求6所述的方法,其特征在于检查经过路径p’的状态是否正确的方法为:
a)设满足路径p’的路径约束的所有状态为经过路径p’的状态,设这个状态集合为S’;
b)检测是否所有经过路径S’的所有状态的后置状态都满足测试程序的后置条件,如果有状态未通过检查,则打印错误信息并给出反例,否则,从测试空间中裁剪所有经过路径p’的状态集合S’。
CN201110137793.8A 2011-05-25 2011-05-25 一种快速的循环扩展检测方法 Expired - Fee Related CN102799517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110137793.8A CN102799517B (zh) 2011-05-25 2011-05-25 一种快速的循环扩展检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110137793.8A CN102799517B (zh) 2011-05-25 2011-05-25 一种快速的循环扩展检测方法

Publications (2)

Publication Number Publication Date
CN102799517A CN102799517A (zh) 2012-11-28
CN102799517B true CN102799517B (zh) 2015-03-11

Family

ID=47198630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110137793.8A Expired - Fee Related CN102799517B (zh) 2011-05-25 2011-05-25 一种快速的循环扩展检测方法

Country Status (1)

Country Link
CN (1) CN102799517B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888958B (zh) * 2014-03-26 2017-05-31 南京邮电大学 基于偏序简化算法的无线传感网软件模型优化方法
CN104503837B (zh) * 2015-01-15 2017-10-10 南京大学 基于偏序规约的中断驱动系统有界模型检验方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373506A (zh) * 2008-10-22 2009-02-25 南京大学 一种基于漏洞模型的软件漏洞模型检测方法
CN101894072A (zh) * 2010-07-20 2010-11-24 山东省计算中心 一种模型检测中异常终止的检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888272B2 (ja) * 2007-07-30 2012-02-29 富士通セミコンダクター株式会社 ソフトウェアのシミュレーション方法、ソフトウェアのシミュレーションのためのプログラム、及びソフトウェアのシミュレーション装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373506A (zh) * 2008-10-22 2009-02-25 南京大学 一种基于漏洞模型的软件漏洞模型检测方法
CN101894072A (zh) * 2010-07-20 2010-11-24 山东省计算中心 一种模型检测中异常终止的检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于JPF的软件模型检测分析与应用;尹传文;《万方学位论文》;20100729;正文第2页第3-4段,第6页倒数第1段,第8页倒数第1-2段,第9页倒数第1-3段,第10页倒数第2段,第18页第1段,第21页倒数第1段 *

Also Published As

Publication number Publication date
CN102799517A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN110262972B (zh) 一种面向微服务应用的失效测试工具及方法
CN103036730B (zh) 一种对协议实现进行安全测试的方法及装置
Hooimeijer et al. A decision procedure for subset constraints over regular languages
De Lucia et al. Improving behavioral design pattern detection through model checking
Song et al. Efficient alignment between event logs and process models
CN105868116A (zh) 基于语义变异算子的测试用例生成和优化方法
US20140053134A1 (en) Software regression testing using symbolic execution
CN102521117B (zh) 一种Java异常传播的静态结构抽取方法
CN108628600B (zh) 基于控制流分析的软件动态行为建模方法和装置
CN106294162B (zh) 一种基于数据挖掘的第三方构件安全性测试方法
US20150286555A1 (en) System and method for converting the business processes to test-centric activity diagrams
CN104090798A (zh) 动静态结合的中断驱动程序数据竞争检测方法
CN105159827A (zh) 一种面向gui软件的可靠性加速测试方法
Lednicki et al. Model level worst-case execution time analysis for IEC 61499
Xiang et al. Checking missing-data errors in cyber-physical systems based on the merged process of Petri nets
CN102799517B (zh) 一种快速的循环扩展检测方法
Jia et al. Machine deserves better logging: a log enhancement approach for automatic fault diagnosis
CN113886832A (zh) 智能合约漏洞检测方法、系统、计算机设备和存储介质
Hao et al. Usage-based statistical testing of web applications
CN105630680B (zh) 一种随机测试程序生成方法
Miao et al. A formal specification-based integration testing approach
BELL et al. Model-based mutation testing using pushdown automata
Song et al. Self-healing event logs
Schmerl et al. Using model checking to identify errors in intrusion detection signatures
Jiang et al. An exploitability analysis technique for binary vulnerability based on automatic exception suppression

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

Granted publication date: 20150311

Termination date: 20180525

CF01 Termination of patent right due to non-payment of annual fee