[发明专利]软件验证方法、装置、计算机设备和存储介质在审
申请号: | 201910480992.5 | 申请日: | 2019-06-04 |
公开(公告)号: | CN110347588A | 公开(公告)日: | 2019-10-18 |
发明(设计)人: | 张强;周博 | 申请(专利权)人: | 北京谦川科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京华进京联知识产权代理有限公司 11606 | 代理人: | 黄易 |
地址: | 100089 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 规约 状态机 软件验证 验证 计算机设备 存储介质 验证器 声明 规约转换 书写规则 预先定义 转换 书写 申请 | ||
本申请涉及一种软件验证方法、装置、计算机设备和存储介质。所述方法包括:获取规约,其中,所述规约包括状态机规约和声明规约,所述状态机规约和所述声明规约按照预先定义的书写规则书写;将所述状态机规约转换为实现代码;通过验证器验证转换后的所述实现代码是否满足所述状态机规约的要求;通过验证器验证所述状态机规约是否满足所述声明规约的要求;若转换后的所述实现代码满足所述状态机规约的要求,且所述状态机规约满足所述声明规约的要求,则通过验证。采用本方法能够快速进行软件验证,提高软件验证效率,同时实现验证通用性。
技术领域
本申请涉及信息处理技术领域,特别是涉及一种软件验证方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,通过形式化验证的方式提前验证系统软件的正确性能够有效避免由于软件出现问题而导致整个系统崩溃。当前现有的形式化验证工具,基于一阶逻辑求解的形式化验证工具中,以SMT求解器的较多。
传统的形式化验证方式主要包括模型检测和定理证明,模型检测方式是基于有限模型并检验该模型期望特性的验证技术,然而,模型检测方式无法直接验证代码本身,同时很难表达复杂的系统;定理证明方式是将系统及其特性均以某种数学逻辑公式表示的验证技术,然而,定理证明方式需要专业的数学定理知识以及定理证明器的支持,这种半自动化的验证工具不仅需要花费大量的人力来编写相关规约,而且对研发人员的门槛要求较高,需要专业人员设计和开发相关软件。
发明内容
基于此,有必要针对上述技术问题,提供一种能够快速进行软件验证,提高软件验证效率,同时实现验证通用性的软件验证方法、装置、计算机设备和存储介质。
一种软件验证方法,所述方法包括:
获取规约,其中,所述规约包括状态机规约和声明规约,所述状态机规约和所述声明规约按照预先定义的书写规则书写;
将所述状态机规约转换为实现代码;
通过验证器验证转换后的所述实现代码是否满足所述状态机规约的要求;
通过验证器验证所述状态机规约是否满足所述声明规约的要求;
若转换后的所述实现代码满足所述状态机规约的要求,且所述状态机规约满足所述声明规约的要求,则通过验证。
在其中一个实施例中,所述状态机规约和所述声明规约按照预先定义的书写规则书写包括:
所述状态机规约通过Python语言书写,所述状态机规约用于描述系统功能及系统接口的正确性;
在所述状态机规约的基础上书写所述声明规约,所述声明规约用于描述系统属性及系统不变量信息;
其中,所述状态机规约包括抽象状态机规约和状态转换规约;
优选地,在Python语言的函数定义中增加返回值信息;
将Python函数的第一个参数设置为系统状态空间的对象参数;
通过预设符号对所述Python函数的其他参数的参数类型和参数名称进行分割。
在其中一个实施例中,所述状态机规约通过Python语言书写包括:
通过抽象状态模型描述所述状态机规约的状态空间,其中,所述抽象状态模型包括系统对外接口集合、状态机状态集合、输出集合、初始化状态以及操作转换;
优选地,利用数据结构构建多种系统对象,其中,所述数据结构包括:数据类型、数据变量、系统对象类型以及状态机对象;
根据所述多种系统对象构建所述抽象状态机规约;
进一步优选地,设置至少一种前置条件,所述前置条件用于判断系统调用能否执行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京谦川科技有限公司,未经北京谦川科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910480992.5/2.html,转载请声明来源钻瓜专利网。