可扩展和优化的混合验证方法解析
1. 混合验证概述
混合验证方法结合了基于仿真和形式验证的方法。不过,衡量验证改进效果的技术,此前主要是针对基于仿真或形式验证这两种单一方法提出的,半形式(混合)验证方法的覆盖率确定仍处于起步阶段。
为了量化混合软件验证所取得的改进,采用了基于规范的覆盖率指标。该半形式覆盖率指标基于“属性覆盖率”,它能确定一组属性中,被基于仿真或形式验证引擎评估的属性总数。同时,使用Gcov来监控仿真部分,以测量更多基于实现的覆盖率输入,例如行覆盖率、分支覆盖率。需要注意的是,由于混合验证方法中使用了仿真,可能无法像形式验证那样覆盖100%的状态空间。
2. 技术细节
新方法的主要目标是提供可扩展和可扩展的混合验证服务,为此实现了一个名为VERIFYR的验证平台,它能够以分布式和混合的方式验证嵌入式软件。
为了利用多个计算节点的优势,将整个验证过程拆分为多个验证作业。VERIFYR平台独立且可扩展,通过标准通信协议交换信息。它由一系列形式验证工具(如CBMC和ESBMC)、仿真工具(如SCTC)以及一个通信网关组成,用于调用验证命令和交换混合验证过程的状态信息。
具体操作步骤如下:
1. 客户端应用程序通过HTTP或HTTPS使用简单对象访问协议(SOAP)将包含命令名称及其参数(如函数名、验证信息和授权凭证)的SOAP文档传递给编排器。
2. 所有的SOAP调用存储在Web服务描述语言(WSDL)文件中。
3. 验证客户端将验证请求发送到超级节点(编排器),超级节点再将请求分发给不同的验证服务器。
4. 目前VERIFYR支持多核计算节点和集群,可以设置任意数