CN104375942B - 一种面向二进制的混合模糊测试方法 - Google Patents
一种面向二进制的混合模糊测试方法 Download PDFInfo
- Publication number
- CN104375942B CN104375942B CN201410758900.2A CN201410758900A CN104375942B CN 104375942 B CN104375942 B CN 104375942B CN 201410758900 A CN201410758900 A CN 201410758900A CN 104375942 B CN104375942 B CN 104375942B
- Authority
- CN
- China
- Prior art keywords
- test case
- testing
- path
- program
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种面向二进制的混合模糊测试方法,包括:采用模糊测试作为前端处理,其中利用测试用例来驱动被测试程序的执行;采用二进制代码覆盖率监测处理作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试的覆盖率;当计算出的模糊测试的覆盖率不再提高时,执行作为后端处理的符号执行处理,在符号执行处理中生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例,然后将新的测试用例反馈至模糊测试,使得模糊测试利用新的测试用例来驱动被测试程序的执行。
Description
技术领域
本发明涉及计算机技术领域,更具体地说,本发明涉及一种面向二进制的混合模糊测试方法。
背景技术
随着计算机科学技术和互联网技术飞速发展,软件安全问题层出不穷,软件安全一直备受关注。在软件安全性测试领域,模糊测试和符号执行是两种使用较为广泛的测试方法。
模糊测试(Fuzzing)是目前安全性测试领域最常用的技术手段,其基本思想是向目标程序提供大量的畸形输入并监控目标系统的异常结果来发现软件缺陷。模糊测试的基本流程为:
1)确定待测试的目标程序,分析程序输入数据的基本结构信息,程序输入包括命令行参数、文件、网络数据包、环境变量等;
2)依据待测目标程序和输入数据的基本结构信息的不同,选择相应的测试用例生成方案,生成模糊测试数据;
3)将测试输入逐个推送至目标程序,驱动程序执行并监控程序运行状态;
4)将引起程序异常的测试用例和系统状态进行记录;
5)进一步分析系统异常原因,确定该异常信息是否可被进一步利用(该阶段为非必须阶段)。
模糊测试技术的优势在于其不需要任何关于软件或协议的先验知识,且测试过程简单、高效,自动化程度高。但由于测试用例生成策略的限制,模糊测试存在一定的局限性。其生成的测试用例具有单一性,多个用例往往覆盖程序的同一条路径,无法保证测试的代码覆盖率,致使测试过程不全面。
传统模糊测试技术的不足促进了符号执行技术的发展。
符号执行是一种验证程序正确性的方法,其基本思想是将目标程序的具体输入用符号变量表示,根据程序语义,使用符号变量解释执行程序,在程序的执行过程中使用符号变量表示程序变量,在程序的分支跳转处使用符号表达式表示跳转条件。程序的最终输出是由符号变量组成的逻辑或算术表达式,称为路径约束条件。对路径约束条件进行可满足性的判断,通过对约束条件取反,进行符号变量的求解,生成新的测试用例,新生成的测试用例可以覆盖程序中新的路径。
符号执行试图通过分析程序中所有可执行路径,达到程序状态空间的完全遍历。在理论上,符号执行可以保证较高的测试覆盖率,但具体使用中存在路径爆炸,约束求解耗时耗能等问题。
目前,对于源代码的安全性测试已经有将模糊测试和符号执行相结合的方法。非专利文献1(Internat ional Conference on Software Engineering,29卷,416-426页)针对C程序提出了一种混合执行的测试方法,模糊测试和符号执行交替执行,同时从广度上和深度上探索程序状态空间。非专利文献1在源代码符号执行工具CUTE上实现了该算法,实验结果表明在相同的系统开销下,该方法相比于单独的模糊测试和符号执行都可达到较高的测试覆盖率,能探索更大的程序状态空间。
但是,非专利文献1中提出的方法只适用于源代码层面,无法针对二进制程序进行分析。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够针对二进制程序的混合模糊测试方法,该将模糊测试和符号执行相结合,同时从广度上和深度上探索程序状态空间。通过该方法可以在合理的系统资源开销下,获得较高的测试覆盖率。
为了实现上述技术目的,根据本发明,提供了一种面向二进制的混合模糊测试方法,包括:采用模糊测试作为前端处理,其中利用测试用例来驱动被测试程序的执行;采用二进制代码覆盖率监测处理作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试的覆盖率;当计算出的模糊测试的覆盖率不再提高时,执行作为后端处理的符号执行处理,在符号执行处理中生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例,然后将新的测试用例反馈至模糊测试,使得模糊测试利用新的测试用例来驱动被测试程序的执行。
优选地,符号执行处理采用动态符号执行技术。
优选地,在符号执行处理中,对被测试程序的输入进行符号化处理,抓取当前测试用例的执行轨迹,使用中间语言对轨迹文件进行形式化描述,生成当前路径的约束条件,采用基于代的路径搜索算法对路径约束条件取反,借助约束求解器求解路径约束条件,最终生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例。
优选地,模糊测试在接收到从符号执行处理反馈来的新的测试用例之前,利用基于变异的策略生成的测试用例来驱动被测试程序的执行。
优选地,所述面向二进制的混合模糊测试方法用于软件安全性测试。
本发明的混合模糊测试方法针对的是二进制程序,相比于源代码测试更具适用性和实际价值。本发明的混合模糊测试方法在每次切换到符号执行时,只进行一次符号执行操作,并非重复执行符号执行,增强了符号执行的可用性。将模糊测试和符号执行相结合提出混合模糊测试方法,该方法引入符号执行指导部分测试用例的生成,构成一个带反馈式的模糊测试系统,消除了传统模糊测试生成测试用例的盲目性,整个系统在合理的资源开销下,可以达到更高的测试覆盖率。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的面向二进制的混合模糊测试方法的系统架构简图。
图2示意性地示出了根据本发明优选实施例的面向二进制的混合模糊测试方法的系统架构详图。
图3示意性地示出了根据本发明优选实施例的混合模糊测试系统的伪代码实现的示例。
图4示意性地示出了本发明具体实施例采用的基于代的路径遍历算法。
图5示意性地示出了根据本发明优选实施例的针对Linux系统下的常用二进制程序ls的中间语言片段的具体示例。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
对二进制代码分析,相比源代码分析具有以下优势:首先,对二进制可执行程序分析不依赖于源代码,可以很好地保护商业机密。其次,在源代码编译成最终的二进制程序的过程中,可能会有编译器优化或代码混淆器引入的隐蔽软件缺陷。因此,源代码正确,二进制程序不一定正确,只有对最终的二进制程序进行测试分析,才可能发现此类问题。最后,现有的不同软件是由不同的编程语言(C、C++、JAVA、脚本语言等)编写而来,目前还不存在跨编程语言的源代码安全性分析系统,对源代码进行分析,需要对不同的编程语言的语法和语义信息建立不同的模型后进行分析。但它们最终的二进制代码都是统一形式的机器指令,因此,对二进制程序分析不受编程语言差异的影响。
本发明提出的混合模糊测试方法的系统架构简图如图1所示,系统架构详图如图2所示。
如图1和图2所示,根据本发明优选实施例的面向二进制的混合模糊测试方法包括:
采用模糊测试100作为前端处理,其中利用测试用例来驱动被测试程序的执行(模糊测试100初始地可以利用基于变异的策略生成的测试用例来驱动被测试程序的执行,即,模糊测试100在接收到从符号执行处理300反馈来的新的测试用例400之前,利用基于变异的策略生成的测试用例来驱动被测试程序的执行);
采用二进制代码覆盖率监测处理200作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试100的覆盖率;
当计算出的模糊测试100的覆盖率不再提高时,执行作为后端处理的符号执行处理300,其中符号执行处理300生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例400,然后将新的测试用例400反馈至模糊测试100,使得模糊测试100利用新的测试用例400来驱动被测试程序的执行。
具体地说,例如如图2所示,符号执行处理300可采用动态符号执行技术,首先对被测试程序的输入进行符号化处理,抓取当前测试用例的执行轨迹,使用中间语言对轨迹文件进行形式化描述,生成当前路径的约束条件,采用基于代的路径搜索算法对路径约束条件取反,借助约束求解器求解路径约束条件,最终生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例400;然后将新的测试用例400反馈至模糊测试100,使得模糊测试100利用新的测试用例400来驱动被测试程序的执行。
而且,在具体实施时,可以重复执行上述方法的过程。
上述面向二进制的混合模糊测试方法用于软件安全性测试。
为了更详细地描述本发明的具体实施细节,下面将详细描述本发明的具体实施方式及具体实例。
混合模糊测试系统的伪代码实现的实例如图3所示。算法的基本流程为:算法输入为可执行程序和本次测试的目标(例如测试用例数量,覆盖率),3-15行是循环的主体:循环过程首先将覆盖率提高标志(coverage_flag)设为真(3行);在执行模糊测试的同时监测代码覆盖率情况,直到程序覆盖的基本块数量不再增加时,将coverage_flag设为假(4-10行);此时结束内层循环,转为符号执行,产生新的输入,继续执行循环体(13-15行)。
传统的模糊测试作为整个混合模糊测试系统的前端,采用基于变异或者基于生成的测试用例生成方法,持续不断地产生测试用例,将生成的测试用例注入到目标程序中,驱动程序执行。在目标程序的执行过程中,通过二进制代码覆盖率监测实时计算测试覆盖率。
混合模糊测试系统在代码覆盖率不再提高时转入后端符号执行,代码覆盖率不再提高意即所覆盖的基本块的数量不再增加。符号执行模块作为混合模糊测试系统的后端,主要任务是在程序执行过程中收集路径约束条件,通过一定的路径搜索策略生成新的路径约束条件,最后使用特定的约束求解器求解生成覆盖其他路径的测试用例,以此提高模糊测试的测试覆盖率。在符号执行过程中,对二进制程序的分析,实质上是对内存单元和寄存器分析。汇编指令虽然能表示出机器语言的所有操作,但并未将这些操作所产生的影响(side effect)体现出来,也就无法将标志寄存器EFlags的状态体现出来。程序执行到分支跳转指令时,会根据EFlags中的某些标志位决定是否跳转,EFlags是一个32位寄存器,由状态标志位,控制标志位和系统标志位组成。符号执行系统收集路径约束条件时,主要依据轨迹中的条件转移指令(jcc),条件转移指令依据EFlags的值决定执行不同的分支。而EFlags中的值又依赖于前面能影响EFlags寄存器的机器指令,因此在将该机器指令转换成汇编指令的同时将其对EFlags寄存器的影响表示出来,就可以确定条件转移指令处该选择的路径。需采用某种中间语言(Intermediate Language)来表示指令及指令对于EFlags寄存器的影响。
符号执行得到的路径约束条件是由符号变量表示的表达式组成的函数,为构造新的路径约束条件,需采用一定的路径搜索策略。本发明的具体实施例可以采用一种基于代的路径遍历算法(Generat ion Search,GS),如图4所示。GS算法的基本思想是:对于当前输入所产生的路径约束条件,依次对约束条件进行取反操作,生成下一代路径约束条件集,重复该过程,即可遍历程序中所有可执行路径。相比于深度遍历和广度遍历每次产生一个新的路径,GS算法每次可产生多个新的路径约束,从而求解产生多个新的输入。符号执行模块作为模糊测试系统的后端,是当模糊测试在执行过程中监测到代码覆盖率不再提高时,转为符号执行,由符号执行产生通往其他路径的新输入,并不是循环执行符号执行以搜索程序中所有的路径,因此本文在符号执行过程中只产生第一代的新的约束条件,通过约束求解器求解产生新的输入。
【具体实例】
对Linux系统下的常用二进制程序ls(以列表形式显示目录内容)进行安全性分析。目标程序ls的外部输入由一系列选项参数及目标路径组成,采用基于变异的测试用例生成策略随机产生测试用例。使用生成的测试用例驱动目标程序ls运行。
ls程序开始运行,同时启动二进制代码覆盖率监测模块。每个测试用例执行完毕后,分析该用例覆盖的基本块,将该测试用例加入到以往所有执行过的测试用例中,构成一个新的测试用例集,然后计算整个测试用例集的代码覆盖率(也可以计算用例集覆盖的不同的基本块数量)。
当二进制代码覆盖率监测模块监测到新执行的测试用例无法提高整个测试用例集的覆盖率时,暂停模糊测试的执行过程,转入后端的符号执行。符号执行模块将最后一次执行的测试用例作为具体输入,抓取ls程序执行该测试用例的执行轨迹。将轨迹文件通过逆向工程提升为某种中间语言,收集本次执行过程的路径约束条件。约束条件关注条件跳转类指令,以ls轨迹文件的中间语言片段图5为例,对于比较指令“cmp$0xffffffff,%ecx”,其含义是比较寄存器ecx的值与立即数0xffffffff的大小,BIL显式表达并计算出该比较指令所影响到的EFlags寄存器中各个标志位的变化,其中零标志位ZF由于两操作数相减结果不为零置为“false”。下一条指令“je 0x000000009d4e403e”为条件转移类指令,当EFflags寄存器的ZF标志位为1时跳转到0x000000009d4e403e地址处继续执行,否则顺序执行接下来的指令。在这里,由于ZF=0,程序没有发生跳转。此时收集到的路径约束条件为“…∧(ECX<-1)∧…”,省略号表示其他约束条件,各个约束条件使用“且”连接。
为构造新的路径约束条件,从而探索到其他新的路径,采用GS算法较为关键的一步是对约束取反。对于图4的约束条件进行取反的结果为:“…∧(ECX<-1)”,(ECX<-1)之后的约束条件舍弃,之前的约束条件保留。由于新的约束条件是对原约束条件取反,使得程序在“je 0x000000009d4e403e”指令处发生跳转,从而探索到程序中新的路径。若本条路径上有n个约束条件,经过一次符号执行后采用GS算法得到第一代的结果,就可以构造n个新的路径约束条件,借助约束求解器进行可满足性判断及约束求解,可以生成覆盖特定路径的具体的测试用例。
将经过符号执行生成的测试用例注入到ls程序中,同样地进行代码覆盖率的监测和计算。最后,继续执行模糊测试。重复该过程。直到达到ls程序的测试需求(如要求达到的覆盖率、执行的测试用例数)时,终止混合模糊测试的执行。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (3)
1.一种面向二进制的混合模糊测试方法,其特征在于包括:
采用模糊测试作为前端处理,其中利用测试用例来驱动被测试程序的执行;
采用二进制代码覆盖率监测处理作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试的覆盖率;
当计算出的模糊测试的覆盖率不再提高时,执行作为后端处理的符号执行处理,在符号执行处理中生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例,然后将新的测试用例反馈至模糊测试,使得模糊测试利用新的测试用例来驱动被测试程序的执行;
其中,模糊测试在接收到从符号执行处理反馈来的新的测试用例之前,利用基于变异的策略生成的测试用例来驱动被测试程序的执行;
而且,在符号执行处理中,对被测试程序的输入进行符号化处理,抓取当前测试用例的执行轨迹,使用中间语言对轨迹文件进行形式化描述,生成当前路径的约束条件,采用基于代的路径搜索算法对路径约束条件取反,借助约束求解器求解路径约束条件,最终生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例。
2.根据权利要求1所述的面向二进制的混合模糊测试方法,其特征在于,符号执行处理采用动态符号执行技术。
3.根据权利要求1或2所述的面向二进制的混合模糊测试方法,其特征在于,所述面向二进制的混合模糊测试方法用于软件安全性测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410758900.2A CN104375942B (zh) | 2014-12-11 | 2014-12-11 | 一种面向二进制的混合模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410758900.2A CN104375942B (zh) | 2014-12-11 | 2014-12-11 | 一种面向二进制的混合模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104375942A CN104375942A (zh) | 2015-02-25 |
CN104375942B true CN104375942B (zh) | 2017-02-08 |
Family
ID=52554877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410758900.2A Active CN104375942B (zh) | 2014-12-11 | 2014-12-11 | 一种面向二进制的混合模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104375942B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699605B (zh) * | 2015-03-02 | 2017-11-17 | 清华大学 | 一种驱动程序的代码覆盖率测量方法及装置 |
CN106155901B (zh) * | 2015-04-21 | 2019-04-16 | 中国科学院信息工程研究所 | 黑盒与白盒相结合的执行反馈驱动的并行模糊测试方法 |
CN106407102B (zh) * | 2015-08-03 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 应用程序的模糊测试方法、装置及系统 |
CN106649075A (zh) * | 2015-10-30 | 2017-05-10 | 西门子公司 | 模糊测试方法和装置 |
US20180173610A1 (en) * | 2016-12-19 | 2018-06-21 | Mediatek Inc. | Method for performing cared-zone code coverage evaluation with no source code modification |
US10452526B2 (en) | 2017-06-15 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning for constrained mutation-based fuzz testing |
CN109901987B (zh) * | 2017-12-11 | 2022-07-05 | 北京京东尚科信息技术有限公司 | 一种生成测试数据的方法和装置 |
CN108647145B (zh) * | 2018-05-10 | 2020-01-03 | 清华大学 | 软件内存安全检测方法及系统 |
CN108845944B (zh) * | 2018-06-28 | 2021-10-15 | 中国人民解放军国防科技大学 | 一种结合符号执行提高软件模糊测试效率的方法 |
CN109376535B (zh) * | 2018-08-14 | 2022-03-04 | 中国信息安全测评中心 | 一种基于智能化符号执行的漏洞分析方法及系统 |
CN109739755B (zh) * | 2018-12-27 | 2020-07-10 | 北京理工大学 | 一种基于程序追踪和混合执行的模糊测试系统 |
CN109992507B (zh) * | 2019-03-22 | 2022-06-24 | 北京信息科技大学 | 基于模拟执行的程序模糊测试方法及装置 |
CN111897733B (zh) * | 2020-08-07 | 2023-04-07 | 北京理工大学 | 一种基于最小集合覆盖的模糊测试方法和装置 |
CN113407443A (zh) * | 2021-06-02 | 2021-09-17 | 贝格迈思(深圳)科技有限公司 | 一种基于gpu二进制代码翻译的高效模糊测试方法 |
CN116541294B (zh) * | 2023-05-18 | 2023-11-17 | 上海安般信息科技有限公司 | 一种基于符号执行的模糊测试系统及方法 |
CN117873908B (zh) * | 2024-03-12 | 2024-06-21 | 中兴通讯股份有限公司 | 测试用例确定方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714119B (zh) * | 2009-12-09 | 2011-11-02 | 北京邮电大学 | 基于二进制程序的测试数据生成器和方法 |
CN103036730B (zh) * | 2011-09-29 | 2015-09-23 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN102508780B (zh) * | 2011-11-21 | 2014-08-20 | 电子科技大学 | 一种用于软件测试的交叉式动态法和装置 |
CN102799529B (zh) * | 2012-07-13 | 2015-11-25 | 北京航空航天大学 | 一种动态的二进制代码测试用例生成方法 |
CN103699475B (zh) * | 2012-09-27 | 2016-09-28 | 西门子公司 | 对模糊测试中的测试用例进行优化的方法,装置和系统 |
CN103116540B (zh) * | 2013-01-23 | 2015-02-18 | 电子科技大学 | 基于全局超级块支配图的动态符号执行方法 |
CN103914383A (zh) * | 2014-04-04 | 2014-07-09 | 福州大学 | 一种基于多种群协同演化遗传算法的模糊测试系统 |
CN104008053B (zh) * | 2014-05-28 | 2016-07-06 | 电子科技大学 | 一种用于漏洞发掘的动态符号执行路径搜索方法 |
CN104063325B (zh) * | 2014-07-11 | 2016-10-26 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
-
2014
- 2014-12-11 CN CN201410758900.2A patent/CN104375942B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104375942A (zh) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104375942B (zh) | 一种面向二进制的混合模糊测试方法 | |
Tsantalis et al. | Assessing the refactorability of software clones | |
Lakhotia et al. | An empirical investigation into branch coverage for C programs using CUTE and AUSTIN | |
Santelices et al. | Exploiting program dependencies for scalable multiple-path symbolic execution | |
US9563411B2 (en) | Flow analysis instrumentation | |
Klamt et al. | An application programming interface for CellNetAnalyzer | |
Li et al. | Practical symbolic race checking of GPU programs | |
Lakhotia et al. | Automated test data generation for coverage: Haven't we solved this problem yet? | |
Aranega et al. | Towards an automation of the mutation analysis dedicated to model transformation | |
CN112765031A (zh) | 一种群智化漏洞挖掘任务的分解方法 | |
André et al. | Formalizing non-concurrent UML state machines using colored Petri nets | |
Wang et al. | Solver-based sketching of alloy models using test valuations | |
Lazarek et al. | How to evaluate blame for gradual types | |
Stephan et al. | Identifying instances of model design patterns and antipatterns using model clone detection | |
Slaby et al. | Compact symbolic execution | |
Oliva et al. | Experience report: How do structural dependencies influence change propagation? an empirical study | |
Andriushchenko et al. | Search and explore: symbiotic policy synthesis in POMDPs | |
Su et al. | STCG: state-aware test case generation for simulink models | |
Vidal | Concolic execution and test case generation in Prolog | |
Gao et al. | LLSPLAT: improving concolic testing by bounded model checking | |
de Oliveira Neto et al. | Searching for models to evaluate software technology | |
Robbins et al. | Theory propagation and reification | |
CN103914381B (zh) | 生成时序安全属性类缺陷模式相关的函数摘要信息的方法 | |
Zurowska et al. | Sauml: A tool for symbolic analysis of uml-rt models | |
Zhang et al. | S2PF: speculative symbolic PathFinder |
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 |