一种模块级Simulink测试用例稳定生成方法技术

技术编号:37764242 阅读:17 留言:0更新日期:2023-06-06 13:22
本发明专利技术公开了一种模块级Simulink测试用例稳定生成方法,包括:构建被测软件模块;对被测软件中官方模块库内所有最小单元标准模块排序;从被测软件官方模块库中生成所有模块;运行该被测用例,如编译失败则删除引起编译失败的模块链接组;将运行成功的被测用例中模块链接组的信息记录至被测软件模块分析数据库中;重复上述操作,直至遍历完毕被测软件中官方模块库内所有最小单元标准模块;随机生成测试用例阶段,从被测软件官方模块库中随机生成可产生信号的初始模块,将该模块的信息输入至被测软件模块分析数据库中查询其链接情况,运行生成完毕的测试用例,运行成功则保存,编译失败则丢弃,统计被测用例生成率。统计被测用例生成率。统计被测用例生成率。

【技术实现步骤摘要】
一种模块级Simulink测试用例稳定生成方法


[0001]本专利技术涉及软件测试领域,尤其涉及一种模块级Simulink测试用例稳定生成方法。

技术介绍

[0002]作为一个商业CPS开发工具链,Simulink已被广泛用于在许多安全关键应用程序中为CPS模型设计、模拟和生成嵌入式代码。在Simulink开发工具链中,用户将Simulink模型设计为框图。它在转移到硬件之前分析、编译和执行CPS模型以仿真CPS的行为。当仿真符合用户期望时,Simulink自动生成嵌入代码,部署到目标应用程序中。上述开发过程允许用户在不编写代码的情况下快速构建CPS原型并部署应用程序。而Simulink编译器作为Simulink开发工具链中最为重要的一部分,如果出现错误后果将不堪设想。为减少Simulink编译器出现错误的概率,目前针对Simulink编译器的测试逐渐兴起。
[0003]目前现有的Simulink开发工具链中针对Simulink测试用例模型生成的方法以SLforge为代表,基于半正式的Simulink模型规范来指导随机模型生成与基于机器学习的随机生成,其缺点在于需要提供一个完整的生成规范来提高模型生成成功率,同时这些方法因为是参考了已有现实模型,所以生成的样式主要取决于已有模型,模型生成的样式具有局限性。

技术实现思路

[0004]根据现有技术存在的问题,本专利技术公开了一种模块级Simulink测试用例稳定生成方法,具体包括如下步骤:
[0005]构建被测软件模块,分析数据库用于存放被测软件中每个最小单元标准模块的链接情况;
[0006]对被测软件中官方模块库内所有最小单元标准模块排序,从中抽取出不重样的模块A,复制生成多个该模块A,使得模块A数量等于被测软件中所有最小单元标准模块的数量;
[0007]从被测软件官方模块库中生成所有模块,并将每个模块对应链接到测试用例内模块A之后,使得每个模块A之后都链上一个不重复的模块构成模块链接组;
[0008]运行该被测用例,如编译失败则删除引起编译失败的模块链接组;
[0009]将运行成功的被测用例中模块链接组的信息记录至被测软件模块分析数据库中;
[0010]重复上述操作,直至遍历完毕被测软件中官方模块库内所有最小单元标准模块;
[0011]随机生成测试用例阶段,从被测软件官方模块库中随机生成可产生信号的初始模块,将该模块的信息输入至被测软件模块分析数据库中查询其链接情况,并随机从中挑选出可链接的模块进行生成,以此类推生成被测用例;
[0012]运行生成完毕的测试用例,运行成功则保存,编译失败则丢弃,统计被测用例生成率。
[0013]所述被测软件模块分析数据库中的每个最小单元标准模块的链接情况采取数据库表的形式进行存放,其中主要记录的信息包含出发模块的名称信息和到达模块的名称信息。
[0014]所述最小单元标准模块为无法继续拆分的、官方模块库中给定了的模块,初始模块为信号生成模块,在被测软件中一些能产生信号的模块。
[0015]模块A与其他模块的链接方式是将模块A作为更靠近信号输入的这一侧,将其他模块的输入端口通过信号线链接至模块A的输出端口。
[0016]出发模块为链接时处于信号流入侧或更靠近信号流入侧的模块,到达模块为信息流出侧或更靠近信号流出侧的模块。
[0017]由于采用了上述技术方案,本专利技术提供的一种模块级Simulink测试用例稳定生成方法,该方法在前期针对每个模块进行大量的组合编译并筛选出可成功编译的模块组合并记录,完善了被测软件Simulink没有有效的语言规范从而无法稳定指导生成模型的不足。该方法在后续指导生成被测软件的测试用例,大大提高了测试用例生成后整体编译的成功率,对被测软件模型生成有重要意义,也为被测软件测试的后续工作提供了大量有效可用的被测用例集。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本专利技术中本专利技术方法的流程图;
[0020]图2为本专利技术中模块批量生成与链接示意图;
[0021]图3为本专利技术中模型生成示意图。
具体实施方式
[0022]为使本专利技术的技术方案和优点更加清楚,下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚完整的描述:
[0023]如图1所示的是一种模块级Simulink测试用例稳定生成方法的流程图,具体方案是:
[0024]在步骤S101中:构建被测软件模块分析数据库;
[0025]构建被测软件模块分析数据库可以但不限于采用Mysql搭建,搭建出一个空的库后创建一张数据库表,数据库表中有三个字段分别是主键、出发模块信息,到达模块信息。以Simulink为例,生成模块可以采用专门的官方API,通常有多种方式,比如知晓需要生成的模块名称,那么此时针对该被测软件中的出发模块信息与到达模块信息就可以是模块的具体名称。出发模块与到达模块的定义为,出发模块相较于到达模块通常更快得到信号,并将信号经由出发模块的输出端口流入至到达模块的输入端口,出发模块与到达模块通过一条或多条信号线相连。
[0026]在后续步骤中,如有需要加入被测软件模块分析数据库中的被测软件模块分析数
据,需要符合上述规范,即收集出发模块与到达模块的信息,被测软件模块分析数据库对于重复的信息将不允许被加入,以保证每个模块都能够在后续步骤中被等概率的生成。
[0027]在步骤S102中:模块批量生成与链接验证;
[0028]具体的,在该步骤中将被测软件中官方模块库内所有最小单元标准模块排序,从中抽取出不重样的模块,复制生成多个该模块,使得模块数量等于被测软件中所有最小单元标准模块的数量。再从被测软件官方模块库中生成所有模块,并将每个模块对应链接到测试用例内模块之后,使得每个模块之后都链上一个不重复的模块构成模块链接组;如图2所示,模块A 21是本方法从测软件中官方模块库只能够随机选择出的某个基本模块,该模块不由其他基本模块组成,在模型中执行特定的任务。通过多次复制该模块的信息,产生模块A 23与模块A 25等多个完全相同的模块,模块的数量等同于被测软件中官方模块库的模块总数,用于后续链接验证阶段对其进行一一匹配。再从被测软件官方模块库中生成所有模块,需要注意的是,所有模块仅生成一次。并将生成好后的模块与模块A进行相连,在图上本方法进行了举例示意,模块B 22、模块C 24,模块D 26就是所有模块的一个缩影,他们代表了被测软件中执行各种不同功能的模块(也有可能会生成模块A,这是被允许的)。将这些后生成的模块与批量生成的模块A进行一一匹配链接,每组仅包含两个模块,即模块A与其他模块。需要特别强调的是,有些本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模块级Simulink测试用例稳定生成方法,其特征在于包括:构建被测软件模块,分析数据库用于存放被测软件中每个最小单元标准模块的链接情况;对被测软件中官方模块库内所有最小单元标准模块排序,从中抽取出不重样的模块A,复制生成多个该模块A,使得模块A数量等于被测软件中所有最小单元标准模块的数量;从被测软件官方模块库中生成所有模块,并将每个模块对应链接到测试用例内模块A之后,使得每个模块A之后都链上一个不重复的模块构成模块链接组;运行该被测用例,如编译失败则删除引起编译失败的模块链接组;将运行成功的被测用例中模块链接组的信息记录至被测软件模块分析数据库中;重复上述操作,直至遍历完毕被测软件中官方模块库内所有最小单元标准模块;随机生成测试用例阶段,从被测软件官方模块库中随机生成可产生信号的初始模块,将该模块的信息输入至被测软件模块分析数据库中查询其链接情况,并随机从中挑选出可链接的模块进行生成,以此类推生成被测用例;运行生成完毕的测试用例,运行成功则保存,编译...

【专利技术属性】
技术研发人员:郭世凯王子轩刘昭维任虹燕李晓晨江贺
申请(专利权)人:大连海事大学
类型:发明
国别省市:

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

1