一种基于量纲转换的嵌入式软件测试方法
【专利摘要】本发明涉及一种基于量纲转换的嵌入式软件测试方法,包括:配置并发送数据和接收并解析数据;配置并发送数据包括用户定义源变量并且选择变量类型、设置源变量与发送变量之间的量纲转换规则的定义规则部分、设置源变量转换之后在发送变量中对应的位置及源变量与发送变量之间的量纲转换规则的执行规则部分;接收并解析数据包括用户定义接收变量、配置接收变量类型、选择目的变量在接收变量中对应的位置及接收到数据后马上完成接收变量对应的所有目的变量的量纲转换。本发明减少了测试过程中人工对数据换算的操作,充分保证数据收发的实时性。同时又可以过滤干扰数据只对有效数据进行处理提高了效率。
【专利说明】一种基于量纲转换的嵌入式软件测试方法
【技术领域】
[0001]本发明涉及计算机软件实时测试领域,尤其涉及基于量纲转换的嵌入式软件测试方法。
【背景技术】
[0002]软件测试作为提高软件的可靠性和质量的重要手段广泛应用于软件全生命周期的各个阶段中。与一般形式的软件相比,嵌入式更注重实时性、专用性和硬件依赖。嵌入式软件的输入输出基本都是通过硬件接口实现的。对于嵌入式的软件测试考虑其对输入输出数据的正确性的同时也应该考虑到软件的实时性。面对测试过程中大量的数据,我们怎样快速有效的寻找出我们真正关心的数据显得尤为重要。
[0003]测试过程中得到的数据一般情况下只是一些二进制数值,而用户需要的是这些数据对应得现实中的具有物理意义的数据。如何把这些二进制数值快速有效的转换成用户真正关心的物理量成为嵌入式软件测试需要面临的问题。有时这些数值与真实值是线性关系,但是有时又不是。尤其是在实时测试中,整个测试过程会因为发送和接收数值与真实值的变换会消耗很多资源,造成测试过程受到测试资源的限制而使测试的效率和质量低下。所以有必要寻找一种快速有效的方法来实现数值之间的转换已达到解决上述问题的目的。
【发明内容】
[0004]本发明技术解决问题:克服现有技术的不足,提供一种基于量纲转换的嵌入式软件测试方法,减少了测试过程中人工对数据换算的操作,充分保证数据收发的实时性。同时又可以过滤干扰数据只对有效数据进行处理提高了效率。
[0005]本发明的技术方案是这样实现的。
[0006]一种基于量纲转换的嵌入式软件测试方法,该方法包括:
[0007]A.配置并发送数据;
[0008]B.接收并解析数据;
[0009]其中步骤A包括:
[0010]Al.用户定义源变量并且选择变量类型。所谓源变量就是用户定义的对应真实物理量的变量,即需要做量纲转换的变量。源变量如果是周期变化的选择周期型变量,如果是事件触发变化的选择事件触发型变量。
[0011]A2.用户定义发送变量并且选择变量类型。所谓发送变量就是按照与被测件之间的通讯协议定义的测试过程中需要从真实总线实际发送的变量。如果发送变量需要周期发送则选择周期型,如果变量的发送以某一事件为条件触发则选择事件触发型。
[0012]A3.设置源变量与发送变量之间的量纲转换规则的定义规则部分。定义规则部分需要用户自己定义量纲转换规则,包括定义运算规则和建立映射表两种方式。
[0013]其中步骤A3包括:
[0014]A31.用户定义运算规则需要给出源变量到发送变量的计算公式,公式中需要注明变量的类型。
[0015]A32.当源变量和发送变量之间的转换不可以通过计算获得则选用建立映射表。在映射表中列举出源变量对应的发送变量的值。
[0016]A4.设置源变量转换之后在发送变量中对应的位置。
[0017]A5.源变量与发送变量之间的量纲转换规则的执行规则部分。
[0018]其中步骤A5包括:
[0019]A51.发送变量是周期型,测试环境根据定义的发送周期把发送变量中包含的所有的源变量经过量纲转换之后通过位操作赋值到对应位置,实时发送;
[0020]A52.发送变量是事件触发型,如果发送条件成立把发送变量中包含的所有的源变量经过量纲转换之后通过位操作赋值到对应位置,实时发送。
[0021]其中步骤B包括:
[0022]B1.用户定义接收变量。所谓接收变量就是测试过程中通过物理连接从被测件实际接收数据的变量。配置接收变量类型。实时测试中的接收变量类型可以分成两种形式,一种是中断一种是轮询。选择中断的时候,当板卡接收到数据就会触发中断,在中断服务程序中收集数据;当选择轮询接收的时候,测试环境会根据轮询周期,到板卡中读取数据。
[0023]其中步骤BI包括:
[0024]Bll.如果实时测试中,被测系统按照特定的时间间隔发送用于测试的数据,这时候就应该采用轮询接收方式。
[0025]B12.如果被测系统发送测试数据没有固定的周期则采用中断接收。
[0026]B2.用户定义目的变量。所谓目的变量就是从接收变量中提取出来做量纲转换之后得到的变量,既具有物理意义的变量。
[0027]B3.用户定义量纲转换规则。
[0028]其中步骤B3包括:
[0029]B31.建立接收变量到目的变量的转换规则,其规则包括自定义运算规则和建立映射表两种方式。
[0030]B32.当接收变量到目的变量可以通过公式计算得到则采用自定义运算规则。用户给出计算公式的表达式,并注明变量类型。
[0031]B33.接收变量与目的变量之间不存在计算关系,可以把接收变量和目的变量之间的关系定义成映射表。根据接收变量查表得到目的变量。
[0032]B4.选择目的变量在接收变量中对应的位置。
[0033]B5.接收到数据后马上完成接收变量对应的所有目的变量的量纲转换,然后把转换之后的数据保存到用户指定的位置,并且显示出来,便于用户观察和分析数据。
[0034]本发明与现有技术相比的优点在于:本发明根据规则自动完成真实数值到发送数据的转换,减少了测试过程中人工对数据换算的操作,充分保证数据收发的实时性。同时又可以过滤干扰数据只对有效数据进行处理提高了效率。方便用户观察记录。
【专利附图】
【附图说明】
[0035]图1为数据发送部分流程图;
[0036]图2为数据接收部分流程图。具体实施方案
[0037]下面结合附图做进一步的详细描述。
[0038]本发明提供的一种基于量纲转换的嵌入式软件测试方法包括数据配置并发送数据和接收并解析数据部分。测试环境运行于VxWorks实时嵌入式操作系统。
[0039]实时测试环境采用的是美国风河公司的VxWorks操作系统。它以其良好的可靠性和卓越的实时性被广泛应用在实时性要求极高的领域中。该系统能够在限定的时间内完成规定的功能,并且能在限定的时间内对外部的异步事件做出响应。
[0040]数据发送部分的量纲转换方法步骤结合附图1作如下说明:
[0041]Sll:定义源变量。定义源变量包括定义变量和变量类型。其中变量类型包括周期型和事件触发型两种。周期型源变量是根据设定好的周期按照测试过程中的测试脚本改变自身数值,事件触发型是判断是否满足设定条件,如果满足设定条件则按照测试过程中的测试脚本改变自身数值。
[0042]S12:定义发送变量。定义发送变量包括定义变量长度和变量发送类型。
[0043]发送变量可能包括很多信息,所以有的时候会很长。这里发送变量可以使用包含多个char型变量的结构体表示。如长度为3字节的变量,可以使用结构体{char sub_l ;char sub_2 ;char sub_3}来表不。
[0044]变量发送类型同样是包含周期型和事件触发型。
[0045]S13:定义源变量到发送变量的量纲转换。具体步骤如下:
[0046]a)选择需要跟发送变量建立量纲转换规则的源变量。
[0047]b)选择量纲转换的类型,其类型包括定义运算规则和建立映射表两种方式。如果选择定义运算规则则需要给出变量的计算公式,在公式中应该注明各个变量的类型和对应的源变量。例如(int) a+ (short) b+ (double) c+0x64o
[0048]如果是选择建立映射表则需要在映射表中给出源变量和源变量转换之后的数值的对应关系。
[0049]c)设定源变量经过量纲转换之后在发送变量中对应的位置。
[0050]S14:开始测试,测试系统根据发送变量的类型判断是否满足发送条件。周期型的发送变量的判断标准是是否满足发送周期要求,事件型的发送变量的判断标准是是否满足之前设定的发送条件。如果不满足则等待下一个判断周期。
[0051]S15:当变量满足发送条件时,测试系统应该把跟满足条件的发送变量建立量纲转换规则的源变量按照之前设定的量纲转换规则做量纲转换,之后把得到的结构按位操作赋值到设定的位置,最后发送变量。
[0052]接收部分的量纲转换方法步骤结合附图2做如下说明:
[0053]S21:定义接收变量,包括定义接收变量长度和接收方式。定义变量长度的方法同S12中定义发送变量的方法。接收方式包括轮询接收和中断接收。中断接收时接收测试端口收到的所有数据,轮询是只接收特定周期发送过来的数据。
[0054]S22:定义目的变量。用于方便用户观察和记录。
[0055]S23:定义接收变量到目的变量的量纲转换规则。具体步骤如下:
[0056]a)选择需要跟接收变量建立量纲转换规则的目的变量。
[0057]b)选择量纲转换的类型,其类型包括定义运算规则和建立映射表两种方式。如果选择定义运算规则则需要给出变量的计算公式,在公示中应该注明各个变量的类型和对应的源变量。其方法同S13种步骤b。
[0058]如果是选择建立映射表则需要在映射表中给出源变量和源变量转换之后的数值的对应关系。
[0059]c)设定目的变量经过量纲转换之前在接收变量中对应的位置。
[0060]S24:根据之前设定的接收变量的接收类型接收数据,之后对与接收变量建立关系的所有目的变量做量纲转换,并赋值给目的变量,然后把数据保存到结果中并且显示出来。
[0061]本发明提供的测试方法是针对实时嵌入式软件测试时数据的处理而提出的。可以为在测试的时候关注特定的数据提供方法支持。特别适用于大数据量中提取特定数据的测试情况。
[0062]虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
【权利要求】
1.一种基于量纲转换的嵌入式软件测试方法,其特征在于包括: 步骤A.配置并发送数据; 步骤B.接收并解析数据; 其中步骤A包括: Al.用户定义源变量并且选择变量类型,所谓源变量就是用户定义的对应真实物理量的变量,即需要做量纲转换的变量;源变量如果是周期变化的选择周期型变量,如果是事件触发变化的选择事件触发型变量; A2.用户定义发送变量并且选择变量类型,所谓发送变量就是按照与被测件之间的通讯协议定义的测试过程中需要从真实总线实际发送的变量;如果发送变量需要周期发送则选择周期型,如果变量的发送以某一事件为条件触发则选择事件触发型; A3.设置源变量与发送变量之间的量纲转换规则的定义规则部分,定义规则部分需要用户自己定义量纲转换规则,包括定义运算规则和建立映射表两种方式; 其中步骤A3包括: A31.用户定义运算规则需要给出源变量到发送变量的计算公式,公式中需要注明变量的类型; A32.当源变量和发送变量之间的转换不可以通过计算获得则选用建立映射表,在映射表中列举出源变量对应的发送变量的值; A4.设置源变量转换之后在发送变量中对应的位置; A5.源变量与发送变量之间的量纲转换规则的执行规则部分; 其中步骤A5包括: A51.发送变量是周期型,测试环境根据定义的发送周期把发送变量中包含的所有的源变量经过量纲转换之后通过位操作赋值到对应位置,实时发送; A52.发送变量是事件触发型,如果发送条件成立把发送变量中包含的所有的源变量经过量纲转换之后通过位操作赋值到对应位置,实时发送; 其中步骤B包括: B1.用户定义接收变量,所谓接收变量就是测试过程中通过物理连接从被测件实际接收数据的变量,配置接收变量类型;实时测试中的接收变量类型分成两种形式,一种是中断,另一种是轮询,选择中断的时候,当板卡接收到数据就会触发中断,在中断服务程序中收集数据;当选择轮询接收的时候,测试环境会根据轮询周期,到板卡中读取数据; B2.用户定义目的变量,所谓目的变量就是从接收变量中提取出来做量纲转换之后得到的变量,既具有物理意义的变量; B3.用户定义量纲转换规则; 其中步骤B3包括: B31.建立接收变量到目的变量的转换规则,其规则包括自定义运算规则和建立映射表两种方式; B32.当接收变量到目的变量可以通过公式计算得到则采用自定义运算规则,用户给出计算公式的表达式,并注明变量类型; B33.接收变量跟目的变量之间不存在计算关系,把接收变量和目的变量之间的关系定义成映射关系表,根据接收变量查表得到目的变量; B4.选择目的变量在接收变量中对应的位置; B5.接收到数据后马上完成接收变量对应的所有目的变量的量纲转换,然后把转换之后的数据保存到用户指定的位置,并且显示出来,便于用户观察和分析数据。
2.根据权利要求1所述的基于量纲转换的嵌入式软件测试方法,其特征在于:所述步骤BI中, 如果实时测试中,被测系统按照特定的时间间隔发送用于测试的数据,这时候就应该采用轮询接收方式; 如果被测系统发送测试数据没有固定的周期则采用中断接收。
【文档编号】G06F11/36GK104317717SQ201410602648
【公开日】2015年1月28日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】杨顺昆, 刘斌, 司维, 孟凡杰 申请人:北京航空航天大学