背景技术
随着移动通信技术的发展,和传统的天线技术相比,电调天线技术有着运营成本低、效率高的优点,因而日益受到运营商的重视。典型地,一套电调天线系统由一个电调集中控制单元和多个电调天线设备组成,其中电调天线设备通过多路器和引线与电调集中控制单元级联。
目前,大部分厂家的电调天线系统基于AISG协议。根据AISG协议,电调集中控制单元对应于协议术语——主站,而电调天线设备对应于协议术语——从站。因此,从协议的角度来说,一个完整的电调天线协议软件实际上包括主站端软件和从站端软件。
现有技术对于如何开发和测试这类软件,一般采用如下方法:
1)在PC上开发软件,然后烧录到实际设备上进行调试和测试。或者,
2)先在PC上开发和模拟调试,然后烧录到实际设备上调试和测试。
其中,前一种方法效率低下,每修改一处代码都要重新编译和烧录软件,然后才能进一步调试。而事实上,对于不涉及到具体硬件操作的协议部分,可以在模拟环境下进行调试和测试;因此,现有技术普遍采用了后一种方法,但该方法存在以下问题:
1)如何在PC上模拟主从站的通信;
2)如何模拟主从站通信中的异常情况,如从站响应超时、响应帧序号错误等。
为了解决上述问题,一般采用的解决方法是在主站和从站的软件中增加测试代码,并通过宏的方式来启用和禁用。但这种方法存在以下缺陷:
1)测试代码和正式代码夹杂,影响正式代码可读性和独立性;
2)当正式代码发生变化,测试代码维护难度较大。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是电调天线协议软件在模拟测试时,如何避免在正式代码中夹杂测试代码,当正式代码发生变化,如何维护测试代码。
本发明的技术方案如下:
一种电调天线协议软件的模拟测试系统,其包括电调集中控制单元和至少一个电调天线单元,其中,所述模拟测试系统还包括测试代理单元;所述电调集中控制单元、各电调天线单元分别设置帧发送函数模块,用于在数据传输时,对真实环境和模拟环境分别设置相应的代码,并采用宏的方式以区分各种环境的代码;所述测试代理单元分别与所述电调集中控制单元、各电调天线单元相连接,用于接收操作命令管理测试规程,设置测试状态,构造异常测试情况,并在所述电调集中控制单元与所述电调天线单元之间进行数据传输。
所述的模拟测试系统,其中,所述测试代理单元包括数据传输模块和测试构造模块;所述数据传输模块分别与所述电调集中控制单元、各电调天线单元、所述测试构造模块相连接,用于在所述电调集中控制单元与各电调天线单元之间进行数据传输,还用于接收所述测试构造模块的数据,并传输到所述电调集中控制单元或所述电调天线单元;所述测试构造模块用于接收操作命令管理测试规程,设置测试状态,构造异常测试情况。
所述的模拟测试系统,其中,所述数据传输模块包括数据发送子模块和数据接收子模块;所述数据发送子模块分别与所述电调集中控制单元、各电调天线单元、所述测试构造模块相连接,用于向所述电调集中控制单元发送处理后的响应帧,以及向各电调天线单元发送处理后的命令帧;其中,所述处理后的响应帧为经过所述测试构造模块处理后的、各电调天线单元的响应帧,所述处理后的命令帧为经过所述测试构造模块处理后的、所述电调集中控制单元的命令帧;所述数据接收子模块分别与所述电调集中控制单元、各电调天线单元、所述测试构造模块相连接,用于接收所述电调集中控制单元的命令帧和各电调天线单元的响应帧。
所述的模拟测试系统,其中,所述测试构造模块包括异常构造子模块、存储子模块和配置子模块;所述存储模块分别与所述异常构造子模块、所述配置子模块相连接,用于存储至少一种由各种测试代码组成的测试状态,以及存储包括至少一种测试状态的测试规程;所述异常构造子模块用于接收操作命令,管理测试规程,设置测试状态,构造异常测试情况发送到所述数据传输模块;所述配置模块用于配置各测试规程和/或各测试状态。
一种电调天线协议软件的模拟测试方法,用于包括主站、测试代理和至少一从站的模拟测试系统,所述测试代理分别与所述主站、各从站相连接;所述模拟测试方法包括以下步骤:A1、在所述主站和各从站设置帧发送函数,在数据传输时,对真实环境和模拟环境分别设置相应的代码,并采用宏的方式以区分各种环境的代码;A2、设置测试状态,其由各种测试代码组成;A3、执行测试规程时,接收操作命令,所述测试代理判断是否需要改变测试状态,是则改变测试状态,构造异常测试情况,模拟物理链路进行数据传输,否则直接模拟物理链路进行数据传输。
所述的模拟测试方法,其中,步骤A3中,所述异常测试情况,至少包括以下其中一种情况:将从站发送的响应帧故意延迟发送给主站,故意抛弃从站发送的响应帧,或者故意篡改从站数据响应帧的序号。
所述的模拟测试方法,其中,发送方的所述帧发送函数采用任务间消息方式,将帧作为数据传输的载体,发送给所述测试代理,并由所述测试代理发给接收方。
所述的模拟测试方法,其中,步骤A3之前还执行步骤:A30、预设置所述操作命令,通过所述操作命令切换或管理测试规程。
所述的模拟测试方法,其中,步骤A3具体包括以下步骤:A310、执行测试规程时,接收操作命令;A320、所述主站通过所述测试代理向至少一从站发送命令帧;A330、所述测试代理判断是否需要改变测试状态,是则执行A340,否则模拟物理链路,将所述命令帧发送到目标从站;A340、改变测试状态,构造异常测试情况,模拟物理链路将处理后的命令帧发送到目标从站。
所述的模拟测试方法,其中,步骤A3具体包括以下步骤:A311、执行测试规程时,接收操作命令;A321、所述从站通过所述测试代理向所述主站发送响应帧;A331、所述测试代理判断是否需要改变测试状态,是则执行A341,否则模拟物理链路,将所述响应帧发送到所述主站;A341、改变测试状态,构造异常测试情况,模拟物理链路将处理后的响应帧发送到所述主站。
采用上述方案,本发明实现了电调天线协议软件在模拟环境下进行较充分的正常和异常功能测试,提高了软件开发的效率;并且,测试代理代码独立于正式的软件代码,易于维护,同时保证了正式代码的独立性、可读性。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
如图1所示,本发明提供了一种电调天线协议软件的模拟测试系统,其包括电调集中控制单元和至少一个电调天线单元,还包括测试代理单元。
在所述电调集中控制单元、各电调天线单元分别设置有帧发送函数模块,用于在数据传输时,对真实环境和模拟环境分别设置相应的代码,并采用宏的方式以区分各种环境的代码;这样,测试代理代码独立于正式的软件代码,易于维护;同时保证了正式代码的独立性、可读性。
所述测试代理单元分别与所述电调集中控制单元、各电调天线单元相连接,用于接收操作命令管理测试规程,设置测试状态,构造异常测试情况,并在所述电调集中控制单元与所述电调天线单元之间进行数据传输。例如,所述电调集中控制单元通过其帧发送函数模块发送命令帧到所述测试代理单元,所述测试代理单元根据操作命令,判断是否需要构造异常测试情况,修改该命令帧,然后发送到目标的电调天线单元。
其中所述操作命令,即测试命令,也称调试命令,用户通过输入这些命令可以改变测试代理的测试状态,从而达到切换测试规程的目的。
一个实施例是,所述测试代理单元包括数据传输模块和测试构造模块;其中,所述数据传输模块分别与所述电调集中控制单元、各电调天线单元、所述测试构造模块相连接,用于在所述电调集中控制单元与各电调天线单元之间进行数据传输,还用于接收所述测试构造模块的数据,并传输到所述电调集中控制单元或所述电调天线单元;所述测试构造模块用于接收操作命令管理测试规程,设置测试状态,构造异常测试情况。
另一个实施例是,所述数据传输模块包括数据发送子模块和数据接收子模块;其中,所述数据发送子模块分别与所述电调集中控制单元、各电调天线单元、所述测试构造模块相连接,用于向所述电调集中控制单元发送处理后的响应帧,以及向各电调天线单元发送处理后的命令帧;其中,所述处理后的响应帧为经过所述测试构造模块处理后的、各电调天线单元的响应帧,所述处理后的命令帧为经过所述测试构造模块处理后的、所述电调集中控制单元的命令帧;所述数据接收子模块分别与所述电调集中控制单元、各电调天线单元、所述测试构造模块相连接,用于接收所述电调集中控制单元的命令帧和各电调天线单元的响应帧。
又一个实施例是,所述测试构造模块包括异常构造子模块、存储子模块和配置子模块;其中,所述存储模块分别与所述异常构造子模块、所述配置子模块相连接,用于存储至少一种由各种测试代码组成的测试状态,以及存储包括至少一种测试状态的测试规程;所述异常构造子模块用于接收操作命令,管理测试规程,设置测试状态,构造异常测试情况发送到所述数据传输模块;所述配置模块用于配置各测试规程和/或各测试状态。
上述系统中,测试代理可以是以任务或者进程存在的实体,即上述系统所述测试代理单元;测试代理也可以是一组程、任务或者进程。它一方面负责模拟物理链路的数据传输,即负责将主站发送的命令帧发给相应的从站,把从站发送的响应帧发给主站。另一方面,在特定测试规程下,它负责构造异常情况,比如将从站发送的响应帧故意延迟发送给主站,或者故意篡改从站数据响应帧的序号等。例如,一种具体实现方式可以是:对于不同的测试规程,测试代理包含不同的测试状态。不同的状态对应不同的测试代码。比如,在“从站响应超时测试”状态下,测试代理在收到从站响应帧后,故意抛弃或者延时发送该帧,从而造成主站方面的定时器超时,这样就可以观察主站是否可以正确处理这种异常情况。
并且,如图1所示,本发明还提供了一种电调天线协议软件的模拟测试方法,用于上述的包括主站、测试代理和至少一从站的模拟测试系统,所述测试代理分别与所述主站、各从站相连接;所述模拟测试方法包括以下步骤:
A1、在所述主站和各从站设置帧发送函数,在数据传输时,对真实环境和模拟环境分别设置相应的代码,并采用宏的方式以区分各种环境的代码。
例如,发送方的所述帧发送函数可以采用任务间消息方式,将帧作为数据传输的载体,发送给所述测试代理,并由所述测试代理发给接收方。具体地说,主站、从站的帧发送函数包含真实和模拟环境下不同的代码实现,并使用宏来区分。其中,在模拟环境下,该函数实际上是以某种形式,比如任务间消息等,将帧发送给测试代理,并由测试代理发给相应的对端。
A2、设置测试状态,其由各种测试代码组成;同上所述,对于不同的测试规程,测试代理包含不同的测试状态;不同的测试状态对应不同的测试代码。
A3、执行测试规程时,接收操作命令,所述测试代理判断是否需要改变测试状态,是则改变测试状态,构造异常测试情况,模拟物理链路进行数据传输,否则直接模拟物理链路进行数据传输。所述异常测试情况,至少包括以下其中一种情况:将从站发送的响应帧故意延迟发送给主站,故意抛弃从站发送的响应帧,或者故意篡改从站数据响应帧的序号。
一个例子是,步骤A3之前还执行步骤:A30、预设置所述操作命令,通过所述操作命令切换或管理测试规程。
例如,在主站向从站发送命令帧时,步骤A3具体可以包括以下步骤:
A310、执行测试规程时,接收操作命令;
A320、所述主站通过所述测试代理向至少一从站发送命令帧;
A330、所述测试代理判断是否需要改变测试状态,是则执行A340,否则模拟物理链路,将所述命令帧发送到目标从站;
A340、改变测试状态,构造异常测试情况,模拟物理链路将处理后的命令帧发送到目标从站。
又如,在从站向主站发送响应帧时,步骤A3具体可以包括以下步骤:
A311、执行测试规程时,接收操作命令;
A321、所述从站通过所述测试代理向所述主站发送响应帧;
A331、所述测试代理判断是否需要改变测试状态,是则执行A341,否则模拟物理链路,将所述响应帧发送到所述主站;
A341、改变测试状态,构造异常测试情况,模拟物理链路将处理后的响应帧发送到所述主站。
下面再举出一个详细的例子,对本发明系统和方法进行说明,如图1所示,假设在模拟环境下存在一个主站端,一个测试代理和N个从站端。并且,假设测试代理存在M个测试状态,其中:
1)测试状态1,什么都不做,即不影响正常帧的收发,
2)测试状态2,对于建链响应帧UA一概丢弃。
初始化时,测试代理处于测试状态1,可以进行正常的帧收发。
为了测试主站是否具有“在不能和从站建链时,上报告警”的功能,采用本发明方法可以进行如下操作:
1)在命令窗口下输入调试命令,例如“AisgTest 2”或类似的操作命令,使测试代理处于测试状态2;
2)在网管软件上添加从站设备1。
3)主站端在收到后台网管添加从站设备1的消息后,尝试发送SNRM(Set Normal Response Mode,正常响应模式)帧与从站设备1建链,并可以设置定时器等待响应。该命令帧首先被测试代理接收,然后发给从站设备1。从站设备1随之发送UA(Unnumbered Acknowledgment,无编号确认)响应帧。同样,该帧也先被测试代理接收,并进入测试状态2的处理分支,即将UA帧丢弃。这样,主站的定时器将超时,又重发若干次,并在超时若干次后向后台网管上报告警。
4)可以通过在后台网管软件上观察是否出现相应告警,来评判此功能是否测试通过;
5)测试完毕,使用测试命令“AisgTest 1”,使测试代理处于测试状态1,即恢复正常的帧收发。
采用本发明的系统和方法,一方面可以使电调天线协议软件在模拟环境下进行较充分的正常和异常功能测试,提高了软件开发的效率;另一方面,由于测试代理代码独立于正式的软件代码,易于维护,也保证了正式代码的独立性、可读性。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。