System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于差分测试的仿真软件测试方法技术_技高网

一种基于差分测试的仿真软件测试方法技术

技术编号:41220842 阅读:3 留言:0更新日期:2024-05-09 23:40
本发明专利技术公开了一种基于差分测试的仿真软件测试方法,包括:生成测试用例组成测试用例池并进行静态规范化检查,获取全部可用的测试用例组成测试用例池;随机选择一种程序转变机制对测试用例P进行程序转换获得测试用例记为PP,在初始调试动作A上随机选择一种调试动作转变机制对将调试动作A进行调试动作转换,得到的调试动作AA,利用差分测试分析仿真结果:当出现编译错误时,则将错误信息写入bug表,如果没有编译错误,则编译该程序并生成二进制电信号,将生成的二进制电信号与原始程序编译后的二进制电信号进行比较,如果产生差异,则将差异信息写入bug表当中,将测试用例文件保存至异常文件夹,如果没有差异则结束比较程序。

【技术实现步骤摘要】

本专利技术涉及软件测试,尤其涉及一种基于差分测试的仿真软件测试方法


技术介绍

1、在数位电路设计中,寄存器传输级是一种对同步数位电路的抽象模型,寄存器传输级抽象模型在诸如verilog和vhdl的硬件描述语言中被用于创建对实际电路的高层次描述。在现代的数位设计中,寄存器传输级上的设计是最典型的工作流程。仿真软件作为验证寄存器传输级代码的工具,其输出的波形图可以以一种直观的描述帮助开发人员了解整个模型的运行效果。这样可发人员就可以使用更小的代价定位抽象模型的可能的缺陷。因此保证仿真软件的可靠性与稳定性至关重要。目前针对ide的debug功能进行测试的主要针对是chromium浏览器中所使用的javascript调试器。其利用蜕变测试的方法对程序以及调试动作进行变异,通过对比蜕变测试前与蜕变测试后的输出结果,发现了调试器中一些潜在的错误,取得了一定的成果。

2、在芯片设计及高端制造业领域对于开发工具的稳定性以及开发工具的正确性均有很高的要求。在检验开发工具的相关技术中,差分测试是一种很新颖的技术方法。而目前来看,就现在所存在的测试相关开发工具的例子中,并没有针对仿真软件调试器的测试。针对仿真软件调试器的测试,我们面临两个挑战:一是如何建立调试动作的等价关系。调试器本质上是交互式的,这意味着调试操作不会在测试执行前一次提供给调试器,而是在整个调试会话中连续提供。调试操作必须在测试过程中以交互的方式进行转换。因此,如何在调试过程中构建适合调试器测试的等效调试操作是一个重大挑战;二是调试器不仅接受程序作为输入,还接受调试动作(如breakpoint和step)作为输入。由于输入包含两个部分,所以我们必须处理两种不同类型的转换方式:程序转换和调试动作转换。由于调试动作涉及到代码位置,比如用于设置断点的行的位置,因此这两种转换需要相互一致。


技术实现思路

1、根据现有技术存在的问题,本专利技术公开了一种基于差分测试的仿真软件测试方法,具体包括如下步骤:

2、生成测试用例组成测试用例池并进行静态规范化检查,获取全部可用的测试用例组成测试用例池;

3、随机选择一种程序转变机制对测试用例p进行程序转换获得测试用例记为pp,将测试用例p与调试动作a放入vivado调试器中进行综合运行,产生一系列的调试痕迹dt1,并记录综合之后所产生的二进制信号结果pr1,将测试用例pp与调试动作a放入vivado调试器中进行综合运行,产生一系列的调试痕迹dt2,并记录综合之后产生的二进制信号结果pr2,对比调试痕迹dt1、调试痕迹dt2、以及综合之后的结果pr1和pr2;

4、在初始调试动作a上随机选择一种调试动作转变机制对将调试动作a进行调试动作转换,得到的调试动作aa,将测试用例p和调试动作a放入vivado调试器中进行运行,产生一系列的调试痕迹记dt1,将测试用例p和调试动作aa放入vivado调试器中进行运行,产生一系列的调试痕迹dt2,对比调试痕迹dt1和dt2;

5、利用差分测试分析仿真结果:当出现编译错误时,则将错误信息写入bug表,如果没有编译错误,则编译该程序并生成二进制电信号,将生成的二进制电信号与原始程序编译后的二进制电信号进行比较,如果产生差异,则将差异信息写入bug表当中,将测试用例文件保存至异常文件夹,如果没有差异则结束比较程序。

6、进一步的,所述程序转变机制随机选择如下四种方式中的一种:阻塞赋值与非阻塞赋值的转换,位操作的等价变异,用表达式替换恒等运算符,删除不可达的循环语句。

7、进一步的,所述调试动作转变机制随机选择如下四种方式中的一种:添加断点,断点滑动,对if-else语句中的断点进行测试,对for循环中的断点进行测试。

8、进一步的,查看测试用例池中的测试用例,编译运行生成的测试用例,检验其是否可用并对其进行标记,同时删除不可用的测试用例。

9、由于采用了上述技术方案,本专利技术提供的一种基于差分测试的仿真软件测试方法,该方法在已有的测试条件下已经可以测试出仿真软件的bug,保证了在芯片设计及高端制造业领域仿真验证工具的稳定性。提高了电路设计的正确性和可靠性,也提高了设计人员的设计效率。该方法借助仿真工具,开发者可以更迅速的定位设计缺陷,修改设计功能从而加速芯片的设计。

本文档来自技高网...

【技术保护点】

1.一种基于差分测试的仿真软件测试方法,其特征在于包括:

2.根据权利要求1所述的一种基于差分测试的仿真软件测试方法,其特征在于:所述程序转变机制随机选择如下四种方式中的一种:阻塞赋值与非阻塞赋值的转换,位操作的等价变异,用表达式替换恒等运算符,删除不可达的循环语句。

3.根据权利要求1所述的一种基于差分测试的仿真软件测试方法,其特征在于:所述调试动作转变机制随机选择如下四种方式中的一种:添加断点,断点滑动,对if-else语句中的断点进行测试,对for循环中的断点进行测试。

4.根据权利要求1所述的一种基于差分测试的仿真软件测试方法,其特征在于:查看测试用例池中的测试用例,编译运行生成的测试用例,检验其是否可用并对其进行标记,同时删除不可用的测试用例。

【技术特征摘要】

1.一种基于差分测试的仿真软件测试方法,其特征在于包括:

2.根据权利要求1所述的一种基于差分测试的仿真软件测试方法,其特征在于:所述程序转变机制随机选择如下四种方式中的一种:阻塞赋值与非阻塞赋值的转换,位操作的等价变异,用表达式替换恒等运算符,删除不可达的循环语句。

3.根据权利要求1所述的一种基于差分测试的仿真软件测试方...

【专利技术属性】
技术研发人员:郭世凯王晓雨陈文卓李晓晨江贺
申请(专利权)人:大连海事大学
类型:发明
国别省市:

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

1