具体实施方式
发明人在实现本发明的过程中注意到:当前一致性测试仪的具体实现过程中,日志是以零散方式进行存放的,如基于TTCN流程所产生的日志是以零散方式进行存放,从而导致以下问题:(1)由于日志信息的零散,不便于理解,也不方便使用者将日志信息收集后,发送给其它问题定位人员,各种日志之间的关联性信息难于被分析和理解,常被定位人员忽略。(2)日志的数据量大,难于分析。(3)日志信息容易被篡改,可信度差。(4)纯文本、零散的日志导致信息难以被可视化,分析难度高,定位时间长。
基于上述发现可知,现有技术中很难实时重现测试过程,针对上述问题,本发明实施例提供一种基于一致性测试的重现方法和设备,通过将一致性测试过程中的TTCN测试脚本离散成基于时间戳的事件,从而可以基于事件实现对现场的重现。
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种基于一致性测试的重现方法,在测试设备对终端进行一致性测试的过程中,实现对现场的重现;该测试设备可以为协议一致性测试仪(如TD-SCDMA协议一致性测试仪或TD-LTE(Time Division- Long Term Evolution,时分长期演进)协议一致性测试仪等);如图1所示,该方法包括以下步骤:
步骤101,测试设备确定有事件发生。
本发明实施例中,在测试设备确定有事件发生之前,测试设备会将一致性测试过程中的TTCN测试脚本(TTCN测试脚本用于实现一致性测试)离散成基于时间戳的事件。
具体的,当前的一致性测试过程可由TTCN测试脚本(即流程化的TTCN语言)实现,因此通过将TTCN测试脚本离散成一个个基于时间戳的事件,从而可以将TTCN测试脚本真实的运行流程,串行化为序列化,使得基于TTCN脚本语言的一致性测试的运行过程,在尽可能少的占用存储器的情况下,被精确的记录成为可能,进而可以基于事件实现一致性测试的重现。
本发明实施例中,测试设备将一致性测试过程中的TTCN测试脚本离散成基于时间戳的事件,包括:测试设备将一致性测试过程中的TTCN测试脚本离散成具有以下类型之一或任意组合的基于时间戳的事件:控制事件;消息事件;时间事件;AT(Automatic Test,自动测试)指令事件。
进一步的,控制事件包括:用于表示用例开始的用例起始事件、用于表示用例结束及判别的用例结束事件;消息事件包括:用于表示发送消息到系统模拟器的发送TTCN消息事件、用于表示接收到来自系统模拟器的消息的接收TTCN消息事件;时间事件包括:用于表示启动Timer(计数器)的开始Timer事件、用于表示Timer超时的Timer结束事件;AT指令事件包括:用于表示发送自动测试命令到终端的AT指令发送事件、用于表示接收到来自终端的自动测试命令指令的AT指令接收事件。
步骤102,当测试设备确定有事件发生时,测试设备存储事件的信息;该事件的信息包括但不限于事件发生的时间戳以及事件的内容。
步骤103,测试设备处理事件,该处理过程本发明实施例中不再赘述。
基于上述处理,可以实现事件的处理过程,当需要重现事件时,则还可以包括以下步骤:
步骤104,当需要重现事件时,测试设备获取之前存储的事件发生的时间戳以及事件的内容。
本发明实施例中,当需要重现事件时,测试设备可以从之前存储的信息(可以为以日志方式存储的信息)中获得事件发生的时间戳以及事件的内容。
步骤105,测试设备将当前时间调整到事件发生的时间戳,并利用事件的内容处理事件。
需要说明的是,本发明实施例中,当测试设备确定有多个事件发生时,则测试设备需要从多个事件中选择一个事件进行处理,在该选择的事件处理完成后,继续选择下一个事件进行处理,相应的处理过程如上述步骤101-步骤105所述;具体的,一种优选的选择方式包括:
步骤1、测试设备获取多个事件的类型;
步骤2、测试设备根据多个事件的类型确定多个事件的优先级;
步骤3、测试设备优先处理多个事件中具有最高优先级的事件。
需要说明的是,事件的类型包括控制事件、消息事件、时间事件、AT指令事件时,且,控制事件的优先级高于消息事件的优先级;消息事件的优先级高于时间事件的优先级;时间事件的优先级高于AT指令事件的优先级。
进一步的,控制事件包括:用例起始事件和用例结束事件,且用例起始事件的优先级高于用例结束事件的优先级;消息事件包括:发送TTCN消息事件和接收TTCN消息事件,且发送TTCN消息事件的优先级高于接收TTCN消息事件的优先级;时间事件包括开始Timer事件和Timer结束事件,且开始Timer事件的优先级高于Timer结束事件的优先级;AT指令事件包括AT指令发送事件和AT指令接收事件,且AT指令发送事件的优先级高于AT指令接收事件的优先级。
综上所述,本发明实施例中,通过将一致性测试过程中的TTCN测试脚本离散成基于时间戳的事件,从而可以基于事件实现对现场的重现,当用例出现争议时,可以由一致性测试仪、协议、终端等各方参与人员,在各自本地现场重现,对定位和分析争议性问题,有相当大的优势。
为了更加清楚的阐述本发明实施例提供的技术方案,以下结合具体的应用进行详细阐述。
实施例二
本发明实施例二提供一种基于一致性测试的重现方法,在测试设备对终端进行一致性测试的过程中,实现对现场的重现;该测试设备可以为协议一致性测试仪(如TD-SCDMA协议一致性测试仪或TD-LTE协议一致性测试仪等),且该测试设备通过TTCN测试脚本实现对终端的测试。
为了重现真实过程,通过分析当前TTCN测试脚本的调度和消息收发过程,本发明实施例中,将所有调度和消息收发过程以TTCN为参考点进行事件化,即需要将TTCN测试脚本离散成一个个基于时间戳的事件,从而可以将TTCN测试脚本真实的运行流程,串行化为序列化,使得基于TTCN脚本语言的一致性测试的运行过程,在尽可能少的占用存储器的情况下,被精确的记录成为可能,进而可以基于事件实现一致性测试的重现。
如图2所示,为TTCN消息的发送和接收过程;基于此,可以通过消息事件实现TTCN消息的发送和接收过程,该消息事件包括:用于表示发送消息到系统模拟器的发送TTCN消息事件、用于表示接收到来自系统模拟器的消息的接收TTCN消息事件。
如图3所示,为AT指令的发送和接收过程;基于此,可以通过AT指令事件实现AT指令的发送和接收过程,该AT指令事件包括:用于表示发送自动测试命令到终端的AT指令发送事件、用于表示接收到来自终端的自动测试命令指令的AT指令接收事件。
此外,在调度过程中,还包括用例开始和用例结束的调度过程,以及Timer开始和Timer结束的调度过程;基于此,可以通过控制事件实现用例开始和用例结束的调度过程,该控制事件包括:用于表示用例开始的用例起始事件、用于表示用例结束及判别的用例结束事件;可以通过时间事件实现Timer开始和Timer结束的调度过程,该时间事件包括:用于表示启动Timer的开始Timer事件、用于表示Timer超时的Timer结束事件。
基于上述分析,则事件分类情况如表1所示:
表1
基于上述分析得到的事件分类情况,则一致性测试的真实运行流程如图4所示,包括以下步骤:
步骤401,测试设备判断是否有事件到达(即是否有事件发生),如果是,执行步骤402,否则继续执行步骤401。
步骤402,测试设备存储事件的信息,该事件的信息包括但不限于:事件的类型(如用例起始事件和用例结束事件,发送TTCN消息事件和接收TTCN消息事件,开始Timer事件和Timer结束事件,AT指令发送事件和AT指令接收事件等)、事件发生的时间戳、事件的内容等。
步骤403,测试设备通过TTCN测试脚本(TTCN引擎)处理当前事件。
基于上述分析得到的事件分类情况,则一致性测试的重现流程如图5所示,包括以下步骤:
步骤501,当需要重现事件时,测试设备读取之前存储的事件发生的时间戳以及事件的内容。
步骤502,测试设备将当前时钟调整到事件发生的时间戳。
步骤503,测试设备通过TTCN测试脚本(TTCN引擎)处理当前事件。
本发明实施例中,在测试设备通过TTCN引擎处理当前事件之前,还可以有检查是否有Timer超时的步骤,在此不再详加说明。
需要说明的是,由于TTCN测试脚本本身是有流程的,要将其转换为事件驱动的形式,需要考虑到Timer和数据到达可能冲突的情况;基于此,本发明实施例中考虑到Timer和数据到达可能发生冲突的情况,提出一种解决Timer和数据到达之间,及数据发送之时的冲突的解决,解决流程如图6所示。
本发明实施例中,事件优先级定义为:用例起始事件的优先级高于用例结束事件的优先级、用例结束事件的优先级高于发送TTCN消息事件的优先级、发送TTCN消息事件的优先级高于接收TTCN消息事件的优先级、接收TTCN消息事件的优先级高于开始Timer事件的优先级、开始Timer事件的优先级高于Timer结束事件的优先级、Timer结束事件的优先级高于AT指令发送事件的优先级、AT指令发送事件的优先级高于AT指令接收事件的优先级。
综上所述,本发明实施例中,通过将TTCN测试脚本离散成一个个基于时间戳的事件(即利用专用的TTCN引擎实现,使得流程化的TTCN语言,被离散成一个个基于时间戳的事件),从而可以将TTCN测试脚本真实的运行流程,串行化为序列化,使得基于TTCN脚本语言的一致性测试的运行过程,在尽可能少的占用存储器的情况下,被精确的记录成为可能,进而可以基于事件实现一致性测试的重现。而且通过对所有事件的优先级进行定义,为串行化实际上并行的TTCN调度流程成为可能。
本发明实施例中,通过将一致性测试过程中的TTCN测试脚本离散成基于时间戳的事件,从而可以基于事件实现对现场的重现,以提供现场事件精确量化、描述、存储,并可传输到远方,精确重现的方法。当用例出现争议(例如,当一致性测试仪卖到很远的国家或地区后,如果用例出现争议)时,可以由一致性测试仪、协议、终端等各方参与人员,在各自本地现场重现,不需要真实设备,但效果却真实精确,对定位和分析争议性问题,有相当大的优势。
实施例三
基于与上述方法同样的发明构思,本发明实施例中还提供了一种基于一致性测试的重现设备,如图7所示,该设备包括:
确定模块11,用于确定有事件发生;
存储模块12,用于当确定有事件发生时,存储所述事件的信息,所述事件的信息包括所述事件发生的时间戳以及所述事件的内容;
第一处理模块13,用于在存储了所述事件的信息后,处理所述事件;
获取模块14,用于当需要重现所述事件时,获取之前存储的所述事件发生的时间戳以及所述事件的内容;
第二处理模块15,用于将当前时间调整到所述事件发生的时间戳,并利用所述事件的内容处理所述事件。
本发明实施例中,该设备还包括:第三处理模块16,用于将一致性测试过程中的树表结合表示法TTCN测试脚本离散成基于时间戳的事件;所述TTCN测试脚本用于实现一致性测试。
所述第三处理模块16,具体用于将一致性测试过程中的TTCN测试脚本离散成具有以下类型之一或任意组合的基于时间戳的事件:
控制事件;
消息事件;
时间事件;
自动测试AT指令事件。
所述控制事件包括:用于表示用例开始的用例起始事件、用于表示用例结束及判别的用例结束事件;
所述消息事件包括:用于表示发送消息到系统模拟器的发送TTCN消息事件、用于表示接收到来自系统模拟器的消息的接收TTCN消息事件;
所述时间事件包括:用于表示启动计数器Timer的开始Timer事件、用于表示Timer超时的Timer结束事件;
所述AT指令事件包括:用于表示发送自动测试命令到终端的AT指令发送事件、用于表示接收到来自终端的自动测试命令指令的AT指令接收事件。
所述确定模块11,还用于确定有多个事件发生;
所述获取模块14,还用于当确定有多个事件发生时,获取所述多个事件的类型;
所述第一处理模块13,还用于根据所述多个事件的类型确定所述多个事件的优先级,并优先处理所述多个事件中具有最高优先级的事件。
事件的类型包括:控制事件、消息事件、时间事件、AT指令事件;且,
控制事件的优先级高于消息事件的优先级;
消息事件的优先级高于时间事件的优先级;
时间事件的优先级高于AT指令事件的优先级。
控制事件包括:用例起始事件和用例结束事件,且用例起始事件的优先级高于用例结束事件的优先级;
消息事件包括:发送TTCN消息事件和接收TTCN消息事件,且发送TTCN消息事件的优先级高于接收TTCN消息事件的优先级;
时间事件包括开始Timer事件和Timer结束事件,且开始Timer事件的优先级高于Timer结束事件的优先级;
AT指令事件包括AT指令发送事件和AT指令接收事件,且AT指令发送事件的优先级高于AT指令接收事件的优先级。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。