一种基于重写逻辑的代码静态验证和动态执行方法技术

技术编号:43092851 阅读:20 留言:0更新日期:2024-10-26 09:39
本发明专利技术提出了一种基于重写逻辑的代码静态验证和动态执行方法,用于软件测试,旨在提高软件系统的可靠性和安全性。该方法通过将静态验证与动态执行相结合,能够在软件开发过程中发现代码中的潜在错误。本发明专利技术的静态验证部分利用重写逻辑将所输入的其他类型语言代码翻译成等价的Dafny代码,进而交由验证工具Dafny进行静态验证,以确保其满足系统特定的功能和要求。而动态执行部分则通过使用可插拔式的特定语言组件,将输入的代码转换为效果等价的Khaos语言代码,进而在K Framework中利用重写规则进行模拟和动态执行,以捕捉运行时可能出现的问题。本发明专利技术适用于各种软件系统的开发和维护,尤其在适用敏捷开发方法的复杂系统和实时系统中具有显著的应用价值。

【技术实现步骤摘要】

本专利技术属于计算机软件测试领域,涉及一种利用重写逻辑实现静态验证和动态执行的方法,以可插拔的方式实现对不同类型编程语言的验证与测试。


技术介绍

1、软件测试在软件开发生命周期中扮演着至关重要的角色。它不仅能够发现和修复软件缺陷,还能验证软件是否满足预期的功能和性能要求。随着软件系统日益复杂化和大规模化,有效的软件测试对于确保软件质量、提高用户满意度、降低维护成本以及减少潜在的安全风险变得尤为重要。在当今快速迭代的开发环境中,软件测试更是成为了保证产品质量和竞争力的关键因素。

2、然而,传统的软件测试方法,如单元测试、集成测试和系统测试,虽然在软件开发过程中发挥了重要作用,但也存在一些固有的局限性。首先,这些方法通常依赖于人工设计的测试用例,难以全面覆盖所有可能的执行路径,特别是在处理复杂的并发系统时。其次,传统测试方法往往只能发现已经发生的错误,而难以预防潜在的问题。再者,随着软件规模的扩大,传统测试方法的成本和时间开销呈指数级增长,难以满足快速迭代开发的需求。最后,对于一些特殊类型的软件系统,如实时系统或安全关键系统,传统测试方法难以提供足本文档来自技高网...

【技术保护点】

1.一种基于重写逻辑的代码静态验证和动态执行方法,其特征在于,包括以下步骤:

2.如权利要求1所述的方法,其特征在于,步骤1中所述的测试环境,是以“-kompiled”结尾命名的文件夹,其中包含若干后缀名为.k的,由K Framework读取的文件(以下简称k文件);用户在计算机上能够同时存放多个测试环境,但同一时间仅允许使用一个测试环境;

3.如权利要求1所述的方法,其特征在于,步骤1中所述环境参数,包括:用于生成线程调度顺序的随机数种子、线程调度频率及动态执行的轮次数量;所述三个参数统称为系统内置参数;

4.如权利要求1所述的方法,其特征在于,步骤...

【技术特征摘要】

1.一种基于重写逻辑的代码静态验证和动态执行方法,其特征在于,包括以下步骤:

2.如权利要求1所述的方法,其特征在于,步骤1中所述的测试环境,是以“-kompiled”结尾命名的文件夹,其中包含若干后缀名为.k的,由k framework读取的文件(以下简称k文件);用户在计算机上能够同时存放多个测试环境,但同一时间仅允许使用一个测试环境;

3.如权利要求1所述的方法,其特征在于,步骤1中所述环境参数,包括:用于生成线程调度顺序的随机数种子、线程调度频率及动态执行的轮次数量;所述三个参数统称为系统内置参数;

4.如权利要求1所述的方法,其特征在于,步骤3中所述的dafny语言代码能够直接在对应的同名验证工具dafny中运行;用户亦能够根据实际需求在其中增减内容。

5.如权利要求1所述的方法,其特征在于,步骤4中所述的khaos语言代码是定义的一种程序语言,其同时支持函数式风格和面向对象风格的编程方法,其代码可直接在kframework中模拟执行;当用户选择动态执行功能时,用户源代码必须在k framework中首先转换为等价的khaos语言代码,才能模拟执行;

6.如权利要求1所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:王佳鹏朱惠彪陈思妮李冉
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1