状态机构建方法和设备测试系统及设备模拟器的制作方法

文档序号:6562273阅读:114来源:国知局
专利名称:状态机构建方法和设备测试系统及设备模拟器的制作方法
技术领域
本发明涉及测试领域,尤其涉及状态机构建方法和设备测试系统及设备模拟器。
背景技术
在设备的测试中,需要对各设备间消息交互的正确性进行测试,然而当被测设备间的距离较远时,各设备间可能会无法有效进行这种测试。目前通常的做法是用设备模拟器来模拟被测设备,通过不同被测设备的设备模拟器与对端设备分别进行测试,以此来代替实际被测设备间的消息交互测试。举例来说,当要对第一设备和第二设备进行消息交互测试时,采用第一设备模拟器代替第一设备与第二设备进行测试,而采用第二设备模拟器代替第二设备与第一设备进行消息交互测试。在这样的测试中,如何在设备模拟器中模拟交互测试所需的消息是要解决的一个主要问题。
基于单条消息重放的设备模拟器是在设备模拟器中构造一条消息来代替被模拟设备发到对端设备,检测对端设备对该消息的响应是否正确,由于该技术只能构造单条消息进行测试,因而具有较大的局限性。现有技术中还有一种方案采用基于消息匹配的状态转移设备模拟器代替被模拟设备进行测试,该设备模拟器在状态机中模拟出与对端设备的交互消息。状态机由一系列相关联的状态组成,状态机可以根据收到的消息进行响应,并进行状态的转移。由于需要对被模拟设备的内部属性非常熟悉才能够创建出理想的状态机,而在实际测试中常常无法了解到被模拟设备的内部属性,因此该方案不但实现复杂,且难度较大。

发明内容
本发明要解决的技术问题是提供状态机构建方法和设备测试系统及设备模拟器,简单、方便地为设备模拟器构建出状态机。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的一种状态机构建方法,包括
第一设备模拟器接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表;第一设备模拟器将新建的状态表提供给第二设备模拟器;第二设备模拟器根据上述状态表更新其内部状态机。
可选的,该方法还包括第二设备模拟器接收来自第一设备的消息,在其状态机中创建与该消息对应的状态表;第二设备模拟器将新建的状态表提供给第一设备模拟器;第一设备模拟器根据上述状态表更新其内部状态机。
所述第一设备模拟器接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表具体包括A、第一设备模拟器接收来自第二设备的消息,当在预定时间内所接收的消息与该设备模拟器状态机中的消息不匹配时,在其状态机创建与该接收消息对应的状态表。
其中,所述A具体包括A1、在第一设备模拟器的状态机中查找与当前状态值对应的状态表;A2、在当前状态下要接收消息时,第一设备模拟器接收来自第二设备的消息,若在预定时间内所接收的消息与当前状态表中的消息不匹配,则在其状态机中创建与该接收消息对应的状态表;否则判断状态机中是否有下一状态,若有,则将下一状态的状态值赋予当前状态值,执行A1。
可选的,所述第二设备模拟器更新其内部状态机后还包括B、第二设备模拟器按照其状态机与第一设备进行消息交互,若交互过程与其状态机相匹配,则确认与第一设备的对接测试成功;否则确认测试失败。
其中,所述B具体包括B1、在第二设备模拟器的状态机中查找与当前状态值对应的状态表;B2、在当前状态下要发送消息时,第二设备模拟器将当前状态表中的消息发送到第一设备,执行B3;在当前状态下要接收消息时,第二设备模拟器接收来自第一设备的消息,若该消息与当前状态表中的消息不匹配或接收到该消息的时间超过预定时长时,则确认与第一设备的对接测试失败;否则执行B3;B3、第二设备模拟器判断状态机是否有下一状态,若有,则将下一状态的状态值赋予当前状态值,执行B1;否则,确认与第一设备的对接测试成功。
其中,B2中所述在当前状态下要发送消息时,第二设备模拟器将当前状态表中的消息发送到对端设备具体包括当状态机中存在至少两个与当前状态值对应的状态时,若在所述状态下第二设备模拟器是要发送消息,则选择其中一个状态作为当前状态,将当前状态中的消息发送到第一设备。
其中,所述第二设备模拟器选择其中一个状态作为当前状态具体包括第二设备模拟器按照预先指定或通过概率选择法或顺次遍历法选择其中一个状态作为当前状态。
一种设备测试系统,包括第一设备模拟器、第二设备、第二设备模拟器,其中第一设备模拟器用于接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表;还用于将新建的状态表提供给第二设备模拟器;第二设备模拟器用于将第一设备模拟器提供的新建状态表更新到其状态机中。
可选的,该系统还包括第一设备;第二设备模拟器还用于接收来自第一设备的消息,在其状态机中创建与该消息对应的状态表;还用于将新建的状态表提供给第一设备模拟器;第一设备模拟器还用于将第二设备模拟器提供的新建状态表更新到其状态机中。
其中,所述设备模拟器用于接收来自第一设备的消息,在其状态机中创建与该消息对应的状态表具体包括设备模拟器用于接收来自第一设备的消息,当在预定时间内所接收的消息与状态机中的消息不匹配时在其状态机中创建与该接收消息对应的状态表。
一种设备模拟器,用于与对端设备进行对接测试,包括消息复制单元,用于接收对端设备模拟器所创建的与题述设备模拟器所模拟设备发送的消息对应的状态表;状态机处理单元,用于将消息复制单元接收的状态表更新到本设备模拟器的状态机中。
可选的,所述设备模拟器还包括接收单元,用于接收来自对端设备的消息,并将该消息提供给状态机处理单元;状态机处理单元还用于在本设备模拟器的状态机中查找与当前状态值对应的状态,在该状态是要接收消息时,等待接收单元接收来自对端设备的消息,并在接收单元是在预定时间内接收到该消息时,根据该消息与当前状态表中的消息进行匹配,当接收消息与状态表中的消息不匹配时,在状态机中创建与所述接收消息对应的状态表;消息复制单元用于向对端设备模拟器发送状态机处理单元所创建的状态表。
可选的,所述设备模拟器还包括消息过滤单元,用于过滤对端设备发送来的无用消息。
可选的,所述设备模拟器还包括发送单元,用于向对端设备发送状态机处理单元所提供的消息;状态机处理单元还用于在与当前状态值对应的状态是要发送消息时,将该状态下记录的消息提供给发送单元。
从以上技术方案可以看出,本发明具有以下优点第一设备模拟器在与第二设备进行消息交互的过程中通过接收到的来自第二设备的消息构造出与第二设备的消息对应的状态表,并将更新的状态表提供给远端的第二设备模拟器,使第二设备模拟器可以模拟第二设备在本地与第一设备进行消息交互测试;第二设备模拟器又可以在与第一设备进行消息交互的过程中通过接收到的来自第一设备的消息构造出与第一设备的消息对应的状态表,并将更新的状态表提供给第一设备模拟器,使得第一设备模拟器可以模拟第一设备与第二设备进行消息交互测试;通过上述过程的交替执行在第一设备模拟器和第二设备模拟器各自的状态机中创建出第一设备与第二设备进行对接测试时的消息交互表。由于是在消息交互过程中构建出第一设备与第二设备进行对接测试所需的状态机,而不需要熟悉被测设备的内部属性,因此本发明可以简单、有效的为设备模拟器构建出状态机。


图1是本发明设备状态机构建方法的流程图;图2是本发明中从设备模拟器构造状态机的流程图;图3是本发明中主设备模拟器构造状态机的流程图;图4是本发明设备模拟器与对端设备进行对接测试的流程图;图5是本发明设备模拟器的结构图;图6是本发明设备设备测试系统的结构图。
具体实施例方式
下面,首先对所述的状态机进行介绍。状态机中包括一系列相互关联的状态表,如下表所示,状态机的每个状态表包含以下内容

设备模拟器在运行中执行哪一个状态表是由设备模拟器的当前状态值来决定的,当设备模拟器的当前状态值与状态机中某一状态表的“当前状态”表项的值相同时,设备模拟器即运行该状态表的内容。
状态表中“消息”表项用于记载交互消息的具体内容。
“消息”中记录的消息是从“源端口”记录的设备端口发送到“目的端口”记录的设备端口。设备模拟器端口地址可以与被模拟设备的端口地址相同或相应,若相应,需在与对端设备进行测试前将设备模拟器的端口地址转换为被模拟设备的端口地址。
“时间值”表项记录设备模拟器与对端设备进行消息交互时的预定时长。当设备模拟器向对端设备发送消息时,需经过“时间值”记录的时长后将消息发出;当设备模拟器接收消息时,在“时间值”记录的时间内收到的消息都应该记录在状态表中,超过该时间的消息则认为是超时出错消息。
考虑到消息交互过程中其他因素的影响,可以给状态表中“时间值”记录的时间设置一个允许波动值,若设备模拟器接收到消息的时间超过“时间值”的记录,而未超过该“时间值”加上所设置的允许波动值,则认为该消息也是有效的,应该记录在状态表中。
在本发明中,还可以将发送时间和接收等待时间设置为恒定值,则状态表中也可以不包含“时间值”。
如前所述,状态机中包括一系列相互关联的状态表,状态表之间通过前一状态表的“下一状态”表项和下一个状态表的“当前状态”表项实现关联,当设备模拟器完成本状态表中的消息后继续执行其“当前状态”表项的值与本状态表中“下一状态”表项的值相同的状态表。
参考图1,本发明提供的状态机构造方法包括S1、第一设备模拟器在预定的时间内接收来自第二设备的消息,若在预定时间内接收到的消息与其状态机中的消息不匹配时,在该状态机中创建与该接收消息对应的状态表;S2、第一设备模拟器将新建的状态表提供给第二设备模拟器;S3、第二设备模拟器根据上述状态表更新其内部状态机;S4、第二设备模拟器按照其内部状态机与对接的第一设备进行消息交互时,若在预定的时间内所接收的消息与其状态机中的消息不匹配,在所述状态机中创建与该接收消息对应的状态表;S5、第二设备模拟器将新建的状态表提供给第一设备模拟器;S6、第一设备模拟器根据上述状态表更新其内部状态机。
下面对本发明状态机构造方法的实施例进行描述,为描述方便,在本发明中,根据设备间消息交互的先后顺序,将先发出消息的设备称为主设备;将先接收消息,根据该消息进行响应的设备称为从设备;进一步的,将用于模拟主设备的设备模拟器称为主设备模拟器;将用于模拟从设备的模拟器称为从设备模拟器。
主设备模拟器和从设备模拟器通过交替执行以下流程201-210和流程301-310逐步构造出与对端设备消息对应的状态表,并通过将各自的状态机提供给对端设备模拟器,在各自的状态机中创建与被模拟设备消息对应的状态表,以此在设备模拟器中构造出用于模拟被模拟设备与对端设备消息交互测试的状态机。
下面结合图2,对从设备模拟器和主设备通过消息交互,构造状态机的过程进行描述。
步骤201、在从设备模拟器的状态机中查找“当前状态”表项的值与其当前状态值相同的状态表。
在状态机中存在多个“当前状态”表项的值与从设备模拟器的当前状态值相同的状态表时,从设备模拟器可以选定其中一个状态表作为当前状态表,该状态表可以是预先指定的,或者是通过概率选择法、顺次遍历法等方法选择出来的。
步骤202、根据该状态表“源端口”或“目的端口”的内容,判断从设备模拟器是要发送消息还是等待接收消息,如果“源端口”记录了从设备地址,说明从设备模拟器是要向“目的端口”记录的主设备地址发送消息,则执行步骤203;若“目的端口”记录了从设备地址,说明从设备模拟器是要等待接收来自“源端口”记录的主设备地址的消息,则执行步骤207。
步骤203、从设备模拟器在经过当前状态表中“时间值”记录的时间之后,将“消息”表项的消息内容发送到主设备。
当状态表中无“时间值”表项时,从设备模拟器也可以在经过预设的恒定值后将消息发送到主设备。
步骤204、从设备模拟器检查当前状态表的“下一状态”表项,若其值为空,说明从设备模拟器的状态机运行结束,执行步骤205;若不为空,则执行步骤206。
步骤205、从设备模拟器接收到从主设备发送来的新消息时,在当前状态表的“下一状态”中填入该表“当前状态”的下一个值,并将该值赋予从设备模拟器的当前状态值,执行步骤208。
步骤206、将当前状态表“下一状态”表项的值赋予从设备模拟器的当前状态值,返回执行步骤201。
步骤207、从设备模拟器在预定时间内,接收从主设备发送来的消息,并根据接收到的消息与当前状态表中的消息进行匹配,如果匹配成功,则执行步骤204;若不匹配,说明在本状态下主设备可以发出多种合法消息,而从设备模拟器所接收到的消息是状态机中尚未建立的新消息,将当前状态表中“当前状态”的值赋予从设备模拟器的当前状态值,执行步骤208。
其中,所述的预定时间可以是当前状态表中“时间值”记录的时间,也可以是“时间值”记录的时间加上允许波动值的时间。
步骤208、从设备模拟器根据所接收的新消息更新内部状态表。
如果在预定时间内,从设备模拟器只接收到一条新消息,则在状态机中新增一个状态表,该表的“当前状态”的值取从设备模拟器的当前状态值,“时间值”、“源端口”、“目的端口”和“消息”表项取从设备模拟器捕捉到的实际值,“下一状态”表项内容为空。
在预定时间内,若从设备模拟器接收到多条消息,则在状态机中按照接收的先后顺序为每条消息创建新的状态表,各状态表之间通过前一状态表的“下一状态”与后一状态表的“当前状态”进行关联,设置最后一条消息的状态表中“下一状态”表项为空。
步骤209、从设备模拟器将新建的状态表提供给主设备模拟器。
步骤210、主设备模拟器接收从设备模拟器发送来的状态表,将所述状态表更新到其内部状态表中。
下面结合图3,对主设备模拟器和从设备通过消息交互,构造状态机的过程进行描述。
步骤301、在主设备模拟器的状态机中查找“当前状态”表项的值与其当前状态值相同的状态表。
在状态机中存在多个“当前状态”表项的值与主设备模拟器的当前状态值相同的状态表时,主设备模拟器可以选定其中一个状态表作为当前状态表,该状态表的可以是预先指定的,或者是通过概率选择法、顺次遍历法等方法选择出来的。
步骤302、根据该状态表“源端口”或“目的端口”的内容,判断主设备模拟器是要发送消息还是等待接收消息,如果“源端口”记录了主设备地址,说明主设备模拟器是要向“目的端口”记录的从设备地址发送消息,则执行步骤303;若“目的端口”记录了主设备地址,说明主设备模拟器是要等待接收来自“源端口”记录的从设备地址的消息,则执行步骤307。
步骤303、主设备模拟器在经过当前状态表中“时间值”记录的时间之后,将“消息”表项的消息内容发送到从设备。
当状态表中无“时间值”表项时,主设备模拟器也可以在经过预设的恒定值后将消息发送到从设备。
步骤304、主设备模拟器检查当前状态表的“下一状态”表项,若其值为空,说明主设备模拟器的状态机运行结束,执行步骤305;若不为空,则执行步骤306。
步骤305、主设备模拟器接收到从设备发送来的新消息时,在当前状态表的“下一状态”中填入该表“当前状态”的下一个值,并将该值赋予主设备模拟器的当前状态值,执行步骤308。
步骤306、将当前状态表“下一状态”表项的值赋予主设备模拟器的当前状态值,返回执行步骤301。
步骤307、主设备模拟器在预定时间内接收从设备发送来的消息,并根据接收到的消息与当前状态表中的消息进行匹配,如果匹配成功,则执行步骤304;若不匹配,说明在本状态下从设备可以发出多种合法消息,而主设备模拟器所接收的消息是状态机中尚未建立的新消息,则将当前状态表中“当前状态”的值赋予主设备模拟器的当前状态值,执行步骤308。
其中,所述的预定时间可以是当前状态表中“时间值”记录的时间,也可以是“时间值”记录的时间加上允许波动值的时间。
步骤308、主设备模拟器根据所接收的新消息更新内部状态表。
如果在预定时间内,主设备模拟器只接收到一条新消息,则在状态机中新增一个状态表,该表的“当前状态”的值取主设备模拟器的当前状态值,“时间值”、“源端口”、“目的端口”和“消息”表项取主设备模拟器捕捉到的实际值,“下一状态”表项内容为空。
在预定时间内,若主设备模拟器接收到多条消息,则在状态机中按照接收的先后顺序为每条消息创建新的状态表,各状态表之间通过前一状态表的“下一状态”与后一状态表的“当前状态”进行关联,设置最后一条消息的状态表中“下一状态”表项为空。
步骤309、主设备模拟器将新建的状态表提供给从设备模拟器。
步骤310、从设备模拟器接收主设备模拟器发送来的状态表,将所述状态表更新到其内部状态表中。
下面以从设备模拟器与主设备的消息交互为例,给出一个具体实例以帮助理解上述方法,在本实施例的状态表中,10.78.22.1005060表示从设备或从设备模拟器的接口地址,10.78.22.115060、10.78.22.225060和10.78.22.335060表示主设备的接口地址。
初始情况下,在从设备模拟器的内部,存在“当前状态”为4的状态表,从设备模拟器进入初始状态,执行“当前状态”为4的状态表,即在间隔1个时间单位后,从设备模拟器向主设备发送消息Z。

若从设备模拟器依次接收到主设备发送来的新消息A、B、C,根据这些消息在状态机中创建与所述消息对应的状态表,则经过更新从设备模拟器中存在以下4个状态表。




上述四个表之间通过前一状态表的“下一状态”与后一状态表的“当前状态”相互关联,如对“当前状态”值为4的状态表,根据其“下一状态”值为5可以确定在该状态表之后的是“当前状态”值为5的状态表。状态表中“当前状态”的值可以任意规定,只要保证每个状态表的“下一状态”值与其后一状态表的“当前状态”值相同即可。
从设备模拟器将上述状态表提供给主设备模拟器。
从设备模拟器运行其状态机,当运行至状态5时,应等待主设备发送消息A,但实际上收到了主设备发来的消息A1、B1、C1,说明主设备和从设备模拟器的交互存在多种流程,则根据收到的新消息构造以下状态表。



从设备模拟器将更新的状态表提供给主设备模拟器,主设备模拟器中已存在状态表4、5、6、7,此时将从设备模拟器发来的新状态表5、8、9加入到其内部状态表中,更新后主设备模拟器内部状态表同样有4、5、6、7、8、9。






根据上述状态表,当主设备模拟器运行到状态5时,有两种消息A和A1可以发送,根据规则选择其中一个,如果选择消息A,则依次发出A、B、C消息,若选择消息A1,则依次发出A1、B1、C1消息。
构造出测试所需的状态机后,可以通过运行状态机模拟主设备与从设备间的消息测试。在本发明中,主设备模拟器和从设备的对接测试以及从设备模拟器和主设备的对接测试方法相同,为描述方便,在以下描述中用设备模拟器表示主设备模拟器或从设备模拟器,用对端设备表示设备模拟器所模拟设备的对端设备。设备模拟器按照其状态机和所模拟设备的对端设备进行消息交互,若交互过程与其状态机相匹配,则确认与该对端设备的对接测试成功;否则确认测试失败。结合图4,上述对接测试过程具体包括以下步骤步骤401、设备模拟器将状态机的初始状态值赋予其当前状态值。
步骤402、在状态机中查找“当前状态”表项值与设备模拟器的当前状态值相同的状态表。
在状态机中存在多个“当前状态”表项的值与设备模拟器的当前状态值相同的状态表时,设备模拟器可以选定其中一个状态表作为当前状态表,该状态表的可以是预先指定的,或者是通过概率选择法、顺次遍历法等方法选择出来的。
步骤403、根据该状态表“源端口”或“目的端口”的内容,判断设备模拟器是要发送消息还是等待接收消息,如果“源端口”记录了对端设备地址,说明设备模拟器是要向“目的端口”记录的对端设备地址发送消息,则执行步骤404;若“目的端口”记录了对端设备地址,说明设备模拟器是要等待接收来自“源端口”记录的对端设备地址的消息,则执行步骤406。
步骤404、设备模拟器在经过当前状态表中“时间值”记录的时间之后,将“消息”表项的消息发送到对端设备。
当状态表中无“时间值”表项时,设备模拟器也可以在经过预设的恒定值后将消息发送到对端设备。
步骤405、设备模拟器检查当前状态表的“下一状态”表项,若其值为空,状态机运行结束,确认与对端设备的对接测试成功,结束流程;否则,将当前状态表“下一状态”表项的值赋予设备模拟器的当前状态值,返回步骤402。
步骤406、设备模拟器在预定时间内接收来自对端设备的消息,并根据接收到的消息与当前状态表中的消息进行匹配,如果匹配成功,则执行步骤405;否则确认与对端设备的对接测试失败。
其中,所述的预定时间可以是当前状态表中“时间值”记录的时间,也可以是“时间值”记录的时间加上允许波动值的时间。
下面对本发明提供的设备模拟器进行描述,如图5所述,该设备模拟器包括消息复制单元501、发送单元502、接收单元503、状态机处理单元504,其中消息复制单元501用于接收对端设备模拟器所创建的与设备模拟器所模拟设备发送的消息对应的状态表。
状态机处理单元504用于将消息复制单元501接收的状态表更新到本设备模拟器的状态机中。
状态机处理单元504还用于在本设备模拟器的状态机中查找与当前状态值对应的状态表,若该状态是要发送消息,则将该状态下记录的消息提供给发送单元502;若该状态是要接收消息时,等待接收单元503接收来自对端设备的消息,并在接收单元503是在预定时间内接收到该消息时,根据该消息与当前状态表中的消息进行匹配,当接收消息与当前状态表中的消息不匹配时,在状态机中创建与所述接收消息对应的状态表;当匹配时,将设备模拟器的当前状态值更新为状态机下一状态的值,并继续查找与该状态值对应的状态表,直到状态机运行结束。
消息复制单元501还用于将状态机处理单元504创建的状态表提供给对端设备模拟器。
发送单元502用于向对端设备发送状态机处理单元504提供的消息。
接收单元503用于接收来自对端设备的消息,并将该消息提供给状态机处理504单元。
此外,所述设备模拟器还包含消息过滤单元505,用于在接收单元503前对过滤对端设备发送来的无用消息。
下面对本发明提供的设备测试系统进行描述,参考图6,该系统包括第一设备601、第二设备模拟器602、第一设备模拟器603、第二设备604,其中第一设备模拟器603用于依照内部状态机与第二设备604进行消息交互,在交互中接收来自第二设备604的消息,当在预定时间内接收的消息与当前状态表中的消息不匹配时,在内部状态机中创建与该接收消息对应的状态表;还用于将新建的状态表提供给第二设备模拟器603。
第二设备模拟器602用于将第一设备模拟器603提供的新建状态表更新到其内部状态机中。
此外,第二设备模拟器602还用于按照其内部状态机与第一设备603进行消息交互,当在预定时间内所接收的消息与当前状态表中的消息不匹配时,在内部状态机中创建与该接收消息对应的状态表;还用于将新建的状态表提供给第一设备模拟器603。
第一设备模拟器603还用于将第二设备模拟器602提供的新建状态表更新到其内部状态机中;还用于按照其内部状态机与第二设备604进行消息交互,若消息交互过程与其内部状态机相匹配,则确认与第一设备604的对接测试成功;否则确认失败。
第二设备模拟器602还用于按照其内部状态机与第一设备601进行消息交互,若消息交互过程与其内部状态机相匹配,则确认与第一设备601的对接测试成功;否则确认失败。
以上对本发明所提供的状态机构建方法和设备测试系统及设备模拟器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种状态机构建方法,其特征在于,包括第一设备模拟器接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表;第一设备模拟器将新建的状态表提供给第二设备模拟器;第二设备模拟器根据上述状态表更新其内部状态机。
2.如权利要求1所述的状态机构建方法,其特征在于,还包括第二设备模拟器接收来自第一设备的消息,在其状态机中创建与该消息对应的状态表;第二设备模拟器将新建的状态表提供给第一设备模拟器;第一设备模拟器根据上述状态表更新其内部状态机。
3.如权利要求1所述的状态机构建方法,其特征在于,所述第一设备模拟器接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表具体包括A、第一设备模拟器接收来自第二设备的消息,当在预定时间内所接收的消息与该设备模拟器状态机中的消息不匹配时,在其状态机中创建与该接收消息对应的状态表。
4.如权利要求3所述的状态机构建方法,其特征在于,所述A具体包括A1、在第一设备模拟器的状态机中查找与当前状态值对应的状态表;A2、在当前状态下要接收消息时,第一设备模拟器接收来自第二设备的消息,若在预定时间内所接收的消息与当前状态表中的消息不匹配,则在其状态机中创建与该接收消息对应的状态表;否则判断状态机中是否有下一状态,若有,则将下一状态的状态值赋予当前状态值,执行A1。
5.如权利要求1所述的状态机构建方法,其特征在于,所述第二设备模拟器更新其内部状态机后还包括B、第二设备模拟器按照其状态机与第一设备进行消息交互,若交互过程与其状态机相匹配,则确认与第一设备的对接测试成功;否则确认测试失败。
6.如权利要求5所述的状态机构建方法,其特征在于,所述B具体包括B1、在第二设备模拟器的状态机中查找与当前状态值对应的状态表;B2、在当前状态下要发送消息时,第二设备模拟器将当前状态表中的消息发送到第一设备,执行B3;在当前状态下要接收消息时,第二设备模拟器接收来自第一设备的消息,若该消息与当前状态表中的消息不匹配或接收到该消息的时间超过预定时长时,则确认与第一设备的对接测试失败;否则执行B3;B3、第二设备模拟器判断状态机是否有下一状态,若有,则将下一状态的状态值赋予当前状态值,执行B1;否则,确认与第一设备的对接测试成功。
7.如权利要求6所述的状态机构建方法,其特征在于,B2中所述在当前状态下要发送消息时,第二设备模拟器将当前状态表中的消息发送到第一设备具体包括当状态机中存在至少两个与当前状态值对应的状态时,若在所述状态下第二设备模拟器是要发送消息,则选择其中一个状态作为当前状态,将当前状态表中的消息发送到第一设备。
8.如权利要求7所述的状态机构建方法,其特征在于,所述第二设备模拟器选择其中一个状态作为当前状态具体包括第二设备模拟器按照预先指定或通过概率选择法或顺次遍历法选择其中一个状态作为当前状态。
9.一种设备测试系统,其特征在于,包括第一设备模拟器、第二设备、第二设备模拟器,其中第一设备模拟器用于接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表;还用于将新建的状态表提供给第二设备模拟器;第二设备模拟器用于将第一设备模拟器提供的新建状态表更新到其状态机中。
10.如权利要求9所述的设备测试系统,其特征在于,还包括第一设备;第二设备模拟器还用于接收来自第一设备的消息,在其状态机中创建与该消息对应的状态表;还用于将新建的状态表提供给第一设备模拟器;第一设备模拟器还用于将第二设备模拟器提供的新建状态表更新到其状态机中。
11.如权利要求9或10所述的设备测试系统,其特征在于,所述设备模拟器用于接收来自第一设备的消息,在其状态机中创建与该消息对应的状态表具体包括设备模拟器用于接收来自第一设备的消息,当在预定时间内所接收的消息与状态机中的消息不匹配时在其状态机中创建与该接收消息对应的状态表。
12.一种设备模拟器,用于与对端设备进行对接测试,其特征在于,包括消息复制单元,用于接收对端设备模拟器所创建的与题述设备模拟器所模拟设备发送的消息对应的状态表;状态机处理单元,用于将消息复制单元接收的状态表更新到本设备模拟器的状态机中。
13.如权利要求12所述的设备模拟器,其特征在于,还包括接收单元,用于接收来自对端设备的消息,并将该消息提供给状态机处理单元;状态机处理单元还用于在本设备模拟器的状态机中查找与当前状态值对应的状态,在该状态是要接收消息时,等待接收单元接收来自对端设备的消息,并在接收单元是在预定时间内接收到该消息时,根据该消息与当前状态表中的消息进行匹配,当接收消息与状态表中的消息不匹配时,在状态机中创建与所述接收消息对应的状态表;消息复制单元用于向对端设备模拟器发送状态机处理单元所创建的状态表。
14.如权利要求13所述的设备模拟器,其特征在于,还包括消息过滤单元,用于过滤对端设备发送来的无用消息。
15.如权利要求12或13或14所述的设备模拟器,其特征在于,还包括发送单元,用于向对端设备发送状态机处理单元所提供的消息;状态机处理单元还用于在与当前状态值对应的状态是要发送消息时,将该状态下记录的消息提供给发送单元。
全文摘要
本发明公开了状态机构建方法和设备测试系统及设备模拟器。所述方法包括第一设备模拟器接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表;第一设备模拟器将新建的状态表提供给第二设备模拟器;第二设备模拟器根据上述状态表更新其内部状态机。所述系统包括第一设备模拟器用于接收来自第二设备的消息,在其状态机中创建与该消息对应的状态表;还用于将新建的状态表提供给第二设备模拟器;第二设备模拟器用于将第一设备模拟器提供的新建状态表更新到其状态机中。通过本发明,能够简单、方便地为设备模拟器构建出状态机。
文档编号G06F9/455GK1964290SQ200610139740
公开日2007年5月16日 申请日期2006年9月22日 优先权日2006年9月22日
发明者吴平, 黄泥, 王定军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1