终端系统的功能自动化测试方法

文档序号:6461091阅读:186来源:国知局
专利名称:终端系统的功能自动化测试方法
终端系统的功能自动化测试方法
技术领域
本发明是关于一种系统的功能测试,特别是指一种可以测试嵌入式系统
的GUI功能的录制回放模式自动化测试方法。背景技术
嵌入式系统的测试中,功能测试占90%以上的比重。因此,实现功能测 试的自动化,对于降低测试成本,提高产品的质量起着举足轻重的作用。
功能自动化测试方法是相对手工测试而言的,主要是通过软件测试工具、 脚本等来实现,具有良好的可操作行性、可重复性和高效性等特点。目前的 功能测试软件只实现了对C/S (客户端/服务器端)、B/S (服务器端/客户端) 及WEB(互联网)等软件功能测试,且都是基于在特定的Windows平台或Linux 平台上实现的,不适合嵌入式系统如WindowsCE的功能测试。且现有测试方 法,仅能实现对GUI(GraphicUserlnterface,图形用户界面)功能的测试,而对 于非GUI功能缺乏有效、可靠的检查点。此外,所有功能测试工具均不支持 任何协议,无法满足对终端嵌入式系统的RDP、 ICA、 Telnet等协议的功能测
试o

发明内容
本发明所要解决的技术问题在于提供从嵌入式系统的功能测试入手,能
满足嵌入式系统的RDP、 ICA、 Telnet等协议的功能测试的终端系统的自动化 测-逸方法。
本发明是通过以下技术方案解决上述技术问题的 一种终端系统的功能 自动化测试方法,包括依次进行的下述步骤 程序开始于步骤10;
步骤20:根据功能测试针对的对象,选择进入的模式,判断功能测试针 对的是否为GUI对象,若功能测试针对的是GUI对象,则进入步骤30,若功能测试针对的是非GUI对象,则进入步骤40;
步骤30:对用户的实际操作进行录制,然后自动生成用户容易理解的脚
本;
步骤40:步骤30录制的过程中,插入检查点;
步骤50:将步骤30生成的脚本回放,并自动执行测试,记录检查点的状 态,然后进入步骤90;
步骤60:录入测试用例,然后自动生成脚本;
步骤70:步骤10录入测试用例的过程中,插入纟全查点;
步骤80:将步骤10生成的脚本回放,并自动执行测试,记录检查点的状 态,然后进入步骤90;
步骤90:脚本回》文完毕,对记录的4企查点状态进行分析,并汇总测试结 果,自动生成测试报告。
该发明进一步具体为
所述步骤30具体包括依次进行的下述步骤
程序开始于步骤302。
步骤304:用户开始实际操作,进行录制,当用户对对象进行操作时,每 个服务端都将会产生相应的窗口事件,使用该窗口事件向客户端通知应用程 序用户界面中的更改;
步骤306:服务端发送窗口事件给客户端;
步骤308:执行步骤304的同时客户端启动事件通知挂钩,监视服务端发 送窗口事件给客户端的窗口事件通知,客户端通过事件通知挂钩选择接收的 窗口事件,并对选择的事件进行相应的处理,通过对象接口获取的服务端的 信息,同时进入步骤310及步骤312;
步骤310:生成脚本,然后进入步骤314;
步骤312:生成映射文件,然后进入步骤314;
程序结束于步骤314。
所述步骤308中,当事件的生成匹配指定的条件时,服务端将调用客户端 的回调函数,此时客户端釆用回调函数来接收事件通知,并处理事件。所述步骤310具体包括下述步骤在窗口事件挂钩的回调函数内,获耳又发 出窗口事件通知的对象接口,并获取对象的属性,同样将这些属性及对对象 的操作传送到脚本生成器中,脚本生成器实现脚本语句的生成及输出。
所述步骤312具体包括下述步骤在窗口事件挂钩的回调函数内,获取发 出窗口事件通知的对象接口,并获取对象的属性,将这些属性传到映射生成 器内生成映射文件。
所述步骤50具体包括依次进行的下述步骤
步骤502:脚本解析器把脚本语句从脚本文件中解析出来,分析出脚本语 句的各个分量,如控件名称和序号,事件类型等等相关信息;
步骤504:映射解析器用从脚本语句中得到的控件名称和序号在映射文件 中查找到该控件的详细属性信息和控件的唯一标识;
步骤506:将控件的唯一标识,控件的属性信息及对控件的操作传递给事 件回放器,事件回放器根据控件的唯一标识找到控件的接口,并根据控件的 操作对控件发出相应的操作消息,同时可插入控件的属性检查点;
步骤508:模拟键盘和鼠标输入,当遇到不完全支持Windows消息和接口 方法的控件,可以采用模拟键盘和鼠标的输入;
程序结束于步骤510。
所述步骤60具体包括依次进行的下述步骤
步骤602:用例解析器解析测试用例,分离出测试用例所涉及的控件信息 及操作,并传送到脚本生成器中;
步骤604:脚本生成器获取从用例解析器传来的信息,生成相应的脚本语
句;
步骤606:将脚本语句输出到软件的空白框,便于脚本的编辑。
所述步骤80具体包括依次进行的下述步骤
步骤802:解析脚本,分离出脚本中控件信息及操作;
步骤804:根据控件信息获取当前窗口内该控件的接口;
步骤806:根据获得的控件接口和对控件的操作,对控件执行相应的操作;
步骤808:记录4全查点状态;
7步骤810:判断是否还有未解析的脚本,如果是,返回步骤802,顺序解 析每一个脚本,否则,进入步骤812; 程序结束于步骤812。
所述步骤90具体包括依次进行的下述步骤
步骤902:记录测试运行时系统当前时间、操作者及测试总运行时间;
步骤904:当脚本回放失败时,记录错误信息,可定位到脚本的位置;
步骤906:统计4企查点状态,当检查点验证失败时,记录错误信息,并记 录预期与实际的结果对比;
步骤908:统计每条脚本运行的状态、运行结果及运行的时间; 步骤910:显示最后测试结果成功或失败;
步骤912:将上述测试结果以文本的形式显示,并用一定的颜色加以区分, 支持打印结果。
本发明终端系统的功能自动化测试方法的优点在于由于这种方法基于 显示控件操作实现自动化测试,而与操作系统无关,所以可适用于终端嵌入 式系统、也可以适用于非嵌入式系统的自动化功能测试;采用自动生成脚本 方式,测试的操作以脚本的形式存在,同时为测试结果提供有力的检查点; ICA、 RDP是基于图像的传输协议,将服务器的图像资源以侦的方式传递到客 户端使用,而本方法是将服务器的图像资源以侦的方式传递到客户端使用, 而这种方法也是基于显示控件实现自动化操作的,所以该测试方法支持ICA、 RDP等协议功能的测试;对于GUI功能及非GUI功能的测试都能够提供可靠的 检查点;功能自动化测试能节省测试的时间,避免手工测试造成的错误,从 而缩短了开发的周期并确保了产品的质量。

下面参照附图结合实施例对本发明作进一步的描述。 图l是本发明终端系统的功能自动化测试方法流程图。 图2是图1中步骤30的具体流程图。 图3是图1中步骤50的具体流程图。 图4是图1中步骤60的具体流程图。图5是图1中步骤80的具体流程图。 图6是图1中步骤90的具体流程图。
具体实施方式
请同时参阅图l,是本发明终端系统的功能自动化测试方法流程图。包括 依次进行的下述步骤 程序开始于步骤10;
步骤20:根据功能测试针对的对象,选择进入的模式,判断功能测试针 对的是否为GUI(Graphic User Interface,图形用户界面)对象,若功能测试针对 的是GUI对象,则进入步骤30,若功能测试针对的是非GUI对象,则进入步骤 40;
步骤30:对用户的实际操作进行录制,该实际操作包括鼠标操作,键盘 操作,然后自动生成用户容易理解的脚本,脚本可手工编辑;
步骤40:步骤30录制的过程中,插入检查点,自动测试时需检查此点的 状态;
步骤50:将步骤30生成的脚本回放,并自动执行测试,记录检查点的状 态,然后进入步骤90;
步骤60:录入测试用例,然后自动生成脚本,脚本可手工编辑;
步骤70:步骤10录入测试用例的过程中,插入4企查点;
步骤80:将步骤10生成的脚本回放,并自动执行测试,记录检查点的状 态,然后进入步骤90;
步骤90:脚本回放完毕,对记录的检查点状态进行分析,并汇总测试结 果,自动生成测试报告。
请参阅图2,所述步骤30具体包括依次进行的下述步骤
程序开始于步骤302。
步骤304:用户开始实际操作,进行录制,当用户对对象进行操作时,每 个对象/窗口 (也称服务端)都将会产生相应的窗口事件(WinEvent),使用 该窗口事件向客户端通知应用程序用户界面中的更改,例如,创建并部署对
象,或者更改UI元素的名称、状态或值;步骤306:服务端发送窗口事件给客户端;
步骤308:执行步骤304的同时客户端启动事件通知挂钩(Windows Hook),监视服务端发送窗口事件给客户端的窗口事件通知,客户端通过事 件通知挂钩选择接收的窗口事件,并对选择的事件进行相应的处理,通过对 象接口获取的服务端的信息,同时进入步骤310及步骤312;
步骤310:生成脚本,然后进入步骤314;
步骤312:生成映射文件,然后进入步骤314;
程序结束于步骤314。
所述步骤306中,具体包括下述步骤服务端发送窗口事件,将窗口事件 通知广播给所有感兴趣的客户端,服务端将会调用事件通知函数,并传递标 识事件类型的信息和应用该事件的UI元素,客户端可以使用此信息来检索UI 元素的一个对象,并收集更多信息。
所述步骤308中,客户端接收窗口事件时,根据测试对象的不同,用户可 以自己去选择接收有效事件,有以下几种选择接收所有事件或一组特殊事 件;接收来自所有线程或某个特定线程的事件;接收来自所有进程或某个特 定进程的事件;处理进程中或进程外的事件。
当事件的生成匹配指定的条件时,服务端将调用客户端的回调函数,此 时客户端采用回调函数来接收事件通知,并处理事件。
所述步骤312具体包括下述步骤
在窗口事件挂钩的回调函数内,获取发出窗口事件通知的对象接口,并 获取对象的名称、类型......等属性,将这些属性传到映射生成器内生成映射文件。
映射文件为形如F^(N, V, R, S, L, D, K, A, P, C......, n))的集
合,其中N名称,V值,R角色,S状态,L位置,D描述,K快捷键,A默认动 作,P父窗口, C类,n序号等。文件结构包含了对象的详细信息及对象的序 号。
对象唯一标识的方法首先激活对象所在的窗口,对于同一窗口的对象, 通过"角色-名字,,识别,而当遇到同类同名对象时,再通过生成对象序号来识
10别,序号从O开始,依次加l。
所述步骤310具体包括下述步骤
在窗口事件挂钩的回调函数内,获耳又发出窗口事件通知的对象接口,并 获取对象的名称、类型......等属性,同样将这些属性及对对象的操作传送到
脚本生成器中,脚本生成器实现脚本语句的生成及输出。
所述脚本语句的生成釆用线性脚本生成方法。
线性脚本生成方法线性脚本是录制手工执行的测试时得到的脚本,这 种线性脚本包含所有的击键、功能键、控制测试软件的控制键及输入数据的 数字键等。将录制的事件和对象的属性以及从映射文件查找到的接收该事件 的对象序号转化为脚本语句,且每条脚本语句都应对其"i殳置当前窗口,方便 步骤30中脚本回》文的应用。
步骤40中插入检查点的类型包括下述几种
文本检查点可获取检查点从单行或多行编辑框及其他对象中捕获并比 较字母、文字和tt字的值。包括CheckBox、 Generic GroupBox、 Label、 PushButton、 RadioButton、 ToolBar、 Window等;
对象数据检查点对对象中的数据进行验证;
对象属性检查点添加此类检查点后,将显示出被捕获的对象及其相应 属性的列表,然后从对象的列表中选择想要检查的属性;
位图检查点可分析对比屏幕和屏幕区域图像;
窗口存在检查点对窗口是否如预期出现进行验证;
音频;险查点对预期出现的音频频率进行-验^汪。
请参阅图3,所述步骤50具体包括依次进行的下述步骤
步骤502:脚本解析器把脚本语句从脚本文件中解析出来,分析出脚本语 句的各个分量,如控件名称和序号,事件类型等等相关信息;
步骤504:映射解析器用从脚本语句中得到的控件名称和序号在映射文件 中查找到该控件的详细属性信息和控件的唯一标识;
步骤506:将控件的唯一标识,控件的属性信息及对控件的操作传递给事 件回放器,事件回放器根据控件的唯一标识找到控件的接口,并根据控件的操作对控件发出相应的操作消息,同时可插入控件的属性;险查点;
步骤508:模拟键盘和鼠标输入,当遇到不完全支持Windows消息和接口 方式的控件,可以采用模拟键盘和鼠标的输入,GUI控件一般有两种, 一种 控件可以支持Windows直接发消息进行控制,或Windows有提供此控件的接口 函数进行控制,我们要通过程序自动操作这种控件,只需要找准此控件的唯 一标识,并针对它发送消息或调用Windows提供的接口函数,另外一种控件 不支持Windows消息和接口方式,而键盘和鼠标作为输入方式,只能模拟键 盘和鼠标的操作,才能通过程序自动操作这种控件,如鼠标在屏幕的某某坐 标执行了点击操作,将此操作录制到脚本中,下次运行时直接按此操作执行; 程序结束于步骤510。
请参阅图4,上述步骤60具体包括依次进行的下述步骤 步骤602:用例解析器解析测试用例,分离出测试用例所涉及的控件信息 及操作,并传送到脚本生成器中;
步骤604:脚本生成器获取从用例解析器传来的信息,生成相应的脚本语
句;
步骤606:将脚本语句输出到软件的空白框,便于脚本的编辑。 所述步骤604中脚本语句的生成采用关键字驱动脚本生成方法。 关4建字驱动脚本生成方法关键字驱动脚本生成方法是录入测试用例时 得到的脚本,将数据文件变为测试用例的描述,用一系列关键字指定要执行 的任务,这些关键字预先存在于测试文件中,对这些关键字的解释为支持脚 本,也存在于测试文件中。控制脚本读取测试文件中的关键字,并通过关键 字调用相关的支持脚本,这样测试软件或特殊应用对控制脚本的约束将大大 减少。
上述步骤70中的检查点是通过比较控件的基准值与回放脚本时的值来判 断程序是否按照预期的设想在执行,所述控件的基准值是指录入测试用例时 所选控件的某些属性,具体取哪些属性依赖于插入的检查点类型。通常插入 好检查点后,都会生成一个基线数据文件,此文件的值是录入测试用例时所 选控件的某些属性的值或者是控件的数据,既可以作为基准值,可以手工修改。因此,检查点能有效地验证功能是否正常。
步骤70中插入检查点的类型包括下述几种
文本检查点可获取检查点从单行或多行编辑框及其他对象中捕获并比 较字母、文字和凄史字的值。包括CheckBox、 Generic GroupBox、 Label、 PushButton、 RadioButton、 ToolBar、 Window等;
对象数据检查点对对象中的数据进行验证;
对象属性检查点添加此类检查点后,将显示出被捕获的对象及其相应 属性的列表,然后从对象的列表中选择想要检查的属性; 位图检查点可分析对比屏幕和屏幕区域图像; 窗口存在检查点对窗口是否如预期出现进行验证; 音频检查点对预期出现的音频频率进行验证。 请参阅图5,所述步骤80具体包括依次进行的下述步骤 步骤802:解析脚本,分离出脚本中控件信息及^t喿作; 步骤804:根据控件信息获取当前窗口内该控件的接口 ; 步骤806:根据获得的控件接口和对控件的才喿作,对控件执行相应的操作; 步骤808:记录4企查点状态;
步骤810:判断是否还有未解析的脚本,如果是,返回步骤802,顺序解 析每一个脚本,否则,进入步骤812; 程序结束于步骤812。
请参阅图6,所述步骤90具体包括依次进行的下述步骤 步骤902:记录测试运行时系统当前时间、4喿作者及测试总运行时间; 步骤904:当脚本回放失败时,记录错误信息,可定位到脚本的位置; 步骤906:统计;险查点状态,当检查点验证失败时,记录错误信息,并记 录预期与实际的结果对比;
步骤908:统计每条脚本运行的状态、运行结果及运行的时间; 步骤910:显示最后测试结果成功或失败;
步骤912:将上述测试结果以文本的形式显示,并用一定的颜色加以区分, 支持打印结果。
13虽然以上描述了本发明的具体实施方式
,但是熟悉本技术领域的技术人 员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发 明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的 修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
权利要求
1.一种终端系统的功能自动化测试方法,其特征在于包括依次进行的下述步骤程序开始于步骤10;步骤20根据功能测试针对的对象,选择进入的模式,判断功能测试针对的是否为GUI对象,若功能测试针对的是GUI对象,则进入步骤30,若功能测试针对的是非GUI对象,则进入步骤40;步骤30对用户的实际操作进行录制,然后自动生成用户容易理解的脚本;步骤40步骤30录制的过程中,插入检查点;步骤50将步骤30生成的脚本回放,并自动执行测试,记录检查点的状态,然后进入步骤90;步骤60录入测试用例,然后自动生成脚本;步骤70步骤10录入测试用例的过程中,插入检查点;步骤80将步骤10生成的脚本回放,并自动执行测试,记录检查点的状态,然后进入步骤90;步骤90脚本回放完毕,对记录的检查点状态进行分析,并汇总测试结果,自动生成测试报告。
2. 如权利要求1所述的终端系统的功能自动化测试方法,其特征在于所 述步骤30具体包括依次进行的下述步骤程序开始于步骤302。步骤304:用户开始实际操作,进行录制,当用户对对象进行操作时,每 个服务端都将会产生相应的窗口事件,使用该窗口事件向客户端通知应用程 序用户界面中的更改;步骤306:服务端发送窗口事件给客户端;步骤308:执行步骤304的同时客户端启动事件通知挂钩,监视服务端发 送窗口事件给客户端的窗口事件通知,客户端通过事件通知挂钩选择接收的窗口事件,并对选择的事件进行相应的处理,通过对象接口获取的服务端的信息,同时进入步骤310及步骤312;步骤310:生成脚本,然后进入步骤314; 步骤312:生成映射文件,然后进入步骤314; 程序结束于步骤314。
3. 如权利要求2所述的终端系统的功能自动化测试方法,其特征在于所 述步骤308中,当事件的生成匹配指定的条件时,服务端将调用客户端的回调 函数,此时客户端采用回调函数来接收事件通知,并处理事件。
4. 如权利要求2所述的终端系统的功能自动化测试方法,其特征在于所 述步骤310具体包括下述步骤在窗口事件挂钩的回调函数内,获取发出窗口 事件通知的对象接口,并获取对象的属性,同样将这些属性及对对象的操作 传送到脚本生成器中,脚本生成器实现脚本语句的生成及输出。
5. 如权利要求2所述的终端系统的功能自动化测试方法,其特征在于所 述步骤312具体包括下述步骤在窗口事件挂钩的回调函数内,获取发出窗口 事件通知的对象接口,并获^U于象的属性,将这些属性传到映射生成器内生 成映射文件。
6. 如权利要求1所述的终端系统的功能自动化测试方法,其特征在于所 述步骤50具体包括依次进行的下述步骤步骤502:脚本解析器把脚本语句从脚本文件中解析出来,分析出脚本语 句的各个分量,如控件名称和序号,事件类型等等相关信息;步骤504:映射解析器用从脚本语句中得到的控件名称和序号在映射文件 中查找到该控件的详细属性信息和控件的唯一标识;步骤506:将控件的唯一标识,控件的属性信息及对控件的操作传递给事 件回放器,事件回放器根据控件的唯一标识找到控件的接口,并根据控件的 操作对控件发出相应的操作消息,同时可插入控件的属性;险查点;步骤508:模拟键盘和鼠标输入,当遇到不完全支持Windows消息和接口 方法的控件,可以采用模拟键盘和鼠标的输入;程序结束于步骤510。
7. 如权利要求1所述的终端系统的功能自动化测试方法,其特征在于所 述步骤60具体包括依次进行的下述步骤步骤602:用例解析器解析测试用例,分离出测试用例所涉及的控件信息 及操作,并传送到脚本生成器中;步骤604:脚本生成器获取从用例解析器传来的信息,生成相应的脚本语句;步骤606:将脚本语句输出到软件的空白框,便于脚本的编辑。
8. 如权利要求1所述的终端系统的功能自动化测试方法,其特征在于所 述步骤80具体包括依次进行的下述步骤步骤802:解析脚本,分离出脚本中控件信息及操作;步骤804:根据控件信息获取当前窗口内该控件的接口;步骤806:根据获得的控件接口和对控件的操作,对控件执行相应的操作;步骤808:记录^r查点状态;步骤810:判断是否还有未解析的脚本,如果是,返回步骤802,顺序解 析每一个脚本,否则,进入步骤812; 程序结束于步骤812。
9. 如权利要求1所述的终端系统的功能自动化测试方法,其特征在于所 述步骤90具体包括依次进行的下述步骤步骤902:记录测试运行时系统当前时间、才喿作者及测试总运行时间;步骤卯4:当脚本回放失败时,记录错误信息,可定位到脚本的位置;步骤906:统计4企查点状态,当^r查点-验i正失败时,记录^"误信息,并记 录预期与实际的结果对比;步骤908:统计每条脚本运行的状态、运行结果及运行的时间; 步骤910:显示最后测试结果成功或失败;步骤912:将上述测试结果以文本的形式显示,并用一定的颜色加以区分, 支持打印结果。
全文摘要
一种终端系统的功能自动化测试方法,包括开始于步骤10;步骤20判断功能测试针对的是否为GUI对象,若是,进入步骤30,若否,进入步骤40;步骤30对用户的实际操作进行录制,自动生成脚本;步骤40录制的过程中,插入检查点;步骤50将生成的脚本回放,并自动执行测试,然后进入步骤90;步骤60录入测试用例,自动生成脚本;步骤70录入过程中,插入检查点;步骤80将生成的脚本回放,并自动执行测试,然后进入步骤90;步骤90自动生成测试报告。本发明的优点在于可适用于终端嵌入式系统及非嵌入式系统的自动化功能测试;且支持ICA、RDP等协议功能的测试;对于GUI功能及非GUI功能的测试都能够提供可靠的检查点;节省测试的时间。
文档编号G06F11/36GK101620565SQ20081007135
公开日2010年1月6日 申请日期2008年7月4日 优先权日2008年7月4日
发明者伟 罗 申请人:福建升腾资讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1