一种嵌入式应用软件测试的过程监控方法

文档序号:6554608阅读:274来源:国知局
专利名称:一种嵌入式应用软件测试的过程监控方法
技术领域
本发明属于嵌入式设备的应用软件测试领域,特别涉及移动数字终端的应用层自动测试。
背景技术
当前移动数字终端(如手机、PDA等)已逐渐发展为由嵌入式操作系统支持的智能化移动平台,运行于其上的应用软件越来越丰富,也越来越复杂。使用手工测试已经不能满足嵌入式应用软件测试的需要,因而提出了自动化测试的要求。
对软件功能的测试通常以黑盒测试为基础,黑盒测试的原理是将被测系统看成一个黑盒,其内部结构对测试者来说是未知的,测试者通过黑盒与外界的接口界面向被测黑盒发送激励信号,并接收被测黑盒发出的响应信号,通过对这些响应信号进行分析,来判断黑盒的工作情况。
如图1所示,在对移动数字终端的应用软件采用黑盒测试时,脚本程序对被测系统发送激励信号,并接收被测系统发回的响应信号,通过对接收到的响应信号进行处理和分析,检测被测系统是否存在缺陷。
目前,作为世界上最具代表性的嵌入式软件测试工具之一——美国TestQuest公司的TestQuest Pro,通过脚本解释器执行测试人员编写好的测试脚本程序,借助于计算机与移动数字终端之间的接口,完成移动数字终端上应用软件的自动化测试。在这一过程中,运行于一台计算机上的脚本解释器首先读取脚本程序获得测试指令和测试用例,然后,通过计算机与移动数字终端的接口单元将激励信号发送到移动数字终端,移动数字终端接收到这些信号后,依照移动数字终端中的程序对这些信号作出响应,并将处理结果通过计算机与移动数字终端的接口单元返回给脚本解释器,脚本解释器将发送至移动数字终端的信号、移动数字终端返回的结果及其他数据记录到存储设备中的日志文件。但TestQuest Pro缺乏专门的测试过程监控工具,它主要通过脚本和日志实现对测试过程的控制。这样,对于测试结果的分析就必须由人来完成,因而无法很好地支持性能测试,也难以真正实现无人监控的测试。另一方面,当测试过程中遇到问题,需要对测试进行调整时,往往需要修改测试脚本,而脚本程序本身又是需要测试的程序,当测试过程复杂时,通过这种方法很难进一步提高测试效率。
为了解决过程监控自动化的问题,Wayne Liu和Paul Dasiewicz 1997年在其论文《The Event-Flow Technique for Selecting Test Cses forObject-Oriented Programs》中提出了基于事件流的测试用例选择技术,他们通过对测试规范进行建模,用测试脚本执行过程中发生的事件来自动选择可能的测试用例,从而自动生成了功能上对测试者有意义的测试用例。依赖测试规范使得测试缺乏必要的灵活性,因此其方法对于测试规范已经明确定义的验收测试比较有效,但不适合进行开发过程的测试。在这里事件是指测试过程中发生的某些特定的现象,具体说就是一定的数据结构和对应数据结构中数据的取值范围。
到目前为止,世界上还没有一种嵌入式软件自动测试工具和方法能够在测试过程中,依照测试人员的需要对相应事件进行捕获,并根据这些事件,自动执行预定义的动作,调用合适的测试用例。

发明内容
针对上述现有技术存在的问题,本发明的目的在于提供一种可以由测试者根据需要定义测试敏感事件,在测试过程中对这些事件进行监控,根据事件的变化,对测试过程进行调整的方法,从而提高测试脚本的重用率,提高测试效率。
本发明的特征在于,该方法是在一台含有脚本解释器的计算机与移动数字终端所构成的测试平台上实现的,包括以下步骤步骤1,在计算机上初始化用于过程监控的内存和CPU状态;步骤2,根据测试需要定义一个或者多个状态表并载入计算机内存,所说的状态表是包含一条或若干条由状态代码、被监控数据的特征、触发条件、触发操作、下一状态代码组成的记录的有序集合,每个状态表即一个状态机,其中被监控数据的特征包括数据来源(也称事件源)和数据类型(也称事件类型);步骤3,在计算机上运行监控器程序,初始化与之对应的内存;步骤4,监控器程序初始化步骤2中所定义的各个状态表对应的状态机为初态,即状态机的状态指针指向各自状态表的第一条记录;步骤5,监控器程序接收被监控数据;步骤6,监控器程序将步骤5中接收到的被监控数据依次与状态机当前记录的被监控数据的特征及触发条件进行比较,若全部符合则执行触发操作,否则返回步骤5继续执行;步骤7,监控器程序根据状态机当前记录的下一状态代码,更新状态机为下一个状态,即状态机的状态指针指向当前记录中下一状态代码所对应的记录,重复步骤5至7。
所述被监控数据包括脚本解释器向移动数字终端发送的数据、移动数字终端向脚本解释器发送的数据、脚本解释器所涉及的计算机内存中所存的脚本程序内部变量的值、计算机系统时间;步骤2中所述之数据来源包括脚本解释器向监控器程序的输出、移动数字终端向监控器程序的输出、监控器程序获得的系统时钟;步骤2中所述之数据类型是指计算机所能识别的数据结构;步骤2中所述的触发操作是指记录相关信息操作、显示相关信息操作、停止脚本解释器操作、暂停脚本解释器操作、脚本解释器恢复执行操作、恢复脚本解释器上下文操作。
在步骤6的判断过程中,可以根据需要,将所需要的对比数据从相应数据库中加载进入监控任务。
监控器程序可以由外部命令开启、关闭或暂停。
通过实验证明,本发明可以根据测试的实际需要定义测试事件,在测试过程中对引发这些事件的输入输出数据进行监控,并根据数据变化所触发的事件进行响应,对测试过程进行调整。在这样的过程中,测试者不必重写测试脚本或重新建立测试用例,只需要重新定义测试事件即可,达到提高测试脚本的重用率,提高测试效率的目的。


图1是本发明方法的状态转移图;图2是实现本发明方法的数据流程图;图3是本发明一个实施例的过程流程图;
具体实施例方式
过程监控方法是建立在对脚本程序的执行进行粗粒度控制的思想上的,其基本思想是通过对脚本程序与移动数字终端之间的交互信号、脚本程序自身变量和其它与测试相关的参数进行跟踪,根据预先设定的条件对脚本程序的运行进行控制。
过程监控的简化内部流程可以用一个如图1所示的状态转移图来描述,事件可以看作是不同的输入数据或数据组合及这些输入数据或数据组合达到特定值时所构成的某种状态。
过程监控的工作原理如下首先执行初始化1,建立一个状态机工作的虚拟环境,即初始化相应的内存;第二步,执行设置事件操作2,设置事件表,事件表也称为状态表,是包含一条或若干条由状态代码、被监控数据的特征(包含事件源和事件类型)、触发条件、触发操作、下一状态代码组成的记录的有序集合,这样排列的一个状态表即构成一个状态机,设置好的状态表可以通过外部存储操作6保存在外部存储设备中以备后用,也可以通过外部存储操作6直接从外部存储设备中取出已保存的状态表进行设置;第三步,执行过程监控3,在计算机系统平台上建立一个进程,运行监控器程序,监控事件,当事件发生时,触发相应的处理过程5,或在外部命令控制下执行停止操作4,终止过程监控。
其中,被监控数据的特征包含数据来源和数据类型两个要素,数据来源(也称事件源)包括脚本解释器向监控器程序的输出、移动数字终端向监控器程序的输出、监控器程序获得的系统时钟,数据类型(也称事件类型)是指计算机所能识别的数据结构,包括整型、浮点型、字符型、枚举型、对象类型等。这样,依照数据来源,被监控数据就包括脚本解释器向移动数字终端发送的数据、移动数字终端向脚本解释器发送的数据、脚本解释器所涉及的计算机内存中所存储的脚本程序内部变量的值、计算机系统时间。
见图2,由于手机是最有代表性的移动数字终端,因此,实施例针对手机应用软件的测试进行说明。
在该实施例中,实现本发明所述方法的数据流程包括如下单元接口层A01,状态表设置单元A02,监控器A03,脚本解释器A04,数据库A05,时钟控制器A06,测试管理和调度单元A07。其中,接口层A01负责传递手机和脚本解释器A04之间交互的数据,手机传送到脚本解释器A04的数据和命令经过接口层A01转换为脚本解释器A04可以识别的数据结构,脚本解释器A04向手机发送的数据和命令在接口层A01被转化为手机可接收的信号后发送给手机,手机可以是一个真实的手机,也可以是一个在计算机内存中建立的手机仿真器(即虚拟手机);状态表设置单元A02用于测试人员根据测试需要设置一个或者多个状态表,设置好的状态表可以存入计算机外部存储器A08中,并可根据需要由状态表设置单元A02读取;状态表设置单元A02将设置好的状态表加载进入计算机内存并传递给监控器A03使用,脚本解释器A04用于逐条执行测试脚本,监控器A03通过脚本解释器A04中植入的跟踪程序获取脚本解释器A04的执行状态,包括变量值和执行的语句,同时,监控器A03通过接口层中植入的跟踪程序获取脚本解释器A04发送给手机的数据及手机反馈给脚本解释器A04的数据;当监控器A03需要比较数据时,可以根据需要从数据库A05获取对比数据;时钟控制器A06用于向监控器A03提供测试相关的时间信息,时间信息可以是墙上时间或相对时间,所谓墙上时间是指普通时钟的具体时间,相对时间是指某个事件或触发操作发生后所经过的时间;测试管理和调度单元A07用于控制监控器A03的运行,包括启动、暂停、停止监控器A03。
见图3,对于一个实际的测试,其处理过程如下首先,在步骤S001中初始化监控环境,包括建立独立的内存区,显示状态表的输入、输出界面,监控过程控制菜单等工作。在步骤S002中定义监控状态表,它包含一条或若干条由状态代码、被监控数据的特征(包含事件源和事件类型)、触发条件、触发操作、转移状态代码组成的记录的有序集合,其中被监控数据的特征包含数据来源和数据类型,被监控数据的特征和触发条件构成一个事件。监控状态表可以是一个或多个,可以将编辑好的状态表保存在外存中,也可以从外存中载入已有的状态表。下面结合发送彩信功能的测试用例给出一个实际的状态表。
测试用例描述如下对于一个发送彩信的测试用例,需要下面几个步骤(1)打开彩信编辑程序;(2)在程序中,测试所有按键,输入相应的文本,并抓回图片或者进行OCR识别,看看所有输入是否正确;(3)选择联系人;(4)添加图片;(5)发送彩信;(6)启动定时器,准备接收回复彩信。
状态表定义如下(1)状态表各项的数据结构


(2)彩信用例对应的状态表,其中“<>”中是注释的内容。


在步骤S003中,启动监控器,即在计算机的软件环境中建立独立的监控进程,将定义好的一个或者多个过程监控状态表加载进入计算机内存,并将各个状态机根据各自的状态表初始化为初态,开始接收被监控数据,等待状态表所定义事件的发生。
步骤S004和S005接收测试管理和调度单元的结束和暂停指令,如果收到,则停止或暂停监控器,监控器暂停后,可以被再次激活。步骤S006接收脚本解释器A04、接口层A01、时钟控制器A06发送来的数据。
步骤S007、S008、S009分别判断数据来源、数据类型、触发条件,如全部符合,则执行触发操作(步骤S010),数据来源包括脚本解释器提供的脚本语句和脚本中的变量、脚本解释器和接口层交互的数据、时钟、计时器、定时器,要判断的数据类型包括绝对时间、相对时间、图片数据、按键信息、输出信息、脚本语句、脚本变量值等,触发条件包括绝对时间的具体值或取值范围、相对时间的具体值或取值范围、具体的图片数据、按键值、输出值、具体的脚本语句、具体的脚本变量取值或取值范围,触发操作包括输出信息到日志文件的操作、输出信息到显示设备的操作、停止脚本解释器操作、暂停脚本解释器操作、脚本解释器恢复执行操作、恢复脚本解释器上下文操作。
步骤S011根据当前状态表记录的转移状态代码设置状态表指针,将状态表指针指向状态表中与转移状态代码相对应的记录,返回步骤S004继续执行。
用于过程监控的程序与脚本解释器运行在同一计算机上,监控器进程可以设计为同时处理多个监控状态表,当某事件发生后,监控器进程首先判断此事件属于哪个监控状态表,然后执行对应状态表的相应动作,以实现不同监控目的的并行操作。
采用本发明所进行的过程监控,可以根据实际的测试需求对事件进行定制,在测试过程中,当需要对所定义的事件进行监控时,不需要重新编写测试脚本程序,提高了脚本程序的重用率,提高测试效率。
权利要求
1.一种嵌入式应用软件测试的过程监控方法,其特征在于,该方法是在一台含有脚本解释器的计算机与移动数字终端所构成的测试平台上实现的,包括以下步骤步骤1,在计算机上初始化用于过程监控的内存和CPU状态;步骤2,根据测试需要定义一个或者多个状态表并载入计算机内存,所说的状态表是包含一条或若干条由状态代码、被监控数据的特征、触发条件、触发操作、下一状态代码组成的记录的有序集合,每个状态表即一个状态机,其中被监控数据的特征包括数据来源和数据类型;步骤3,在计算机上运行监控器程序,初始化与之对应的内存;步骤4,监控器程序初始化步骤2中所定义的各个状态表对应的状态机为初态,即状态机的状态指针指向各自状态表的第一条记录;步骤5,监控器程序接收被监控数据;步骤6,监控器程序将步骤5中接收到的被监控数据依次与状态机当前记录的被监控数据的特征及触发条件进行比较,若全部符合则执行触发操作,否则返回步骤5继续执行;步骤7,监控器程序根据状态机当前记录的下一状态代码,更新状态机为下一个状态,即状态机的状态指针指向当前记录中下一状态代码所对应的记录,重复步骤5至7。
2.如权利要求1所述的方法,其特征在于所述被监控数据包括脚本解释器向移动数字终端发送的数据、移动数字终端向脚本解释器发送的数据、脚本解释器所涉及的计算机内存中所存储的脚本程序内部变量的值、计算机系统时间;步骤2中所述之数据来源包括脚本解释器向监控器程序的输出、移动数字终端向监控器程序的输出、监控器程序获得的系统时钟;步骤2中所述之数据类型是指计算机所能识别的数据结构;步骤2中所述的触发操作是指记录相关信息操作、显示相关信息操作、停止脚本解释器操作、暂停脚本解释器操作、脚本解释器恢复执行操作、恢复脚本解释器上下文操作。
3.如权利要求1所述的方法,其特征在于在步骤6所述的判断过程中,根据需要,将所需要的对比数据从相应数据库中加载进入计算机内存。
全文摘要
一种嵌入式应用软件测试的过程监控方法,在一台含有脚本解释器的计算机与移动数字终端所构成的测试平台上实现,包括初始化程序环境;定义一个或多个包含一条或若干条由状态代码、被监控数据的特征(包含事件源和事件类型)、触发条件、触发操作、下一状态代码组成的记录的状态表;运行监控程序接收被监控数据并与状态表中定义的被监控数据特征和触发条件相比较,如符合则在执行触发操作后转向下一状态继续监控。该发明可提高脚本程序重用率和测试效率。
文档编号G06F11/36GK1845081SQ200610008189
公开日2006年10月11日 申请日期2006年2月24日 优先权日2006年2月24日
发明者高小鹏, 刘斌 申请人:北京博联伟图科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1