发布信息

一种面向Simulink模型的自动化测试工具及自动化测试方法与流程

作者:admin      2022-07-30 18:01:13     236



计算;推算;计数设备的制造及其应用技术一种面向simulink模型的自动化测试工具及自动化测试方法技术领域1.本发明属于软件测试技术领域,具体涉及面向simulink模型的自动化测试工具及自动化测试方法。背景技术:2.由于新能源汽车电池管理技术迅速发展,软件的复杂程度越来越高,在软件开发和软件迭代过程中,需求变更频繁,软件测试的工作量越来越大。在汽车电子及相关基于simulink模型开发的项目中,当软件随着需求变化而进行修改后,则需要对软件单元模型进行测试,传统的单元测试需要测试人员根据模型和软件详细设计文档进行逐一手动测试,测试效率比较低,耗时较长,重复性操作比较多,同时测试过程中存在人为的不规范操作,无法保证测试结果的准确性和正确性。3.公开号为cn106201891a的中国专利文献公开了名称为“一种模型自动化测试方法和装置”的技术,该技术所描述的方法通过主函数自动调用用户所需测试的excel文档,然后调用外部接口,读取待测的excel数据,之后对表格数据进行分析是否符合基本格式要求,若不满足则退出测试流程,若满足则依次调用输入接口函数及输出接口函数,对所测试模型进行实时测试,最后待模型运行完成之后对所测试的数据进行判断,并将判断结果写入excel测试文档中;该技术在运行时只需启动主函数即可完成整个控制,但是中途不存在暂停或者紧急停止,不利于及时通过测试情况修改软件漏洞,该技术通过编写函数的方法取代了传统手动添加输入信号再通过示波器或者工作空间存储文档对测试结果进行分析的方法,但是缺少可视化界面,无法通过个性化配置实现不同需求的软件测试。技术实现要素:4.本发明的目的是提供一种面向simulink模型的自动化测试工具及自动化测试方法,解决的技术问题:现有面向simulink模型的测试技术不能实现不同需求的测试或者适用范围窄。为解决上述技术问题,本发明采用的技术方案为:一种面向simulink模型的自动化测试工具,包括:加载模块,用于加载待测simulink模型;第一选择模块,用于选择待测simulink模型的输出观测子模块;第二选择模块,用于选择测试用例,并且在相应的路径下分配用于存储测试过程和结果的时间;赋值模块,用于通过初始化文件给待测simulink模型赋值;第一设置模块,用于设置仿真步长和测试结果的比较精度;第三选择模块,用于选择mil或sil仿真模式;第四选择模块,用于选择执行单条或多条测试用例;计算模块,用于计算测试的覆盖度;第二设置模块,用于设置仅对期望时间点数据进行对比或对每一个仿真步长进行对比;自动化测试模块,用于基于测试用例对待测simulink模型执行自动化测试;生成模块,用于基于当前测试用例生成测试结果;比较模块,用于当测试用例未能通过时对未通过的信号进行作图比较,以便分析待测信号随时间流的状态转变。5.本发明还提供一种基于面向simulink模型的自动化测试工具的自动化测试方法,包括的步骤为:s01:读取测试用例及加载待测simulink模型;s02:获取测试用例的输入作为待测simulink模型输入;s03:运行待测simulink模型;s04:获取测试结果;s05:比较测试结果与期望输出,判断是否一致,如果是,该条测试用例通过,如果否,该条测试用例不通过。6.优选地,在所述s01中,读取测试用例的步骤包括加载测试用例和读取测试用例数据,加载测试用例的步骤为:a01:判断测试用例excel文件是否存在;a02:清空test panel的列表,加载excel表格;a03:移除表格里的中文工作表,获取配置项,判断是否存在初始化文件,并获取初始值;a04:忽略不是测试用例的sheet,按顺序加载每条测试用例并将其转换为mat格式;a05:将测试用例数据导入工作区;读取测试用例数据的步骤为:b01:读取测试用例关键字信息;b02:读取时间序列,判断时间数据是否存在及格式是否正确,确保时间序列单调递增;b03:获取输出信息,判断输出数据是否存在及格式是否正确,判断是否存在最大值和最小值;b04:在列表中显示测试用例序号和输入变量名称。7.优选地,在所述s03中,执行测试用例的步骤为:c01:读取选中的测试用例;c02:判断simulink模型输入是否全部存在于测试用例数据中;c03:判断是否存在数据字典文件;c04:记录数据字典中需要修改的变量的原始值;c05:根据测试用例中的值修改数据字典的值;c06:判断测试用例中的期望信号是否全部存在于所选的观测子模块中;c07:记录观测子模块中的信号值;c08:按照仿真步长修改测试模型的配置;c09:运行待测模型,得到仿真输出。8.通过采用上述技术方案,本发明可达到的有益技术效果为:本发明基于前期的总体需求,利用matlab脚本语言编制了一套软件测试工具,该工具的可视化交互界面涵盖了软件测试的总体需求,可供测试人员快速加载待测模型和测试用例,进而完成一键自动化测试,该工具可免去大量手动的、重复的测试工作,并且可以直观地在工具界面根据测试结果和期望输出及时排查软件问题,修复软件漏洞。该工具设置了个性化配置,通过配置可选项能实现不同需求的测试,本发明可实现mil测试或sil测试、逐条测试或全部测试、设置测试结果的比较精度以及计算测试覆盖度等功能,该工具可灵活控制测试进度,可随时中断测试并且对待测simulink模型进行调试,测试结果通过工具的前端界面可直接绘图观测,无需通过excel分析,提升了测试便捷度以及修复软件bug的效率,适用范围广,后续可根据个性化需求进行定制、升级和维护。附图说明9.图1为本发明的工具执行测试任务时的流程图;图2为本工具前端界面图;图3为测试用例格式模板图;图4位测试结果excel图;图5位测试结果可视化界面图。具体实施方式10.下面结合附图对本发明作进一步说明。11.如图2所示,本工具是基于matlab开发的自动化测试工具,matlab是matrix laboratory的缩写形式,matlab主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值,矩阵是指通常用来进行线性代数运算的二维数组,matlab是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab和simulink两大部分。matlabu拥有丰富的算法工具箱,因此在工程计算、控制设计、信号处理与通讯、图形处理、信号检测、金融建模设计与分析等领域都适用。12.如图2所示,测试工具的主显示界面,需要对界面大小和位置、菜单栏、选项按钮、单元格文本等的属性进行设置,然后根据各个选项按钮的作用进行callback回调函数的编写和调用,实现相应的功能。例如,按下“browse”按钮,即可触发模型选择的回调函数,通过open_system函数打开待测simulink模型,点击模型的输出观测子系统,按下“select”即可通过gcb函数获取当前模块的路径名称。13.如图2所示,本发明提供一种面向simulink模型的自动化测试工具,包括:加载模块,用于加载待测simulink模型。14.第一选择模块,用于选择待测simulink模型的输出观测子模块。15.第二选择模块,用于选择测试用例,并且在相应的路径下分配用于存储测试过程和结果的时间。16.赋值模块,用于通过初始化文件给待测simulink模型赋值。17.第一设置模块,用于设置仿真步长和测试结果的比较精度。18.第三选择模块,用于选择mil或sil仿真模式。19.具体地,mil测试即模型在环测试,是在基于模型的开发环境中测试单个或集成模块。20.具体地,sil测试即软件在环测试,是指在pc机上测试嵌入式软件,算法或整个控制回路,无论有无环境模型,因此也无需ecu硬件,sil测试时汽车软件测试不可分割的一部分。21.第四选择模块,用于选择执行单条或多条测试用例。22.计算模块,用于计算测试的覆盖度。23.第二设置模块,用于设置仅对期望时间点数据进行对比或对每一个仿真步长进行对比。24.自动化测试模块,用于基于测试用例对待测simulink模型执行自动化测试。25.生成模块,用于基于当前测试用例生成测试结果。26.比较模块,用于当测试用例未能通过时对未通过的信号进行作图比较,以便分析待测信号随时间流的状态转变。27.从开发的工具前端界面的角度看,用户可以根据自己的测试需求进行相应的操作,在model面板下,选择待测模型的观测子系统;在testcase面板下选择测试用例表格和初始化文件,并且进行仿真步长和仿真精度设置;在testpanel设置仿真模式,可进行“mil”和“sil”测试,选择“case by case”,仅对选中的用例进行测试,选择“all”,对全部用例进行测试:“mcdc”用于计算测试覆盖度;“compare mode”可选择仅对期望时间点数据进行对比或者对每一个仿真步长进行对比;设置完毕通过“run”运行模型和测试用例进行自动化测试;最后通过“report”基于当前测试用例生成测试结果。28.具体地,当点击“run”之后,该工具即开始执行自动化测试任务。29.具体地,测试人员基于上述开发的工具配置好单元模型的测试环境,模型的输入输出信号名要与测试用例的信号名完全一致,待测试环境的模型作为待测模型。另编写初始化脚本文件,为输入信号赋初值,信号名必须与模型的输入信号名一致,其中,初始化文件可单独编写,也可编写在测试用例文件的excel表里。还需要编写测试用例,如图3所示,表中有关键字,分别代表测试用例的描述信息、该条测试用例对应的需求信息、关联的数据字典文件、需要修改的数据字典变量值(集成测试时需要)、测试序列信息,根据软件需求给出相应的输入和输出。30.如图1、图4及图5所示,基于该工具的自动化测试方法的步骤为:第一步,读取测试用例及加载待测simulink模型,其中,读取测试用例的步骤包括加载测试用例和读取测试用例数据,加载测试用例的步骤为:判断测试用例excel文件是否存在;清空test panel的列表,加载excel表格;移除表格里的中文工作表,获取配置项,判断是否存在初始化文件,并获取初始值;忽略不是测试用例的sheet,按顺序加载每条测试用例并将其转换为mat格式;将测试用例数据导入工作区。31.读取测试用例数据的步骤为:读取测试用例关键字信息;读取时间序列,判断时间数据是否存在及格式是否正确,确保时间序列单调递增;获取输出信息,判断输出数据是否存在及格式是否正确,判断是否存在最大值和最小值;在列表中显示测试用例序号和输入变量名称。32.第二步,获取测试用例的输入作为待测simulink模型输入。33.第三步,运行待测simulink模型,其中,包括执行测试用例,执行测试用例的步骤为:读取选中的测试用例;判断simulink模型输入是否全部存在于测试用例数据中;判断是否存在数据字典文件;记录数组字典中需要修改的变量的原始值;根据测试用例中的值修改数据字典的值;判断测试用例中的期望信号是否全部存在于所选的观测子模块中;记录观测子模块中的信号值;按照仿真步长修改测试模型的配置;运行待测模型,得到仿真输出。34.如图4所示,第四步,获取测试结果。35.第五步,比较测试结果与期望输出,判断是否一致,如果是,该条测试用例通过,如果否,该条测试用例不通过。如图5所示,如果测试用例未能通过,可对未通过的信号进行作图比较,可直观地分析待测信号随时间流的状态转变,从而对待测模型进行逆向分析,排查软件问题。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部