一种基于结果回溯的Simulink测试用例约简方法技术

技术编号:37463391 阅读:29 留言:0更新日期:2023-05-06 09:36
本发明专利技术公开了一种基于结果回溯的Simulink测试用例约简方法,包括:生成能够体现被测软件中错误或缺陷的测试用例,建立待约简测试用例集,收集用于扩大待约简测试用例集的被测软件第三方真实缺陷反馈案例集;运行待约简测试用例集中的测试用例,依照运行结果对测试用例进行分类;针对运行结果中编译失败的测试用例采取以结果为导向的模块删除等效测试用例约简方案,针对运行结果中成功编译的测试用例采取以结果为导向的数据流等效测试用例约简方案;将与原测试用例集运行结果一致的约简后测试用例集进行汇总,并记录诱发原因报告、上传至被测软件官方技术支持;收集被测软件官方技术支持的意见和建议,优化迭代本方法。法。法。

【技术实现步骤摘要】
一种基于结果回溯的Simulink测试用例约简方法


[0001]本专利技术涉及软件测试领域,尤其涉及一种基于结果回溯的Simulink测试用例约简方法。

技术介绍

[0002]Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,基于以上优点被广泛应用到航空航天、汽车制造、生命健康等核心领域。因此如果Simulink工具链中含有bug会导致编译发生错误并有可能在系统中埋下非预期的潜藏问题。此外,编译器错误使调试更加困难,因为开发人员很难确定软件故障是由他们正在开发的软件还是他们正在使用的编译器造成的。因此,保证Simulink工具链编译器的质量至关重要。在最坏的情况下,Simulink工具链中的一个细微错误可能会导致汽车或飞机等核心安全应用程序出现意外行为,造成巨大伤亡损失。
[0003]目前,在软件测试领域,尚未有针对被测软件Simulink编译器的测试用例约简方法,工程师在实际工程项目中可能会发现被测软件Simulink编译器中编译器自身带来的错误(或缺陷),但是基于工程作业中所使用的模型过于庞大,碍于工期等其他客观因素,无法做到将功能量庞大的模型约简至符合官方技术支持的规模与大小(事实上,官方技术支持也无法对完整的模型进行分析,这太过复杂,所以往往需要工程师自行约简至小规模再提交),现有的方案大多是工程师手动约简,约简难度极大且将大大的增加工程师的时间花费。

技术实现思路

[0004]根据现有技术存在的问题,本专利技术公开了一种基于结果回溯的Simulink测试用例约简方法,具体包括如下步骤:
[0005]生成能够体现被测软件中错误或缺陷的测试用例,建立待约简测试用例集,收集用于扩大待约简测试用例集的被测软件第三方真实缺陷反馈案例集;
[0006]运行待约简测试用例集中的测试用例,依照运行结果对测试用例进行分类;
[0007]采用以结果为导向的模块删除等效测试用例约简方案对运行结果中编译失败的测试用例中的模块进行删除;采用以结果为导向的数据流等效测试用例约简方案对运行结果中成功编译的测试用例中的模块进行删除;
[0008]运行经约简后的测试用例集,比较与原测试用例集之间的运行结果差异并记录错误或缺陷原因以及诱发问题的测试用例模块;
[0009]将与原测试用例集运行结果一致的约简后测试用例集进行汇总,并记录诱发原因报告同时上传至被测软件的官方技术支持端;
[0010]收集被测软件官方技术支持端的意见和建议,优化迭代该Simulink测试用例约简方法。
[0011]进一步的,所述错误或缺陷的测试用例在被测软件中体现为模型;
[0012]通过现有随机生成被测软件模型的方法以及现有模型变异的方法生成大量的被测软件模型;
[0013]将上述大量的被测软件模型经过差分测试的手段筛选出有错误或缺陷的被测软件模型形成待约简测试用例集;
[0014]收集被测软件官方技术端公开具体错误原因和触发错误方式的模型以及第三方开源真实缺陷反馈案例模型用于扩大被测软件待约简测试用例集。
[0015]进一步的,根据运行测试用例结果,将测试用例分为编译失败的测试用例和成功编译的测试用例;编译失败指测试用例在被测软件上运行时发生崩溃或错误无法继续编译的情况,被测软件通过弹出提示信息或崩溃信息强行终止被测用例运行而导致的失败;编译成功为被测用例在被测软件上正常运行,并输出结果。
[0016]进一步的,运行经约简后的测试用例,其结果应与原测试用例一致,具体是指原测试用例如编译失败,则经约简后的测试用例集也应编译失败,并输出相同的提示信息;如果原测试用例编译成功,则运行经约简后的测试用例后也应编译成功,并输出相同的结果。
[0017]由于采用了上述技术方案,本专利技术提供的一种基于结果回溯的Simulink测试用例约简方法,该方法将含有错误(缺陷)的测试用例进行分类归纳,并针对不同的错误原因(运行结果)进行针对性的约简方案选择,在一定程度上有利于测试用例约简的成功率提升,运用该方法进行测试用例约简也大大的降低了人力的支出,节省了工程师的时间花费,有助于自动化测试的发展,更加准确的定位潜藏在被测软件中的错误原因与模块(组),提升测试效果。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本专利技术方法的流程图;
[0020]图2为本专利技术中测试用例示意图;
[0021]图3为本专利技术中约简后测试用例示意图;
具体实施方式
[0022]为使本专利技术的技术方案和优点更加清楚,下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚完整的描述:
[0023]如图1所示的一种基于结果回溯的Simulink测试用例约简方法,具体包括如下步骤:
[0024]在步骤S101中:收集并扩建待约简测试用例集;
[0025]具体的,在该步骤中建立待约简测试用例集,其主要来源于在之前对被测软件的测试过程中发现的、经被测软件官方技术支持验证的可以揭露或导致被测软件发生错误的测试用例。错误通常是编译失败与等效膜输入不一致的情况,其中编译失败是指测试用例在被测软件上运行过程中触发了被测软件编译器漏洞而导致的编译失败并被弹出提示框
强行终止测试用例在被测软件上执行,更严重的,或是直接导致被测软件崩溃并弹出崩溃信息。而等效膜输入不一致的情况通常发生在两个具有相同表现的测试用例,在被测软件相同的外部环境与配置下产生了差异的不一致现象,这种差异体现在一个测试用例正常运行一个测试用例运行失败或两个测试用例均可运行但输出结果不同。其中输出结果包括但不仅限测试用例中模块的信号差异、时间向量差异。但光凭这些无法做到为本方法提供数据支撑,因此还需要通过被测软件官方公开的bug报告中获取并筛选出可以复现错误的模型作为测试用例以及Github等开源网站上中公开的被测软件第三方真实缺陷反馈案例集。
[0026]在步骤S102中:运行测试用例并分类;
[0027]在本步骤中,运行待约简的测试用例集中所有的测试用例,并根据其结果表现进行分类。具体可分为编译失败与运行结果不一致两大类。具体的区分方式是根据后续步骤中的约简处理方案来针对设计。对于编译失败而言,被测软件通常会直接帮助定位至错误的测试用例模块附近,有助于快速的大批量的筛选出不相干的模块大大提高了约简效率,但是这并不意味着可以直接上报无需约简(事实上,被测软件可能会出现错误虚报或者是由多个复杂的模块共同导致的编译失败),因此对于编译失败的测试用例而言可以通过提示、或是是否编译成功这一关键快速的在后续进行错误定位,因此我们将其归为一类。编译失败在该步骤中特指测试用例在被测软件上强行终止并弹本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于结果回溯的Simulink测试用例约简方法,其特征在于包括:生成能够体现被测软件中错误或缺陷的测试用例,建立待约简测试用例集,收集用于扩大待约简测试用例集的被测软件第三方真实缺陷反馈案例集;运行待约简测试用例集中的测试用例,依照运行结果对测试用例进行分类;采用以结果为导向的模块删除等效测试用例约简方案对运行结果中编译失败的测试用例中的模块进行删除;采用以结果为导向的数据流等效测试用例约简方案对运行结果中成功编译的测试用例中的模块进行删除;运行经约简后的测试用例集,比较与原测试用例集之间的运行结果差异并记录错误或缺陷原因以及诱发问题的测试用例模块;将与原测试用例集运行结果一致的约简后测试用例集进行汇总,并记录诱发原因报告同时上传至被测软件的官方技术支持端;收集被测软件官方技术支持端的意见和建议,优化迭代该Simulink测试用例约简方法。2.根据权利要求1所述的一种基于结果回溯的Simulink测试用例约简方法,其特征在于:所述错误或缺陷的测试用例在被测软件中体现为模...

【专利技术属性】
技术研发人员:郭世凯王子轩孙悦琪杜娜王一安张小雪李晓晨江贺
申请(专利权)人:大连海事大学
类型:发明
国别省市:

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

1