一种模型软件测试结果分析方法及装置技术领域
本发明涉及计算机软件技术领域,特别是涉及一种模型软件测试结果分析方法及
装置。
背景技术
目前,基于Mathworks公司推出的Matlab的Simulink、Stateflow或Targetlink的
模型化软件成型之后,可以基于设计任务书进行前期的测试验证,而不必等输入到真实的
控制器进行测试验证。
对于较为复杂的模型软件,人工开发的模型中存在较多的缺陷,测试和验证就显
得非常重要,但是测试验证的工作难,工作量大。测试人员每执行一条测试用例就需要对测
试结果进行分析。对利用Simulink、Stateflow或Targetlink开发的模型软件进行测试时,
需要将待分析的信号接入到Scope或者利用其他方式保存到Workspace中。对于软件输出信
号较多的模型软件来说,增加过多的Scope模块或To Workspace模块,都会占用运行空间,
甚至可能导致空间溢出而停止仿真。即使不会导致空间溢出停止仿真,测试人员参照测试
用例预期结果对每一个输出信号进行分析,不仅工作量大,而且容易出现人为操作错误。因
此,寻找一种自动分析测试结果的方法就相当有意义,具有省人工、省人力、效率高、正确性
有保障的优点。
发明内容
本发明的目的是提供一种模型软件测试结果分析方法及装置,以实现自动分析测
试结果,提升测试效率。
为解决上述技术问题,本发明提供一种模型软件测试结果分析方法,该方法包括:
在模型软件中搜索待观测信号,对待观测信号配置属性参数;
对待观测信号执行测试用例,完成模型软件的仿真;
利用待观测信号中所配置的属性参数记录模型软件的仿真结果;
将仿真结果与测试用例的预期结果进行比对,若不一致,则测试用例不通过。
优选的,所述在模型软件中搜索待观测信号,对待观测信号配置属性参数,包括:
选择待观测信号所在的子系统Subsystem;
在子系统Subsystem中查找到与待观测信号命名相同的对象;
对所述对象进行属性配置。
优选的,对待观测信号执行测试用例,完成模型软件的仿真,包括:
针对所有待观测信号,判断搜索结果中是否至少有一个对象的名称与测试用例对
应的待观测信号命名相同,若是,执行测试用例;
调用测试用例,仿真模型软件。
优选的,将仿真结果与测试用例的预期结果进行比对,若不一致,则测试不通过之
后,还包括:
将导致测试未通过的待观测信号写入文档中。
本发明还提供一种模型软件测试结果分析装置,该装置包括:
搜索模块,用于在模型软件中搜索待观测信号,对待观测信号配置属性参数;
仿真模块,用于对待观测信号执行测试用例,完成模型软件的仿真;
记录模块,用于利用待观测信号中所配置的属性参数记录模型软件的仿真结果;
比对模块,用于将仿真结果与测试用例的预期结果进行比对,若不一致,则测试用
例不通过。
优选的,所述搜索模块包括:
选择单元,用于选择待观测信号所在的子系统Subsystem;
查找单元,用于在子系统Subsystem中查找到与待观测信号命名相同的对象;
配置单元,用于对所述对象进行属性配置。
优选的,所述仿真模块包括:
判断单元,用于针对所有待观测信号,判断搜索结果中是否至少有一个对象的名
称与测试用例对应的待观测信号命名相同,若是,执行测试用例;
仿真单元,用于调用测试用例,仿真模型软件。
优选的,所述装置还包括:
写入模块,用于将导致测试未通过的待观测信号写入文档中。
本发明所提供的一种模型软件测试结果分析方法及装置,在模型软件中搜索待观
测信号,对待观测信号配置属性参数;对待观测信号执行测试用例,完成模型软件的仿真;
利用待观测信号中所配置的属性参数记录模型软件的仿真结果;将仿真结果与测试用例的
预期结果进行比对,若不一致,则测试用例不通过。可见,在模型软件中搜索需要观测的信
号并设置属性使其在模型仿真时记录仿真结果数据,仿真结束后对这些信号与测试用例的
预期结果进行对比,不一致则测试不通过,如此采用自动分析不仅能够保证对结果分析的
正确性,还能够大幅提高测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
图1为本发明所提供的一种模型软件测试结果分析方法的流程图;
图2为模型软件测试结果分析具体流程图;
图3为本发明所提供的一种模型软件测试结果分析装置的结构示意图。
具体实施方式
本发明的核心是提供一种模型软件测试结果分析方法及装置,以实现自动分析测
试结果,提升测试效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的
附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明所提供的一种模型软件测试结果分析方法的流程图,该方法包括:
步骤1、在模型软件中搜索待观测信号,对待观测信号配置属性参数;
步骤2、对待观测信号执行测试用例,完成模型软件的仿真;
步骤3、利用待观测信号中所配置的属性参数记录模型软件的仿真结果;
步骤4、将仿真结果与测试用例的预期结果进行比对,若不一致,则测试用例不通
过。
可见,在模型软件中搜索需要观测的信号并设置属性使其在模型仿真时记录仿真
结果数据,仿真结束后对这些信号与测试用例的预期结果进行对比,不一致则测试不通过,
如此采用自动分析不仅能够保证对结果分析的正确性,还能够大幅提高测试效率。
基于上述方法,步骤1的过程具体为:选择待观测信号所在的子系统Subsystem;在
子系统Subsystem中查找到与待观测信号命名相同的对象;对所述对象进行属性配置。
进一步的,步骤2的过程具体包括:针对所有待观测信号,判断搜索结果中是否至
少有一个对象的名称与测试用例对应的待观测信号命名相同,若是,执行测试用例;调用测
试用例,仿真模型软件。
进一步的,将仿真结果与测试用例的预期结果进行比对,若不一致,则测试不通过
之后,还包括:将导致测试未通过的待观测信号写入文档中。
本方法在模型软件中搜索需要分析的信号并设置属性使其在模型仿真时记录仿
真结果数据,仿真结束后对这些信号与测试用例的预期结果进行对比,记录测试结果中存
在与预期结果不一致信号。采用自动分析不仅能够保证对结果分析的正确性,还能够大幅
提高测试效率。其中,在指定的Subsystem中搜索需要分析的信号并对其属性进行配置,对
测试结果与预期结果进行对比分析,并将与预期结果不一致的信号记录到文档中。
本方法采用自动分析测试结果能够规避人为分析错误;采用自动分析测试结果能
够大幅提升测试效率;采用自动分析测试结果可以实现测试人员直接查看测试结果,无需
全程跟进测试。
基于上述方法,以使用Matlab编写M文件实现自动分析模型软件的测试结果为例,
具体流程如图2,具体流程包括:
S1:对待测模型软件进行参数配置,使其能够保存仿真过程数据。
S2:选择待分析的信号所在的子系统Subsystem。通常一个项目软件是多个开发人
员完成的,那么就难免存在信号重命名的情况。测试人员会把模型软件的所有输出信号引
入到同一个Subsystem中,一方面一定程度上避免信号观测信号的重命名,另一方面也能够
确保接口的覆盖率。
S3:创建一个文档,用来记录测试过程中的问题,可以采用系统时间命名文本文
档,这样可以有效避免文本文档的重命名,还能提示测试人员执行测试的时间。
S4:选择待执行的测试用例,其中包括输入数据和预期结果数据。测试用例可以是
不同文件保存的,但是最后需要转化为.mat格式,以便模型软件仿真时调用。
S5:判断测试用例是否执行完,如果没有,则继续执行用例,如果执行完了,则保存
并关闭文档。
S6:所有测试用例执行完以后,保存并关闭文档。
S7~S19:逐一执行所选取的测试用例:搜索并配置待观测的信号,自动仿真,自动
分析测试结果并将过程中的问题信息写入文档中。
S7:在Subsystem中搜索第c条用例中所有待观测信号命名相同的对象。在搜索的
过程中,需要考虑模型软件中某些特殊的模块对信号名称格式的修改,例如,当信号通过
Bus Creator模块封装成总线类型后在通过Bus Selector模块重新引出时,信号线的名称
前后分别被自动加上了“<”和“>”。
S8:针对所有待观测信号,判断搜索结果中是否有且只有一个对象的名称与测试
用例相应待观测信号命名相同。对于较复杂的模型,一般需要多个程序员共同完成,虽然有
命名规则来规范程序员对信号的命名,但是不能完全保证不存在重命名信号,所以需要对
搜索结果进行分析。
S9:如果部分待观测信号在Subsystem中没有搜索到相应的对象,则表示不能对这
些信号的正确性进行判断,那么将该条用例划为不通过的一类中,以便提示测试人员排查
问题后重新测试。
S10:判断搜索结果中是否至少只有一个对象的名称与测试用例相应待观测信号
命名相同。如果有,则执行该测试用例,并对存在的待观测信号结果进行分析,如果没有,则
执行下一条测试用例。
S11:将在Subsystem没有搜索到相应对象的待观测信号记录到文档中,以便提示
测试人员。
S12:对搜索出来与待观测信号命名相同的对象进行属性配置,使其能够记录仿真
过程数据,用于仿真结束后自动分析。
S13:对所有对象的属性配置完成之后,自动开始仿真模型软件。
S14:模型软件仿真完成之后,将所有属性被修改过的对象重新复原。
S15:将仿真结果中的所有信号与预期结果中相应信号进行对比分析判断是否正
确。相同名称的两个信号所包含的两组数据作差,差值在一定范围内则认为是正确的,否则
判定为错误的。对于有时序要求的数据,作差时需要考虑相同时刻的数据作差,否则会存在
对结果的误判。
S16:判定所有待观测信号是否都被分析并且结果都正确。
S17:如果所有待观测信号都被分析并且结果都正确,则该条测试通过。
S18:如果有待观测信号未被分析或者结果中存在不正确的,则该条测试不通过。
S19:模型软件仿真结束后将导致测试未通过的信号写入文档中待测试人员有针
对性的分析。
请参考图3,图3为本发明所提供的一种模型软件测试结果分析装置的结构示意
图,该装置包括:
搜索模块101,用于在模型软件中搜索待观测信号,对待观测信号配置属性参数;
仿真模块102,用于对待观测信号执行测试用例,完成模型软件的仿真;
记录模块103,用于利用待观测信号中所配置的属性参数记录模型软件的仿真结
果;
比对模块104,用于将仿真结果与测试用例的预期结果进行比对,若不一致,则测
试用例不通过。
基于上述装置,具体的,搜索模块包括:
选择单元,用于选择待观测信号所在的子系统Subsystem;
查找单元,用于在子系统Subsystem中查找到与待观测信号命名相同的对象;
配置单元,用于对所述对象进行属性配置。
进一步的,所述仿真模块包括:
判断单元,用于针对所有待观测信号,判断搜索结果中是否至少有一个对象的名
称与测试用例对应的待观测信号命名相同,若是,执行测试用例;
仿真单元,用于调用测试用例,仿真模型软件。
进一步的,所述装置还包括:
写入模块,用于将导致测试未通过的待观测信号写入文档中
综上,本发明所提供的一种模型软件测试结果分析方法及装置,在模型软件中搜
索待观测信号,对待观测信号配置属性参数;对待观测信号执行测试用例,完成模型软件的
仿真;利用待观测信号中所配置的属性参数记录模型软件的仿真结果;将仿真结果与测试
用例的预期结果进行比对,若不一致,则测试用例不通过。可见,在模型软件中搜索需要观
测的信号并设置属性使其在模型仿真时记录仿真结果数据,仿真结束后对这些信号与测试
用例的预期结果进行对比,不一致则测试不通过,如此采用自动分析不仅能够保证对结果
分析的正确性,还能够大幅提高测试效率。
以上对本发明所提供的一种模型软件测试结果分析方法及装置进行了详细介绍。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用
于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,
在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也
落入本发明权利要求的保护范围内。