一种嵌入式软件的测试方法和系统的制作方法

文档序号:6573652阅读:240来源:国知局
专利名称:一种嵌入式软件的测试方法和系统的制作方法
一种嵌入式软件的测试方法和系统技术领域
本发明涉及软件测试领域,尤其涉及对嵌入式软件的测试。背景技术
随着软件的广泛应用,人们对软件的期望值也越来越高,软件的质量、 性能、可靠性等方面也正逐渐成为人们关注的焦点,软件测试是验证软件 是否能达到期望功能的有效方法,通过软件测试可以保证软件质量,因此 软件测试是一件非常重要的工作。嵌入式软件是运行在特定目标系统上的 软件,其硬件平台和操作系统往往是专用的,不具有通用性,比如手机、 洗衣机、机顶盒、导航系统、医疗检测设备等使用的软件。目前对嵌入式软件进行测试采用的方法,通常是手工编制脚本,通过 脚本调用存储在计算机上的用例下发给目标嵌入式设备上的测试桩程序进 行测试。该方法需要测试人员具备一定的自动化用例编写能力,需要进行 手工编写用例,不能通过录制嵌入式软件系统测试过程生成。此外,用于PC机上的常用自动化软件测试工具有WINRUNNER、 LOADRU雨ER、 ROBOT等,这些用于PC机上的软件测试工具虽然都有录制和 重放功能,但都还未实现对嵌入式设备的操作进行脚本录制与重放。因而,现有技术存在着测试效率低,对操作人员的自动化测试用例编 写能力要求较高,需要使用大量的测试人员,人力成本高,不能将手工操 作目标机的操作过程进行录制生成自动化测试用例脚本,也不能录制、编 辑和重放对嵌入式软件操作的脚本实现嵌入式软件的测试自动化等缺点。
发明内容本发明的目的是解决现有技术中的缺陷,提供一种用于嵌入式软件的 测试方法和系统,通过录制对目标机的操作生成自动化测试用例脚本,通 过调用存放在数据库文件中的不同测试参数数据,对测试用例的脚本进行 简单编辑进行动作重放,即在被测试设备上完成一系列连续动作,此外, 还可以通过对所录制脚本修改或直接编写脚本形成测试用例。为了实现上述目的,本发明采用的技术方案是 一种嵌入式软件的测 试方法,包括以下步骤1)录制对目标机的操作,生成测试脚本;2)重放所录制的脚本;
其中,所述步骤l包括如下步骤
11) 利用目标机上的桩程序录制操作人员的操作步骤、被设置参数的 数据、以及目标机运行的结果,录制的对象包括对目标机的图形用户界面
的操作、模拟器操作和关键点插入操作的录制;
12) 将录制的数据通过通讯端口传输至计算机;
13) 运行计算机上的测试程序;
14) 测试程序接收录制的数据,并将录制的数据保存为具有关键字的 脚本文件;
15) 修改脚本中的所需要的数值部分为参变量;
16) 在计算机上建立数据库文件,存放参变量对应的数据; 其中,所述步骤2包括如下步骤
21) 运行计算机上的测试程序;
22) 测试程序调用脚本文件、并读入参数数据库中的对应数据来替换 脚本文件中的参变量;
23) 解析脚本文件并输入目标机;
24) 目标机中的桩程序解析并执行脚本中的指令;
25) 将运行结果返回计算机进行分析,并输出测试结果。 其中述步骤11中对目标机的图形用户界面操作的录制方法采用"面向
控件对象的录制"或"面向步骤操作录制"。
所述"面向控件对象的录制"优选是由鼠标动作触发,录制鼠标的一 系列动作,其中对鼠标动作的录制只记录能够改变控件行为或属性值的有 效点击,包括控件的绝对路径和控件的属性,包括如下步骤
Al)捕捉鼠标的点击动作;
A2)判断该点击动作是否是有效的动作,如果不是有效的动作,则忽
略该动作;如果是有效的动作,则执行步骤A3;
A3)判断鼠标点击的控件ID是否改变,如果没变,则忽略该点击动
作;如果控件ID改变了,则执行步骤A4;
A4)生成与该控件对应的绝对路径,并记录控件属性改变后的值; A5)上传绝对路径和控件属性改变后的值到计算机中的测试脚本中。 所述绝对路径是指从目标机图像用户界面的初始界面开始,到达目标
控件,途经的各个窗口和窗口上被点击的控件所形成的二元组,二元组的 形式是(.Wndld, Itemld),其中Wndld是每一级窗口 Id, Itemld是该窗口上接收有效点击后属性被改变的控件Id,绝对路径是一个操作过程链, 描述点击过程的有序ID集合。这样的操作链将作为面向控件录制的一部分 数据被记录下来,同时在录制过程中还要记录控件的属性值的变化结果, 控件属性的记录不是记录某个控件内容的改变过程,而是只记录控件属性 值改变后,焦点离开该控件时的控件属性值。
其中,所述"面向步骤录制"是记录目标机的键盘上被按下的键盘 码和旋钮旋转的操作码,录制按键或旋钮的操作包括以下步骤-
Bl)捕捉按键或旋钮的动作;
B2)判断按键或旋钮的动作是否是有效动作,如果不是有效动作,则 忽略该动作;如果是有效动作,则执行步骤B3; B3)记录按键的键盘码或者旋钮的操作码;
B4)上传按键的键盘码或旋钮的操作码到计算机中的测试脚本中。 所述步骤2中还包括如下步骤 Cl)选取脚本文件,系统关联相应的参数数据文件; C2)读取脚本文件中的指令并执行,执行过程中测试程序把前后两个 绝对路径换算为相对路径。
所述步骤C2是一个循环过程,包括如下步骤
51) 判断指令是否是对目标机的图形用户界面的操作,如果是,则重 放面向控件对象或面向步骤操作,并执行步骤S4;如果否,则执行步骤S2;
52) 判断指令是否是关键点插入操作,如果是,则收集目标机信息,
然后执行步骤S4;如果否,则执行步骤S3;
53) 判断指令是否是对模拟器的操作,如果是,则向模拟器发指令,
模拟器发出信号,然后执行步骤S4;如果否,执行步骤S4;
54) 判断动作序列是否执行结束,如果是,则跳出循环继续往下执行;
如果动作序列没有执行结束,则继续读取下一条重放动作的指令,执行上
述步骤S1。
为实现上述目的,本发明的另一种技术方案是 一种嵌入式软件的测 试系统,包括录制模块和重放模块;所述录制模块包括用于录制操作人 员的操作步骤、被设置参数的数据、以及目标机运行的结果的录制单元, 用于将录制的数据通过通讯端口传输至计算机的传输单元,用于运行计算 机上的测试程序的程序运行单元,用于接受测试程序指令且将录制的数据
保存为具有关键字的脚本文件的脚本文件生成单元,用于修改脚本文件中 的所需的数值为参变量的数值编辑单元,用于存放参变量对应数据的数据库单元;所述重放模块包括..用于运行测试程序、调用脚本文件的文件调 用单元,用于接收脚本文件、并读入参数数据库中的对应数据来替换参变 量,并解析脚本文件、将脚本文件输入目标机的数据解析和执行单元,位 于目标机中,用于解析并执行脚本中的指令的桩程序解析单元,用于接收 桩程序解析单元运行的结果、并将运行结果返回计算机进行分析,并输出 测试结果的处理单元。
所述录制单元优选包括面向控件对象录制单元或面向步骤录制单元。 所述面向控件对象录制单元包括用于录制鼠标动作的第一捕捉模 块,所述第一捕捉模块录制鼠标的一系列动作,其中对鼠标动作的录制只 记录能够改变控件行为或属性值的有效点击,包括控件的绝对路径和控件 的属性;用于判断鼠标点击动作是否是有效动作的第一判断模块;用于在
第一判断模块判断鼠标点击动作是有效动作后判断鼠标点击的控件ID是 否改变的第二判断模块;用于在第二判断模块判断鼠标点击的控件ID改变
时,生成与该控件对应的绝对路径,记录控件属性改变后的值的第一记录 模块;和用于上传绝对路径和控件属性改变后的值到计算机中的测试脚本 中的第一传输模块。
所述绝对路径是指从目标机图像用户界面的初始界面开始,到达目标 控件,途经的各个窗口和窗口上被点击的控件所形成的二元组,所述二元 组的形式是(Wndld, Itemld),其中Wndld是每一级窗口 Id, Itemld是
该窗口上接收有效点击后属性或行为被改变的控件Id。
所述面向步骤录制模块包括用于捕捉按键或旋钮动作的第二捕捉模 块;用于根据第二捕捉模块捕捉的按键或旋钮动作判断按键或旋钮的动作 是否是有效动作的第三判断模块;用于在第三判断模块判断按键或旋钮的 动作有效后记录按键的键盘码或者旋钮的操作码的第二记录模块;用于上 传按键的键盘码或旋钮的操作码到计算机中的测试脚本中的第二传输模 块。
所述重放模块还包括用于根据选取的脚本文件关联相应的参数数据 文件的关联模块;和用于读取脚本文件中的指令并执行的执行模块,所述 执行模块用于在执行过程中把前后两个绝对路径换算为相对路径。
所述执行模块包括用于判断指令是否是对目标机的图形用户界面进 行操作的第四判断模块;用于在第四判断模块判断指令是对目标机的图形 用户界面进行操作时重放面向控件对象或面向步骤操作的重放模块;用于 在第四判断模块判断指令不是对目标机的图形用户界面进行操作时判断指令是否是关键点插入操作的第五判断模块;用于在第五判断模块判断指令 是关键点插入操作时收集目标机上信息的信息采集模块;用于在第五判断 模块判断指令不是关键点插入操作时判断指令是否是对模拟器的操作的第 六判断模块;用于向模拟器发送指令的发送模块;用于在重放模块、信息 采集模块和发送模块中的任何一个执行完毕后判断动作序列是否执行结束 的第七判断模块,所述第七判断模块用于在判断动作序列执行结束后,则 跳出循环继续往下执行,在动作序列没有执行结束时,则继续读取下一条
重放动作的指令,控制第四判断模块对指令进行判断。
本发明的有益效果是本发明为测试人员提供了一种快速生成自动化 测试用例的方法,利用脚本录制重放技术提高编写嵌入式软件自动化测试 用例的速度,对测试人员而言,无须记忆过多的脚本指令。利用"绝对路 径"方式存放操作步骤,使每一步骤路径清晰可读,利用相对路径重放符 合模拟人工操作实际。通过对被测试设备的操作进行录制,生成自动化测 试用例脚本,减少了编写自动化测试用例的工作量,加快了测试的进度, 提高了测试效率,降低了成本。
本发明的特征及优点将通过实施例结合附图进行详细说明。

图1是使用本发明一种嵌入式软件的测试方法的测试系统的架构示意图。
图2是图1所示测试系统录制重放逻辑结构图。
图3是本发明中录制过程的流程图。
图4是本发明中面向控件对象录制流程图。
图5是本发明中面向步骤录制流程图。
图6是本发明中重放过程的流程图。
图7是图1所示测试系统中自动化测试录制重放界面。
具体实施方式
下面结合附图对本发明的具体实施例进行详细的说明。
测试系统的架构示意图如图1所示,以监护仪的嵌入式软件测试为例 进行说明。系统由PC机1、模拟器2、监护仪3组成。PC机1是整个测试 系统的控制核心,是具备RS-232通信串口和以太网卡的普通计算机,其上 运行自动化测试程序,录制的脚本也存放在PC机1上;模拟器2是一种模 拟人体生理信号的特殊信号发生器,监护仪3为被测试的目标机,监护仪 3自身的系统软件是自动化测试的待测目标,监护仪3的系统软件具有完整的图形用户界面,监护仪3上还运行桩程序;PC机1和模拟器2通过串
口连接来传输数据和指令,模拟器2和监护仪3通过专用的信号传输链路 连接,由模拟器2接受PC机1指令后输出信号到监护仪3, PC机1与监护 仪3之间通过以太网链路连接,使用基于TCP/IP的协议来传输数据和指令。
其中,监护仪3还可以被替换为其他的被测试的目标机,模拟器2也 可以是根据被测试的目标机的不同而产生所需要的信号的信号发生器。
测试系统录制重放逻辑结构如图2所示,录制重放的流程如图3到 图6所示,程序运行的逻辑过程是PC机1上的测试程序通过"控制发送 单元"发送录制指令给监护仪3,监护仪3接收指令后通过"数据包解析 单元一"进行数据解析,解析后启动"操作捕获单元"对手工操作进行录 制,记录对目标机的手工操作和目标机的运行信息,并把录制的内容回传 给测试程序,测试程序保存所录制内容为脚本文件;在录制过程中测试程 序中通过串口控制模拟器2的操作也同时被录制下来;重放时则由测试程 序通过"脚本记录分析单元"解析脚本后送给"控制发送单元","控制发 送单元"再发给目标机的"数据包解析单元一",解析后送给"脚本执行单 元"进行操作重放,同时收集相关测试数据,通过"数据反馈单元"回传 给测试程序,通过"测试关键点比较单元"完成比较并通过"辅助测试单 元一"输出报告。
其中,录制过程的一种实施例的流程如图3所示,包括如下步骤
Rl)判断是否对操作动作进行录制,如果是,则录制操作动作到脚本,
然后执行步骤R4;如果否,则执行步骤R2;
R2)判断是否加入关键点,如果是,则在录制序列中加入关键点,然
后执行步骤R4;如果否,则执行步骤R3;
R3)判断指令是否是对模拟器的操作,如果是,则向模拟器发指令,
模拟器发出信号,然后执行步骤R4;如果否,执行步骤R4;
R4)判断录制是否结束,如果是,录制结束;如果录制没有结束,则
执行步骤R1继续录制下一个操作,循环执行上述步骤。
对图形用户界面进行操作的录制方法采用"面向控件对象的录制"和 "面向歩骤操作录制"两种方法。
"面向控件对象的录制"是由鼠标动作触发,录制鼠标的一系列动作,
如图4所示,操作过程为
Al)捕捉鼠标的点击动作;A2)判断该点击动作是否是有效的动作;
A3)如果不是有效的动作,则忽略该动作,结束录制过程;如果是有 效的动作,则执行A4;
A4)判断鼠标点击的控件ID是否改变,如果没变,则忽略该点击动 作,结束录制过程;如果控件1D改变了,则执行A5;
A5)生成与该控件对应的绝对路径,并记录该控件属性改变后的值; A6)上传绝对路径和控件属性改变后的值到计算机中的测试脚本中。 在附图4中,提到的控件ID的改变实际上是在执行鼠标操作时,鼠 标所指向的当前焦点的改变,因为焦点从一个控件转移到另一个控件上会 导致控件ID改变,只有当桩程序检测到由于鼠标点击导致焦点改变才说明 对该控件的操作已经结束,此时才会触发录制,这样可以避免录制未最终 确认的属性改变,即并不是对每一次点击都做记录,只有焦点改变时才对 原来的控件属性做记录,这是是否记录录制操作的条件。当因焦点改变而 引起的控件ID改变时记录控件的绝对路径和控件属性值。有些控件比如 "普通按钮"在被鼠标点击后产生的结果是被测试目标程序执行相应处理 函数,但控件自身属性值并没有被改变,控件只承受鼠标点击动作的行为, 这种情况认为是控件行为变化,此外因为点击后被测试目标程序会执行相 应处理函数,所以是有效点击,另外一些控件在被鼠标点击后会使属性值 发生变化。于是鼠标动作录制只记录能够改变控件行为或属性值的有效点 击,不记录鼠标的坐标改变和在无效位置的点击,即不记录没有引起界面 改变和没有引起后台数据改变的无效点击。记录鼠标动作的内容包括控件 的绝对路径和控件的属性改变后的值。
所述绝对路径是指从目标机图像用户界面的初始界面开始,到达目标 控件,途经的各个窗口和窗口上被点击的控件所形成的二元组,二元组的 形式是(Wndld, Itemld),其中Wndld是每一级窗口 Id, Itemld是该窗 口上属性被改变的控件Id,绝对路径是一个操作过程链,描述点击过程的 有序ID集合。例如, 一个操作过程的动作是点击图形初始界面的TOOLBAR 中的"主菜单",进入主菜单,再点击主菜单中的"病人管理"采单条,则 该操作过程的鼠标动作记录是
① (ID—DESKTOP, 丽一T00LBAR) (IDV一T00LBAR, IDC_T00L—B—MA丽ENU一N)
② (ID DESKTOP, IDV TOOLBAR) (IDV TOOLBAR,IDC—T00L—B—MA應NU一N)
(IDD一MAIN一MENU, IDC_MAINMENUDLG—B一PATIENT)
这是两条绝对路径,都是从初始界面记录起,路径①对应第一个点击 动作,路径②对应第二个点击动作。从路径②又可以看出,到达主菜单中 的病人管理菜单条按钮,途经了 TOOLBAR上的主菜单按钮,所以它们都是 一个从初始界面开始记录的绝对路径;如果把每一个二元组看成是操作过 程链上的一个节点,那么第一条路径只有两个个节点,第二个操作链有三 个节点,这样的操作链将作为面向控件录制的一部分数据被记录下来,同 时在录制过程中还要记录控件的属性值的变化结果,控件属性的记录不是 记录某个控件内容的改变过程,而只记录控件属性值改变后,光标离开该 控件时的控件属性值。各控件属性值处理方法如下-.
a) 普通按钮被点击录制时记下属性值改变为1,表示被点击过; 没有被点击则不记录路径和属性值;
b) 多选按钮被选中录制时记下属性值改变为1;取消选中录制时 记下属性值改变为0;
c) 单选按钮被选中录制时记下属性值改变为1;取消选中录制
时记下属性值改变为0;
d) 编辑框被填写后则记录Edit框中的字符串;
e) 下拉框记录被选中的条目的序号;
f) 微调按钮记录微调后的控件显示值。
另外,"面向控件对象的录制"还可由按键触发,对按键的操作引起
焦点的移动,焦点从一个控件转移到另一个控件上会导致控件ID改变,所
以当桩程序检测到由于按键被按下导致焦点改变时也会触发录制,但对按 键动作的录制也是只记录能够改变控件行为或属性值的有效点击,在控件
ID改变后,根据该控件生成绝对路径,并记录该控件属性改变后的值。
所述"面向步骤录制"是记录目标机键盘上被按下键的键盘码和旋 钮旋转的操作码,这些键盘码或操作码在形成脚本时被写成易于识别的指
令,例如,旋钮逆时针转程序中的操作码是0x35,在脚本中写成的易于识 别的指令为ACLK ,如果要使旋钮逆时针转3下则脚本可以写成ACLK 3, ^步骤录制作为控件对象录制的一个补充,比如表格控件比较复杂,单纯通 过面向控件对象的录制/重放方法很难实现或无法实现录制/重放,因为表 格之类的复杂控件可能包含多个子控件,往往难以确定焦点在哪一个子控件上,此外也比较难以准确记录到操作子控件而导致复杂的父控件的属性 改变,步骤录制放弃记录控件属性值变化为代价,但采用面向步骤录制来 解决使这一问题简单化,因为步骤录制只需要记录按键或旋钮的操作次数。 一个按键动作的录制过程表示如图5所示。首先,捕捉按键或旋钮的动作; 然后,判断按键或旋钮的动作是否是有效动作,如果不是有效动作,则忽 略该动作;如果是有效动作,则记录按键的键盘码或者旋钮的操作码;最 后,将按键的键盘码或者旋钮的操作码上传到计算机中的测试脚本中。
对应于目标机的脚本生成过程是在录制过程中驻留在目标机上的桩 程序将会捕获到"面向控件对象录制"或"面向步骤录制"产生的"动作、 路径、属性值"等数据,这些数据被组包,通过以太网链路,使用基于TCP/IP 的协议来传输到PC机,PC机则根据约定协议把数据包解包,然后把动作 翻译成脚本指令并同时保存路径和属性值;对应于模拟器的脚本生成过程 是录制对PC机通过串口向模拟器发送模拟器本身就可以识别的指令,同 时把这些指令以更容易阅读的脚本指令方式写到脚本文件里。
重放录制的测试用例,如图6所示,包括如下步骤首先,重放前场 景布置,选取脚本文件,系统关联相应的参数数据文件;然后,读取脚本 文件中的指令并执行,所述读取脚本文件中的指令并执行,包括如下步骤
51) 判断指令是否是对目标机的图形用户界面的操作,如果是,则重 放面向控件对象或面向步骤操作,并执行步骤S4;如果否,则执行步骤S2;
52) 判断指令是否是关键点插入操作,如果是,则收集目标机信息,
然后执行步骤S4;如果否,则执行步骤S3;
53) 判断指令是否是对模拟器的操作,如果是,则向模拟器发指令,
模拟器发出信号,然后执行步骤S4;如果否,执行步骤S4;
54) 判断动作序列是否执行结束,如果是,则继续往下执行,对重放 后的场景进行恢复,结束重放操作;如果动作序列没有执行结束,则继续 读取下一条重放动作的指令,然后执行上述步骤S1。
其中,重放前场景布置与图3中录制前场景布置相对应,是布置测试
前一些机器配置,包括通过手工完成电路连接和通过脚本指令完成的软件
初始化,比如重放/录制前执行机器初始化指令;重放/录制后场景恢复是 撤消重放/录制用的硬件和软件测试环境。重放开始时选取脚本文件; 一旦
选中脚本文件后系统会自动关联相应的参数数据文件,读取文件中的指令 并进行解释,在解释过程中遇到参数时系统会自动地在参数数据文件中寻找对应参数值来替换该参变量,替换时系统会判断当前是第几轮重放,系
统会用相应轮的数值来替换参变量,例如PRESS 3表示旋钮按3下,写成 参数形式就是PRESS $a , $a为参数;执行过程中测试程序会把前后两个
"绝对路径"换算成"相对路径"来执行,这种按照"相对路径"执行指 令的方法更接近"所录即所放"思想。现举例说明"相对路径"的概念, 假如以A.、 B、 C等表示路径中的节点,重放过程中第一步从脚本中读到的 绝对路径为"A--〉B—〉C",执行操作后从A到达C,此时这条路径就成了 光标所在的当前路径,第二步从脚本中读到的绝对路径为
"A—>B--〉C一〉D--〉E",这就是第二步要执行的目标路径,测试桩程序会 自动比较目标路径和当前路径,换算出相对路径为"D—>E",这样,被测 试程序将会在操作完第一步的基础上继续执行"D—〉E",而不会根据绝对 路径从A执行到E。
为了记录所录制的内容,本发明定义了一套简明脚本语言,脚本中使 用的关键字及其语法解释如下 CASE CASEEND
表示用例开始和结束标记,要配对使用,CASE后跟用例ID及用例标

例如CASEn 第一个用例
CASE END
n表示用例编号,"第一个用例"是用例标题 GOTO 定位目标控件
例如GOTO IDV—BIS一PV IDC—BIS—PV—B—NAME
IDD—BIS一PSD IDC一BIS一PSD—SB—BIS一LO 表示经过一系列动作后到达ID为IDC—BIS—PSD—SB—BIS—L0的控件 DATA表示值设定
例如DATA 20表示把控件的属性值设置为20
OBSERVE 设置观察点标记,为无值简单指令。
PSACTI0N 设置模拟器指令
例如设置模拟器参数模拟心跳次数60/分钟
PSACTI0NECGBPM 60bpm
LOOPL00PEND 设定过程循环及次数
例如LOOP 3GOTO 丽—NIBP—PV IDC—NIBP_PV—B一誦E DATA 1 LOOPEND
其中LOOP所在行的3表示LOOP于LOOPEND之间的过程被反复执 行的次数
REMARK 注释指令
例如REMARK这是一行注释指令。
PRESS 旋钮按下
例如PRESS 3 表示旋钮按3下. CLK 旋钮顺时针转 ACLK 旋钮逆时针转
测试程序中录制重放的界面如图7。描述如下-其中,录制过程为
(1) 按图1配置好计算机与目标机以及模拟器物理连接,运行计算机 上的测试程序,进入录制重放界面如图7 ,进入这一界面前,系统会提示 要求选择测试件所在目录和要生成的脚本名。
(2) 填写用例标题,点击"录制开始"按钮,在目标机上手工执行操 作;所有的模拟器操作通过测试程序中的模拟器软键盘执行,并在需要测 试分析或进行值比较的时候插入测试关键观察点,执行完所有操作后点"停 止录制"按钮,即可生成测试用例脚本,当然若中途想放弃录制,则可以 点"放弃录制"按钮。
(3) 录制完成后可以选择"脚本编辑"按钮打开录制的脚本,根据脚 本语法规则对录制的脚本步骤进行简单编辑,比如添加循环、更换参数、 增加测试数据,以便用于回归测试或压力测试。
其中,重放过程为-
(1) 按图1配置好测试场景即硬件环境和软件测试条件,配置完成后 打开录制重放界面如图7所示,系统会以脚本形式列出保存的所有的用例 标题,根据标题,选择要执行的测试并指定执行次数,系统还会提示执行 结果的保存选项,即选择保存所有测试过程中收集到的测试数据或者仅保 留结果,点"重放"按钮开始执行。
(2) 系统自动重放测试,测试过程中对于每个用例逐个比较测试关键 点,全部通过则记录为"PASS",否则"FAIL"。(3)执行结束后系统会提示,并自动生成结果文件,所有"FAIL"的 用例被用红色大字体标出;并根据执行的脚本文件和执行结束时间自动命名保存。实现上述方法的系统包括录制模块和重放模块;所述录制模块包括 用于录制操作人员的操作步骤、被设置参数的数据、以及目标机运行的结 果的录制单元,用于将录制的数据通过通讯端口传输至计算机的传输单元, 用于运行计算机上的测试程序的程序运行单元,用于接受测试程序指令且 将录制的数据保存为具有关键字的脚本文件的脚本文件生成单元,用于修 改脚本文件中的所需的数值为参变量的数值编辑单元,用于存放参变量对 应数据的数据库单元;所述重放模块包括用于运行测试程序、调用脚本文件的文件调用单元,用于接收脚本文件、并读入参数数据库中的对应数 据来替换参变量,并解析脚本文件、将脚本文件输入目标机的数据解析和 执行单元,位于目标机中,用于解析并执行脚本中的指令的桩程序解析单 元,用于接收桩程序解析单元运行的结果、并将运行结果返回计算机进行 分析,并输出测试结果的处理单元。所述录制单元包括面向控件对象录制单元或面向步骤录制单元。所述面向控件对象录制单元包括用于录制鼠标动作的第一捕捉模 块,所述第一捕捉模块录制鼠标的一系列动作,其中对鼠标动作的录制只 记录能够改变控件行为或属性值的有效点击,包括控件的绝对路径和控件 的属性;用于判断鼠标点击动作是否是有效动作的第一判断模块;用于在 第一判断模块判断鼠标点击动作是有效动作后判断鼠标点击的控件ID是 否改变的第二判断模块;用于在第二判断模块判断鼠标点击的控件ID改变 时,生成与该控件对应的绝对路径、记录控件属性改变后的值的第一记录 模块;和用于上传绝对路径和控件属性改变后的值到计算机中的测试脚本 中的第一传输模块。所述面向步骤录制模块包括用于捕捉按键或旋钮动作的第二捕捉模 块;用于根据第二捕捉模块捕捉的按键或旋钮动作判断按键或旋钮的动作 是否是有效动作的第三判断模块;用于在第三判断模块判断按键或旋钮的 动作有效后记录按键的键盘码或者旋钮的操作码的第二记录模块;用于上 传按键的键盘码或旋钮的操作码到计算机中的测试脚本中的第二传输模 块。所述重放模块还包括用于根据选取的脚本文件关联相应的参数数据文件的关联模块;和用于读取脚本文件中的指令并执行的执行模块,所述 执行模块用于在执行过程中把前后两个绝对路径换算为相对路径。所述执行模块包括用于判断指令是否是对目标机的图形用户界面进 行操作的第四判断模块;用于在第四判断模块判断指令是对目标机的图形 用户界面进行操作时重放面向控件对象或面向步骤操作的重放模块 ,用于 在第四判断模块判断指令不是对目标机的图形用户界面进行操作时判断指 令是否是关键点插入操作的第五判断模块;用于在第五判断模块判断指令 是关键点插入操作时收集目标机上信息的信息采集模块;用于在第五判断 模块判断指令不是关键点插入操作时判断指令是否是对模拟器的操作的第 六判断模块;用于向模拟器发送指令的发送模块;用于在重放模块、信息 采集模块和发送模块中的任何一个执行完毕后判断动作序列是否执行结束 的第七判断模块,所述第七判断模块用于在判断动作序列执行结束后,则 跳出循环继续往下执行,在动作序列没有执行结束时,则继续读取下一条 重放动作的指令,控制第四判断模块对指令进行判断。以上是结合具体实施方式
对本发明进行的详细描述,本发明是用于嵌 入式软件测试的录制重放式测试方法,不仅可以应用在医疗监护设备中进 行软件测试,也可用于其他行业类似的嵌入设备中进行软件测试;本发明 中的录制方法,还可以在某些需要跟踪和记录用户操作并保存日志的嵌入 式产品中使用。因此,对于本发明所属技术领域的普通技术人员来说,在 不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视 为属于本发明的保护范围。
权利要求
1. 一种嵌入式软件的测试方法,其特征在于,包括以下步骤1)录制对目标机的操作,生成测试脚本;2)重放所录制的脚本;其中,所述步骤1包括如下步骤11)利用目标机上的桩程序录制操作人员的操作步骤、被设置参数的数据、以及目标机运行的结果,录制的对象包括对目标机的图形用户界面的操作、模拟器操作和关键点插入操作的录制;12)将录制的数据通过通讯端口传输至计算机;13)运行计算机上的测试程序;14)测试程序接收录制的数据,并将录制的数据保存为具有关键字的脚本文件;15)修改脚本中的所需要的数值部分为参变量;16)在计算机上建立数据库文件,存放参变量对应的数据;其中,所述步骤2包括如下步骤21)运行计算机上的测试程序;22)测试程序调用脚本文件、并读入参数数据库中的对应数据来替换脚本文件中的参变量;23)解析脚本文件并输入目标机;24)目标机中的桩程序解析并执行脚本中的指令;25)将运行结果返回计算机进行分析,并输出测试结果。
2. 如权利要求1所述的嵌入式软件的测试方法,其特征在于所述步骤 11中对目标机的图形用户界面操作的录制方法采用"面向控件对象的录 第U"或"面向步骤操作录制"。
3. 如权利要求2所述的嵌入式软件的测试方法,其特征在于所述"面 向控件对象的录制"是由鼠标动作触发,录制鼠标的一系列动作,其中对 鼠标动作的录制只记录能够改变控件行为或属性值的有效点击,包括控件 的绝对路径和控件的属性,包括如下步骤Al)捕捉鼠标的点击动作;A2)判断该点击动作是否是有效的动作,如果不是有效的动作,则忽 略该动作;如果是有效的动作,则执行步骤A3;A3)判断鼠标点击的控件ID是否改变,如果没变,则忽略该点击动 作;如果控件ID改变了,则执行步骤A4;A4).生成与该控件对应的绝对路径,并记录控件属性改变后的值; A5)上传绝对路径和控件属性改变后的值到计算机中的测试脚本中。
4. 如权利要求3所述的嵌入式软件的测试方法,其特征在于所述绝对 路径是指从目标机图像用户界面的初始界面开始,到达目标控件,途经的 各个窗口和窗口上被点击的控件所形成的二元组,所述二元组的形式是 (Wndld, Itemld),其中Wndld是每一级窗口 Id, Itemld是该窗口上接 收有效点击后属性或行为被改变的控件Id。
5. 如权利要求2所述的嵌入式软件的测试方法,其特征在于所述"面 向步骤录制"是记录目标机的键盘上被按下的键盘码和旋钮旋转的操作 码,录制按键或旋钮的操作包括以下步骤Bl)捕捉按键或旋钮的动作;B2)判断按键或旋钮的动作是否是有效动作,如果不是有效动作,则 忽略该动作;如果是有效动作,则执行步骤B3; B3)记录按键的键盘码或者旋钮的操作码;B4)上传按键的键盘码或旋钮的操作码到计算机中的测试脚本中。
6. 如权利要求1至5中任一项所述的嵌入式软件的测试方法,其特征在 于所述步骤2中还包括如下步骤Cl)选取脚本文件,系统关联相应的参数数据文件;C2)读取脚本文件中的指令并执行,执行过程中测试程序把前后两个 绝对路径换算为相对路径。
7. 如权利要求6所述的嵌入式软件的测试方法,其特征在于所述步骤 C2是一个循环过程,包括如下步骤51) 判断指令是否是对目标机的图形用户界面的操作,如果是,则重放面向控件对象或面向步骤操作,并执行步骤S4;如果否,则执行步骤S2;52) 判断指令是否是关键点插入操作,如果是,则收集目标机信息,然后执行步骤S4;如果否,则执行步骤S3;53) 判断指令是否是对模拟器的操作,如果是,则向模拟器发指令,模拟器发出信号,然后执行步骤S4;如果否,执行步骤S4;54) 判断动作序列是否执行结束,如果是,则跳出循环继续往下执行;如果动作序列没有执行结束,则继续读取下一条重放动作的指令,执行上述步骤S1。
8. —种嵌入式软件的测试系统,其特征在于包括录制模块和重放模块; 所述录制模块包括用于录制操作人员的操作步骤、被设置参数的数据、以及目标机运行 的结果的录制单元;用于将录制的数据通过通讯端口传输至计算机的传输单元 , 用于运行计算机上的测试程序的程序运行单元;用于接受测试程序指令且将录制的数据保存为具有关键字的脚本文件 的脚本文件生成单元;用于修改脚本文件中的所需的数值为参变量的数值编辑单元;用于存放参变量对应数据的数据库单元;所述重放模块包括用于运行测试程序、调用脚本文件的文件调用单元; 用于接收脚本文件、并读入参数数据库中的对应数据来替换参变量,并解析脚本文件、将脚本文件输入目标机的数据解析和执行单元;位于目标机中,用于解析并执行脚本中的指令的桩程序解析单元; 用于接收桩程序解析单元运行的结果、并将运行结果返回计算机进行分析,并输出测试结果的处理单元。
9. 如权利要求8所述的嵌入式软件测试系统,其特征在于所述录制单 元包括面向控件对象录制单元或面向步骤录制单元。
10. 如权利要求9所述的嵌入式软件测试系统,其特征在于所述面向控 件对象录制单元包括用于录制鼠标动作的第一捕捉模块,所述第一捕捉模块录制鼠标的一 系列动作,其中对鼠标动作的录制只记录能够改变控件行为或属性值的有 效点击,包括控件的绝对路径和控件的属性;用于判断鼠标点击动作是否是有效动作的第一判断模块;用于在第一判断模块判断鼠标点击动作是有效动作后判断鼠标点击 的控件ID是否改变的第二判断模块;用于在第二判断模块判断鼠标点击的控件ID改变时,生成与该控件 对应的绝对路径、记录控件属性改变后的值的第一记录模块;和用于上传控件ID和控件属性改变后的值到计算机中的测试脚本中 的第一传输模块。
11.如权利要求10所述的嵌入式软件的测试系统,其特征在于所述绝对 路径是指从目标机图像用户界面的初始界面开始,到达目标控件,途经的各个窗口和窗口上被点击的控件所形成的二元组,所述二元组的形式是(Wndld, Itemld),其中Wndld是每一级窗口 Id, Itemld是该窗口上接 收有效点击后属性或行为被改变的控件Id。
12. 如权利要求9所述的嵌入式软件的测试系统,其特征在于所述面向 步骤录制模块包括-用于捕捉按键或旋钮动作的第二捕捉模块;用于根据第二捕捉模块捕捉的按键或旋钮动作判断按键或旋钮的动 作是否是有效动作的第三判断模块;用于在第三判断模块判断按键或旋钮的动作有效后记录按键的键盘 码或者旋钮的操作码的第二记录模块;用于上传按键的键盘码或旋钮的操作码到计算机中的测试脚本中的 第二传输模块。
13. 如权利要求8所述的嵌入式软件的测试系统,其特征在于所述重放 模块还包括用于根据选取的脚本文件关联相应的参数数据文件的关联模 块;和用于读取脚本文件中的指令并执行的执行模块,所述执行模块用于 在执行过程中把前后两个绝对路径换算为相对路径。
14. 如权利要求13所述的嵌入式软件的测试系统,其特征在于所述执行 模块包括用于判断指令是否是对目标机的图形用户界面进行操作的第四判断 模块;用于在第四判断模块判断指令是对目标机的图形用户界面进行操作时重放面向控件对象或面向步骤操作的重放模块;用于在第四判断模块判断指令不是对目标机的图形用户界面进行操 作时判断指令是否是关键点插入操作的第五判断模块;用于在第五判断模块判断指令是关键点插入操作时收集目标机上信 息的信息采集模块;用于在第五判断模块判断指令不是关键点插入操作时判断指令是否 是对模拟器的操作的第六判断模块;用于向模拟器发送指令的发送模块;用于在重放模块、信息采集模块和发送模块中的任何一个执行完毕后 判断动作序列是否执行结束的第七判断模块,所述第七判断模块用于在判 断动作序列执行结束后,则跳出循环继续往下执行,在动作序列没有执行 结束时,则继续读取下一条重放动作的指令,控制第四判断模块对指令进 行判断。
全文摘要
本发明公开了一种嵌入式软件的测试方法,首先录制对目标机的操作,生成测试脚本;然后重放录制的脚本。在目标机上编写桩程序,用桩程序录制操作人员的操作步骤、被设置参数的数据和运行结果;传输至计算机;测试程序收到录制的数据后保存为脚本;修改脚本中的数值部分为参变量;在计算机上建立数据库文件存放参变量对应的数据;运行测试程序;测试程序调用脚本、同时读入参数数据库中的对应数据来替换参变量;解析脚本并输入目标机;目标机中的桩程序解析和执行脚本中的指令;将运行结果返回计算机进行分析并输出。本发明通过对目标机的操作进行录制生成自动化测试用例脚本,减少了编写自动化测试用例的工作量,提高了测试效率。
文档编号G06F11/36GK101241466SQ20071007329
公开日2008年8月13日 申请日期2007年2月8日 优先权日2007年2月8日
发明者徐春阳, 杨文亮 申请人:深圳迈瑞生物医疗电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1