一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于嵌入式软件接口消息测试的随机测试方法及系统与流程

2022-07-06 08:43:33 来源:中国专利 TAG:


1.本发明涉及嵌入式软件的测试技术,尤其是涉及一种用于嵌入式软件接口消息测试的随机测试方法及系统。


背景技术:

2.嵌入式软件的接口消息测试是一项耗时且开销巨大的工作,有研究表明测试开销可达整个软件开发过程开销的40%以上。嵌入式软件的消息接口协议一般较多,少则几个,多则几十个,其中,消息接口的测试有其需要长时间连续性、产生数据量大、易测试性差等特点,同时嵌入式软件对鲁棒性的要求极高、对于测试中故障模拟需求量大。目前,多通过人工手工设计故障场景,人工切换不同的测试策略,人工检查被测对象的反馈结果等方式来执行嵌入式软件的接口消息测试。因此,在接口消息测试阶段需要投入的人力和时间开销及其巨大。若能建立一套系统的、高效的嵌入式软件接口消息测试的随机测试解决方案,可以节约大量的测试人力和时间。
3.针对上述问题,如何来实现一种能够便于测试人员能够方便描述消息,能够不需要测试人员参与的情况下有目的的决策每一步的输出,能够快速定位被测对象反馈的异常,以及能够在各种不同的测试策略间无成本地、迅速地来回切换的接口消息测试方法已经成为一个需要解决的技术问题。


技术实现要素:

4.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于嵌入式软件接口消息测试的随机测试方法及系统,解决了现有技术在嵌入式软件的接口消息测试过程中,故障场景设计不全、切换测试策略不方便、检查反馈结果容易出纰漏,同时耗费人力和时间的问题。
5.本发明的目的可以通过以下技术方案来实现:
6.根据本发明的第一方面,提供了一种用于嵌入式软件接口消息测试的随机测试方法,该方法包括以下步骤:
7.步骤1:根据被测试嵌入式软件对象的接口消息协议,以设定脚本语言描述接口消息体,并确定消息体中每个字段的赋值策略;
8.步骤2:根据输入的测试策略,选择一种测试接口消息的测试工作模式;
9.步骤3:根据选定的测试工作模式,模拟通信对象给被测试对象发送消息序列;
10.步骤4:接收并解析被测试对象的消息,并记录对模拟通信对象发送消息的反馈,作为之后发送消息的决策因素。
11.作为优选的技术方案,该随机测试方法中的被测嵌入式软件工作在互联开放环境中,其接口消息通信工作在iso/osi协议栈之上,与具体的物理连接无关。
12.作为优选的技术方案,所述步骤1中的设定脚本语言包括xml、json以及自定义格式的配置文件。
13.作为优选的技术方案,所述步骤1中的消息体中每个字段的赋值策略包括三级优先级消息字段赋值策略,分别为:
14.容器级,优先级最高,通过离线方式修改特定消息字段,或以在线方式强制修改特定消息字段,用来注入故障或是模拟特殊场景;
15.设置级,优先级低于容器级,即,如果对消息的同一个字段,在容器级和设置级都作了修改,则以容器级的修改为准;
16.默认级,优先级低于设置级,优先级的定义同所述设置级中的描述;在默认级直接设置消息字段的初始值,如果没有设置级和容器级的赋值,则持续保持。
17.作为优选的技术方案,所述设置级包含多种字段修改方式,具体为:直接使用简单逻辑,使用自定义函数,使用消息引用,以及使用项目自定义配置。
18.作为优选的技术方案,所述设置级的消息引用是指从被测试对象返回的消息中抓取特定字段作为设置发送消息中的特定字段的取值。
19.作为优选的技术方案,所述设置级的项目自定义配置是指在不修改其他配置和测试平台的模拟器的情况下,仅设置与设定项目绑定的设定参数,达到测试消息接口的目的。
20.作为优选的技术方案,所述步骤2中的测试工作模式包括:烤机模式、极限模式、单点故障模式、随机故障模式以及混合模式;
21.所述的烤机模式,是指按照上级需求中要求被测试对象的最长工作时间,对被测对象进行持续的接口消息测试;
22.所述的极限模式,是指按照上级需求中要求被测试对象最多同时并发通信的个数,对被测对象进行接口消息测试;
23.所述的单点故障模式,是指通过所述的消息体中字段的赋值策略来设置单个字段的故障赋值,来进行接口消息测试;
24.所述的随机故障模式,是指通过所述的消息体中字段的赋值策略来设置单个或多个字段的故障赋值,来进行接口消息测试;
25.所述的混合模式,是指将上述测试工作模式两两组合,或是多个组合,来进行接口消息测试。
26.作为优选的技术方案,所述烤机模式时,需要对产生的记录作特殊的处理。
27.作为优选的技术方案,所述步骤3中的发送消息序列具体包括以下步骤:
28.步骤31,确认所处的测试工作模式;
29.步骤32,记录已发送的故障模式,并记录被测对象的反馈消息情况;
30.步骤33,根据所处的测试工作模式,已发送的故障模式以及测对象的反馈消息情况,决定下一步的随机取值。
31.作为优选的技术方案,所述步骤4中的接收并解析被测试对象包括校验错误和捕捉异常:
32.所述的校验错误,是指根据上级需求以及接口定义,检查被测对象返回的消息中的每个字段是否在规定的取值范围内;
33.所述的捕捉异常,是指检查被测试对象是否返回告警报错信息,是否出现返回消息时间间隔异常,是否出现不返回心跳包的疑似宕机现象。
34.根据本发明的第二方面,提供了一种用于所述用于嵌入式软件接口消息测试的随
机测试方法的系统,该系统包括:
35.消息定义模块,用于以设定脚本语言描述接口消息的消息体;
36.接收发送模块,用于接收被测对象发送的消息,根据测试工作模式和反馈策略来生成应答消息并发送至被测对象;
37.随机发生模块,产生随机值,用于字段赋值,随机故障模式以及混合模式设置;
38.反馈决策模块,用于判断被测对象的反馈,决定下一步的发送策略;
39.消息记录模块,用于记录已产生的消息以及接收到的消息,记录的策略根据测试工作模式可配置。
40.作为优选的技术方案,所述消息定义模块包括:
41.容器设置单元,用于离线修改特定消息字段,或者在线强制修改特定消息字段,用来注入故障或是模拟特殊场景,设置字段值的优先级最高;
42.值设置单元,用于设置字段值的优先级次高;包含多种字段修改方式:直接使用简单逻辑,使用自定义函数,使用消息引用,以及使用项目自定义配置;
43.默认值设置单元,用于直接设置消息字段的初始值,如果没有设置级和容器级的赋值,则持续保持,设置字段值的优先级最低。
44.作为优选的技术方案,所述值设置单元的消息引用是指从被测试对象返回的消息中抓取设定字段作为设置发送消息中的设定字段的取值。
45.作为优选的技术方案,所述值设置单元的项目自定义配置是指在不修改其他配置和测试平台的模拟器的情况下,仅设置与特定项目绑定的特定参数,达到测试消息接口的目的。
46.作为优选的技术方案,所述接收发送模块包括:
47.校错单元,用于根据上级需求以及接口定义,检查被测对象返回的消息中的每个字段是否在规定的取值范围内;
48.异常捕捉单元,用于检查被测试对象是否返回告警报错信息,是否出现返回消息时间间隔异常,是否出现不返回心跳包的疑似宕机现象;
49.工作模式单元,用于记录已发送的故障消息的故障模式,判断所处的测试工作模式,发送反馈决策模块生成的输出。
50.作为优选的技术方案,所述故障模式包括:字段的边界值、字段的取值之外的值、非法的字段、错误校核值、重复的时间戳;
51.所述的测试工作模式包括烤机模式、极限模式、单点故障模式、随机故障模式以及混合模式。
52.作为优选的技术方案,所述随机发生模块使用基于有限状态机的伪随机数生成算法,其工作在三个层级上:
53.消息体字段值的故障注入时的随机取值;
54.随机故障工作模式下,故障字段的随机组合;
55.混合模式下,并发工作模式与随机故障模式的混合,故障模拟设备的随机组合选取。
56.作为优选的技术方案,所述反馈决策模块由一个定制的反馈系统组成,
57.所述的反馈系统的输入包括:被测对象的反馈应答消息、已发送的消息、工作模
式;
58.所述的反馈系统的输出即为生成的消息序列;
59.所述的反馈系统的处理逻辑由下列策略算法组成:
60.被测对象的反馈应答正常,则根据工作模式继续发送消息序列;
61.被测对象的反馈应答异常,则根据配置选取不同的策略,包括:
62.停止接口消息测试;
63.根据工作模式继续发送消息序列,如果当前在故障工作模式,则持续发送消息序列,检查被测对象是否发生疑似宕机;
64.以及无论处在何种工作模式下,先发送正常的非故障的接口消息,检查被测对象是否恢复;若恢复,则继续根据工作模式继续发送消息序列;若没有恢复,则停止接口消息测试。
65.作为优选的技术方案,所述消息记录模块包含多种压缩策略,包括不压缩、deflate算法压缩、lzma2算法压缩以及差异存储;在选择测试工作模式时配置消息记录压缩策略;在烤机工作模式下默认使用差异存储。
66.根据本发明的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现所述的方法。
67.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的方法。
68.与现有技术相比,本发明具有以下优点:
69.1)本发明实现了一种能够便于测试人员能够方便描述消息,能够不需要测试人员参与的情况下有目的的决策每一步的输出,能够快速定位被测对象反馈的异常,以及能够在各种不同的测试策略间无成本地、迅速地来回切换的接口消息测试方法;
70.2)本发明在同一个系统中支持多套测试工作模式,并且各个工作模式可以无成本切换,克服了现有技术中切换测试策略、测试环境耗时耗力的弊端;
71.3)本发明设计了自反馈系统和随机值机制,能够在没有测试人员参与的情况下有目的的决策每一步的输出,克服了现有技术中工人设计故障不全的缺陷;
72.4)本发明设计了自动校错和异常捕捉并存储标记,克服了现有技术中人工检查反馈结果容易出纰漏的缺陷。
附图说明
73.图1为本发明用于嵌入式软件接口消息测试的随机测试方法的流程示意图;
74.图2为本发明用于嵌入式软件接口消息测试的随机测试详细流程示意图;
75.图3为本发明用于嵌入式软件接口消息测试的随机测试反馈策略示意图。
具体实施方式
76.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
77.以下结合附图1、附图2和附图3对本发明提出的用于嵌入式软件接口消息测试的随机测试方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
78.为克服已有的嵌入式软件接口消息测试方法存在的不足,本实施例提供了一种用于嵌入式软件接口消息测试的随机测试方法,包括:
79.步骤s1:根据被测试嵌入式软件对象的接口消息协议,以脚本语言描述接口消息体,确定消息体中每个字段的赋值策略;脚本语言可以是xml、json以及自定义格式的配置文件中的任意一种;
80.步骤s1.1:以脚本语言描述的接口消息体为基础,为每个字段设置默认值,该默认值为必填项,在测试初始化时必须用到,否则系统会报错;默认值设置的字段赋值值的优先级最低;
81.步骤s1.2:以设置了字段默认值的脚本语言描述的接口消息体为基础,为有需要的字段配置设置值,此处的有需要是指为自动化接口消息测试、使轻量化的接口仿真具有一定逻辑功能;该设置值可以为空,为空时不影响系统的正常运行;配置设置值的方式包括:直接使用简单逻辑,使用自定义函数,使用消息引用,以及使用项目自定义配置;配置字段设置值的优先级次高;
82.步骤s1.3:以设置/配置了字段默认值以及设置值的脚本语言描述的接口消息体为基础,为有需要的字段设置容器值,此处的有需要是指测试需求所要求的故障或是特殊场景模拟;容器值可以为空,为空时不影响系统的正常运行;可以离线设置容器值,也可以在线强制容器值,容器设置字段值的优先级最高;
83.步骤s1.4:为消息体中的每个字段配置检查规则,此处的检查规则是指根据接口协议,该字段的取值范围,以供在收到消息时校验其正确性。
84.步骤s2:根据输入的测试策略,选择一种测试接口消息的测试工作模式;
85.步骤s2.1:根据实际测试需求、测试策略,选择一种测试工作模式;此处的测试工作模式包括:烤机模式,极限模式,单点故障模式,随机故障模式以及混合模式;
86.步骤s2.2:配置消息记录的压缩策略,此处的压缩策略包括:。
87.步骤s3:根据选定的测试工作模式,模拟通信对象给被测试对象发送消息序列;
88.步骤s3.1:调用反馈决策模块,计算需要发送的消息序列;此处反馈决策模块的处理逻辑可参见附图3;
89.步骤s3.2:记录反馈决策模块计算生成的发送给被测对象的消息序列;当有故障注入发生,同时记录故障模式,此处的故障模式包括:字段的边界值、字段的取值之外的值、非法的字段、错误校核值、重复的时间戳等故障;作为反馈决策模块下一次计算的输入。
90.步骤s4:接收并解析被测试对象的消息,并记录被测对象对模拟通信设备发送的消息反馈,作为之后发送消息的决策因素。
91.步骤s4.1:先存储记录收到的被测对象应答的反馈消息,作为反馈决策模块的输入;
92.步骤s4.2:同时,校验收到的消息中的每个字段的取值是否在规定的范围内,此处参照的规定来源为上级需求以及接口定义,校验的规则可以在描述消息体时预先编制;
93.步骤s4.3:同时,检查收到的消息中是否包含告警报错信息,是否出现返回消息时间间隔异常,是否出现不返回心跳包等的疑似宕机现象,如果有捕捉到上述异常,则在步骤s4.1的记录中追加异常标识。
94.以上是关于方法实施例的介绍,以下通过系统实施例,对本发明所述方案进行进一步说明。
95.用于嵌入式软件接口消息测试的随机测试系统,用于实现上述用于嵌入式软件接口消息测试的随机测试方法,包含:
96.消息定义模块,用于以特定脚本语言描述接口消息的消息体;
97.接收发送模块,用于接收被测对象发送的消息,根据测试工作模式、反馈策略等生成应答消息并发送至被测对象;
98.随机发生模块,产生随机值,用于字段赋值,随机故障模式以及混合模式;
99.反馈决策模块,用于判断被测对象的反馈,决定下一步的发送策略;
100.消息记录模块,用于记录已产生的消息以及接收到的消息,记录的策略根据测试工作模式可配置。
101.所述的随机测试系统中被测嵌入式软件工作在互联开放环境中,其接口消息通信工作在iso/osi协议栈之上,与具体的物理连接无关。
102.所述的消息定义模块包括;
103.容器设置单元,可以离线修改特定消息字段,也可以在线强制修改特定消息字段,用来注入故障或是模拟特殊场景,设置字段值的优先级最高;
104.值设置单元,设置字段值的优先级次高;包含多种字段修改方式:直接使用简单逻辑,使用自定义函数,使用消息引用,以及使用项目自定义配置;
105.默认值设置单元,可以直接设置消息字段的初始值,如果没有设置级和容器级的赋值,则持续保持,设置字段值的优先级最低。
106.所述的值设置单元的消息引用是指从被测试对象返回的消息中抓取特定字段作为设置发送消息中的特定字段的取值;
107.所述的值设置单元的项目自定义配置是指在不修改其他配置、测试平台,测试平台的模拟器的情况下,仅设置与特定项目绑定的特定参数,达到测试消息接口的目的;
108.所述的特定脚本语言可以是xml、json以及自定义格式的配置文件。
109.所述接收发送模块包括;
110.校错单元,根据上级需求以及接口定义,检查被测对象返回的消息中的每个字段是否在规定的取值范围内;
111.异常捕捉单元,检查被测试对象是否返回告警报错信息,是否出现返回消息时间间隔异常,是否出现不返回心跳包的疑似宕机现象。
112.工作模式单元,记录已发送的故障消息的故障模式,判断所处的测试工作模式,发送反馈决策模块生成的输出
113.所述的故障模式包括:字段的边界值、字段的取值之外的值、非法的字段、错误校核值、重复的时间戳等故障;
114.所述的测试工作模式包括烤机模式,极限模式,单点故障模式,随机故障模式以及混合模式。
115.所述随机发生模块使用基于有限状态机的伪随机数生成算法,其工作在三个层级上:
116.消息体字段值的故障注入时的随机取值;
117.随机故障工作模式下,故障字段的随机组合;
118.混合模式下,并发工作模式与随机故障模式的混合,故障模拟设备的随机组合选取;
119.所述反馈决策模块由一个定制的反馈系统组成:
120.所述的反馈系统的输入包括,被测对象的反馈应答消息、已发送的消息、工作模式;
121.所述的反馈系统的输出即为生成的消息序列;
122.所述的反馈系统的处理逻辑由下列策略算法组成:
123.被测对象的反馈应答正常,则根据工作模式继续发送消息序列;
124.被测对象的反馈应答异常,则根据配置选取不同的策略,包括:
125.停止接口消息测试;
126.根据工作模式继续发送消息序列,如果当前在故障工作模式,则持续发送消息序列,检查被测对象是否发生疑似宕机;
127.以及无论处在何种工作模式下,先发送正常的非故障的接口消息,检查被测对象是否恢复;若恢复,则继续根据工作模式继续发送消息序列。
128.所述消息记录模块包含多种压缩策略:
129.包括不压缩、deflate算法压缩、lzma2算法压缩以及差异存储;可以在选择测试工作模式时配置消息记录压缩策略;
130.在烤机工作模式下默认使用差异存储。
131.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
132.本发明电子设备包括中央处理单元(cpu),其可以根据存储在只读存储器(rom)中的计算机程序指令或者从存储单元加载到随机访问存储器(ram)中的计算机程序指令,来执行各种适当的动作和处理。在ram中,还可以存储设备操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。
133.设备中的多个部件连接至i/o接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;存储单元,例如磁盘、光盘等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
134.处理单元执行上文所描述的各个方法和处理,例如方法s1~s4。例如,在一些实施例中,方法s1~s4可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由rom和/或通信单元而被载入
和/或安装到设备上。当计算机程序加载到ram并由cpu执行时,可以执行上文描述的方法s1~s4的一个或多个步骤。备选地,在其他实施例中,cpu可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法s1~s4。
135.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
136.用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
137.在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
138.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献