著录项信息
专利名称 | 一种软件测试的方法及装置 |
申请号 | CN200810110935.X | 申请日期 | 2008-06-17 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2009-01-07 | 公开/公告号 | CN101339534 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/36 | IPC分类号 | G;0;6;F;1;1;/;3;6查看分类表>
|
申请人 | 金蝶软件(中国)有限公司 | 申请人地址 | 广东省深圳市南山区深南大道市高新技术产业园区W1-B4
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 金蝶软件(中国)有限公司 | 当前权利人 | 金蝶软件(中国)有限公司 |
发明人 | 黄尔谦;关荣华;邓润祥;肖钢;陈洪 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 逯长明 |
摘要
本发明提供了一种软件测试的方法及装置,所述方法包括:建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;然后按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例;最后将测试用例转换为自动化测试脚本,解析执行所述自动化测试脚本,在被测软件上完成相应操作。运用本发明的方法,在运行测试脚本时可以从所述界面元素库和所述动作元素库中调用脚本语言,不仅使软件测试的效率大大提高,节约了软件开发的大量资源,进一步的,也可以提高脚本语言的共享性、可维护性和可管理性。
1.一种软件测试的方法,其特征在于,包括:
建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;
按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素,生成测试用例;
将所述测试用例转换为自动化测试脚本,并解析执行所述自动化测试脚本,在被测软件上完成相应操作。
2.如权利要求1所述的方法,其特征在于,所述测试逻辑包括多条测试子逻辑,所述生成测试用例包括:
根据所述界面元素和动作元素生成测试用例模板;
在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合所述测试输入数据和预期输出结果形成测试用例。
3.如权利要求2所述的方法,其特征在于,所述测试用例模板以二维输入表格的形式通过界面展示。
4.如权利要求1、2或3所述的方法,其特征在于,所述界面元素和动作元素为被测软件一窗口中的界面元素和动作元素。
5.如权利要求2所述的方法,其特征在于,所述将测试用例转换为测试脚本包括:
读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
将所述界面元素名称和标识组合成映射文件;
将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
6.一种软件测试的装置,其特征在于,包括:
建立模块,用于建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;
提取模块,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;
生成测试用例模块,用于依据所述界面元素和动作元素生成测试用例;
转换测试脚本模块,用于将所述测试用例转换为自动化测试脚本;
解析执行模块,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。
7.如权利要求6所述的装置,其特征在于,所述生成测试用例模块包括:
生成模板子模块,用于根据所述界面元素和动作元素生成测试用例模板;
定义子模块,用于在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合子模块,用于组合所述测试输入数据和预期输出结果形成测试用例。
8.如权利要求7所述的装置,其特征在于,所述转换测试脚本模块包括:
读取子模块,用于读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
匹配子模块,用于将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
生成映射文件子模块,用于将所述界面元素名称和标识组合成映射文件;
生成中间脚本子模块,用于将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
生成测试脚本子模块,用于通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
一种软件测试的方法及装置\n技术领域\n[0001] 本发明涉及测试领域,特别是涉及一种软件测试的方法及装置。\n背景技术\n[0002] 软件测试是软件开发过程的重要组成部分,是在软件在投入运行前,对软件的需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。可以看出,软件测试是为了发现软件中存在的错误而执行测试脚本的过程。软件测试的主要内容是验证和确认,验证是保证软件可以执行预期的测试流程,确认是为了证实在一个给定的外部环境中软件逻辑的正确性,保证软件可以以正确的方式执行测试脚本。\n[0003] 现有技术在对软件进行测试的过程中,测试脚本通常根据测试用例由测试工具(例如Robot或WinRunner)进行录制,录制过程为:启动功能测试工具,选择录制功能,依照测试用例逐步地操作被测试的软件,测试工具可以以脚本语言的形式记录操作过程。当录制完成之后,软件开发人员可以对录制的脚本进行适当修改,如增加上下文验证、思考时间等,然后执行所述测试脚本,可以在被测软件上模拟已经记录的键盘或鼠标操作。\n[0004] 但是该软件测试的方法也存在不可避免的缺点,即是在录制测试脚本时需要软件开发人员预先操作相应的被测软件,并在录制测试脚本后,手工进行相应的修改和编辑才能执行所述测试脚本,以完成软件测试的任务,这种手工编写测试脚本对软件进行测试的方法,使得软件测试的效率极其低下。\n[0005] 总之,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够提出一种软件测试的方法,用以解决在软件测试过程中需要手工编写测试脚本使得软件测试效率低下的问题。\n发明内容\n[0006] 本发明所要解决的技术问题是提供一种软件测试的方法,用以提高软件测试效率。\n[0007] 本发明的另一个目的是将上述构思应用于具体的应用环境中,提供[0008] 一种软件测试的装置,从而保证该方法的实现和应用。\n[0009] 为解决上述技术问题,本发明实施例提供了一种软件测试方法,包括:\n[0010] 建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;\n[0011] 按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素,生成测试用例;\n[0012] 将所述测试用例转换为自动化测试脚本,并解析执行所述自动化测试脚本,在被测软件上完成相应操作。\n[0013] 优选的,所述测试逻辑包括多条测试子逻辑,所述生成测试用例包括:\n[0014] 根据所述界面元素和动作元素生成测试用例模板;\n[0015] 在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0016] 组合所述测试输入数据和预期输出结果形成测试用例。\n[0017] 优选的,所述测试用例模板以二维输入表格的形式通过界面展示。\n[0018] 优选的,所述界面元素和动作元素为被测软件一窗口中的界面元素和动作元素。\n[0019] 优选的,所述将测试用例转换为测试脚本包括:\n[0020] 读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0021] 将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;\n[0022] 将所述界面元素名称和标识组合成映射文件;\n[0023] 将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;\n[0024] 通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。\n[0025] 本发明实施例还提供了一种软件测试装置,包括:\n[0026] 建立模块,用于建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;\n[0027] 提取模块,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;\n[0028] 生成测试用例模块,用于依据所述界面元素和动作元素生成测试用例;\n[0029] 转换测试脚本模块,用于将所述测试用例转换为自动化测试脚本;\n[0030] 解析执行模块,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。\n[0031] 优选的,所述生成测试用例模块包括:\n[0032] 生成模板子模块,用于根据所述界面元素和动作元素生成测试用例模板;\n[0033] 定义子模块,用于在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0034] 组合子模块,用于组合所述测试输入数据和预期输出结果形成测试用例。\n[0035] 优选的,所述转换测试脚本模块包括:\n[0036] 读取子模块,用于读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0037] 匹配子模块,用于将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;\n[0038] 生成映射文件子模块,用于将所述界面元素名称和标识组合成映射文件;\n[0039] 生成中间脚本子模块,用于将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;\n[0040] 生成测试脚本子模块,用于通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。\n[0041] 本发明通过建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,并按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例,然后将测试用例转换为自动化测试脚本,最后解析执行所述自动化测试脚本,在被测软件上完成相应操作,使得软件开发人员不需要手工编辑测试脚本,可以在被测软件上模拟键盘输入、鼠标点击等实际操作,大大提高了软件的测试效率,也节约了软件开发的大量资源。\n附图说明\n[0042] 图1是本发明的一种软件测试的方法实施例1的流程图;\n[0043] 图2是本发明的一种软件测试的方法实施例2的流程图;\n[0044] 图3是本发明的一个具体例子中一个界面元素库的示意图;\n[0045] 图4(a)和图4(b)是本发明的一个具体例子中动作元素库的示意图;\n[0046] 图5是本发明的一个具体例子中一个测试用例模板的示意图;\n[0047] 图6是本发明的一个具体例子中一个测试用例的示意图;\n[0048] 图7是本发明的一个具体例子中一个映射文件的示意图;\n[0049] 图8是本发明的一个具体例子中将测试用例转换为中间脚本时的界面示意图;\n[0050] 图9是本发明的一个具体例子中一个中间脚本的示意图;\n[0051] 图10是本发明的一个具体例子中执行中间脚本的界面示意图;\n[0052] 图11是本发明的一个具体例子中自动化测试脚本的示意图;\n[0053] 图12是本发明的一种软件测试的装置实施例的结构框图;\n[0054] 图13是本发明的一种软件测试的装置优选实施例的结构框图;\n[0055] 图14是应用图13所示的优选实施例进行软件测试的流程图。\n具体实施方式\n[0056] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。\n[0057] 本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。\n[0058] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。\n[0059] 本发明实施例的核心构思之一在于,建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;并按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例;然后将测试用例转换为自动化测试脚本,最后解析执行所述测试脚本,在被测软件上完成相应操作;本发明采用预先建立界面元素库和动作元素库的方法,使得运用本发明的方法在生成测试脚本时可以直接调用所述界面元素库和动作元素库中的脚本语言,不再需要软件开发人员手工编写测试脚本,大大提高了软件测试中的软件测试效率,还可以进一步提高测试脚本的通用性。\n[0060] 参考图1,示出了本发明的一种软件测试的方法实施例1的流程图,可以包括以下步骤:\n[0061] 步骤101:建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;\n[0062] 在实际应用中,对软件进行测试之前,软件开发人员首先建立所述界面元素库,所述界面元素包括所述界面元素的名称、类型和标识,在本实施例中,通过建立所述界面元素库可以避免相同的界面元素在不同的测试用例中重复录制,可以提高界面元素的重用性;\n需要说明的是,所述界面元素库以被测软件的一个窗口为单位保存所述窗口上的界面元素;\n[0063] 同时,软件开发人员还需要建立动作元素库,用于存储操作所述界面元素的动作参数,所属动作参数包括对界面元素操作的动作名称,以及所述动作名词对应的动作执行脚本,还可以包括所述动作名称的类型,从而节省了大量录制脚本的工作;\n[0064] 步骤102:按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例;\n[0065] 在实际中,本步骤的实现可以为,从所述界面元素库和动作元素库中,根据测试执行的具体步骤来提取相应的界面元素和动作元素,根据所述相应的界面元素和动作元素生成测试用例;在实际应用中,软件测试过程中的测试用例可以由测试输入数据、预期输出结果以及相应的测试执行步骤三部分组成;\n[0066] 步骤103:将测试用例转换为自动化测试脚本,解析执行所述自动化测试脚本,在被测软件上完成相应操作;\n[0067] 其中,所述自动化测试脚本是根据测试用例生成的可以用于对软件进行测试的脚本程序,利用这些脚本程序可以执行对软件的测试流程,可以在被测软件上模拟键盘输入、鼠标点击等实际操作。\n[0068] 可以理解的是,利用本发明实施例1的方法可以通过建立所述界面元素库以及动作元素库节省测试脚本的编写时间,生成的测试脚本可以由测试工具解析并执行,无需软件开发人员手工修改或者编辑,减少了编程过程中出现的人为错误,大大提高了软件测试过程中的软件测试效率;此外,所述动作元素库中的动作执行脚本针对具体的动作而不是测试用例,大大提高了动作执行脚本的共享性,同时提高了脚本的可维护性和可管理性;再者,通过建立所述界面元素库,使得被测软件的界面元素得到充分共享和有效管理,节省了抓取界面元素的大量开发成本。\n[0069] 参考图2,示出了本发明的一种软件测试的方法实施例2的流程图,可以包括以下步骤:\n[0070] 步骤201:建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;\n[0071] 在实际应用中,对软件进行测试之前,软件开发人员首先建立所述界面元素库,所述界面元素包括所述界面元素的名称、类型和标识,所属界面元素的名称在本发明实施例中为即控件名称,所述标识为工具语言的定义,为描述界面元素名称的脚本语言;\n[0072] 需要说明的是,本领域技术人员可以很容易的知悉,所述界面元素的名称还可以为其它字段的名称,因此本发明对界面元素的名称不做限定;\n[0073] 同时,软件开发人员还需要建立动作元素库,用于存储操作所述界面元素的动作参数,所属动作参数包括对界面元素操作的动作名称,例如:点击、双击、输入、选择等,以及所述动作名词对应的动作执行脚本,还可以包括所述动作名称的类型;\n[0074] 步骤202:按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素;\n[0075] 需要说明的是,所述测试逻辑,可以理解为测试流程,包括多条测试子逻辑,每条测试子逻辑可以理解为针对被测软件某一个窗口的一次测试子流程,根据所述多条子逻辑可以从所述界面元素库和动作元素库中提取相应的界面元素和动作元素;\n[0076] 优选的,所述界面元素和动作元素为被测软件一窗口中的界面元素和动作元素;\n[0077] 步骤203:根据所述界面元素和动作元素生成测试用例模板;\n[0078] 将所述相应的界面元素和动作名称组合成测试用例模板,优选的,所述测试用例模板以二维输入表格的形式通过界面展示;\n[0079] 步骤204:在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0080] 在测试用例模板中的二维输入表格处,可以定义各个测试子逻辑所要求的测试输入数据和预期输出结果,所述定义测试输入数据的过程可以理解为对界面元素和动作元素的赋值过程,通过赋值可以使得定义的测试输入数据内容与所述界面元素库和动作元素库相匹配;\n[0081] 步骤205:组合所述测试输入数据和预期输出结果形成测试用例;\n[0082] 各个测试子逻辑定义完成后,对所述定义的测试输入数据和预期输出结果进行组合,形成测试用例;\n[0083] 步骤206:将测试用例转换为测试脚本;\n[0084] 优选的,本步骤的实现方案可以包括以下子步骤:\n[0085] 子步骤2061:读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0086] 测试用例设计完成后,按行读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0087] 子步骤2062:将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;\n[0088] 将读取到的界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得与所述界面元素名称相应的界面元素标识,以及与所述动作名称相应的动作执行脚本;\n[0089] 子步骤2063:将所述界面元素名称和标识组合成映射文件;\n[0090] 将所述界面元素和标识组合成映射文件,所述映射文件为记录界面元素的文本文件,可以记录界面元素的标识和类型,所述映射文件内容的格式是已经进行了规范和定义的;所述映射文件可以为Map文件,本领域普通技术人员可以很容易的知悉,所述界面元素和相应的脚本语言对应关系保存在何处,以及如何保存都不影响本发明实施例的实现,因此本发明并不对此作出限定;\n[0091] 子步骤2064:将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;\n[0092] 将界面元素名称、动作执行脚本、测试输入数据、预期输出结果组合生成中间脚本;所述中间脚本为已经规范的一种脚本语言,可以看出,该脚本语言为描述性语言,已明确脚本语言的语法和构成短语,可以在对被测软件进行测试的过程中直接运行;\n[0093] 子步骤2065:通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本;\n[0094] 运行所述中间脚本,结合所述映射文件将所述中间脚本中的界面元素进行置换,动态得到自动化测试脚本;\n[0095] 步骤207:解析执行所述自动化测试脚本,在被测软件上完成相应操作;\n[0096] 解析执行所述自动化测试脚本,在被测软件上模拟键盘输入和鼠标点击等实际操作,完成所述软件测试的过程。\n[0097] 以下通过一个具体的例子进一步说明本发明的软件测试过程。\n[0098] 在实际应用中,对软件进行测试之前,软件开发人员首先建立所述界面元素库,所述界面元素包括所述界面元素的名称、类型和标识,所属界面元素的名称在本发明实施例中为即控件名称,所述标识为工具语言的定义,为描述界面元素名称的脚本语言;\n[0099] S1:建立界面元素库;\n[0100] 参考图3,示出了本发明的一个具体例子中一个界面元素库的示意图;其中,所述控件名称可以为:部门代码、成本对象代码、工时类型等,所述标识为控件名称在工具脚本中的定义,例如图3中所示的“name=txtEdit(2)”等,以及所述控件名称的类型,如所述部门代码的类型为“KDText”;\n[0101] S2:建立动作元素库;\n[0102] 同时,软件开发人员还需要建立动作元素库,用于存储操作所述界面元素的动作参数,所属动作参数包括对界面元素操作的动作名称,参考图4,示出了本发明的一个具体例子中的动作元素库的示意图;所述动作元素名称为图4中所示的“动作词”,例如,“T新增”、“T保存”等,对应的动作执行脚本(即是图中所示的“脚本”)为“T,@formname,@*\nformname,CLICK,‘Coords=27-23’”,类型为default;\n[0103] S3:按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,根据所述界面元素和动作元素生成测试用例模板;\n[0104] 参考图5,示出了根据图3和图4所示的界面元素库和动作元素库生成的一个测试用例模板的示意图,所述测试用例模板可以以二维输入表格的形式展示;\n[0105] S4:在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0106] 软件开发人员可以在二维输入表格中分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果,即是给所述界面元素和动作元素赋值,例如,图中,给控件名称为“部门代码”的值定义为12,“工时类型”为“机台工时”等,即是分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0107] S5:组合所述测试输入数据和预期输出结果形成测试用例;\n[0108] 参考图6,示出了本发明的一种软件测试的方法中一个测试用例的示意图,可以理解的是,测试子逻辑所对应为图中所示的测试组件,多个测试组件组成了图6所示的测试用例;\n[0109] S6:读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0110] S7:将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;\n[0111] S8:将所述界面元素名称和标识组合成映射文件;\n[0112] 参考图7,示出了保存所述界面元素和相应的脚本语言对应关系的映射文件的示意图,所述映射文件的名称为:制造测试组\1.01.日成本模块\B01.实际工时录入.Map;\n可以理解的是,映射文件可以为Map文件;\n[0113] S9:将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;\n[0114] 测试用例定义完成之后,可以根据所述测试用例生成中间脚本,上述步骤S6至S9为生成中间脚本的过程;参考图8,示出了将图6所示的测试用例转换为中间脚本时的界面示意图;同时参考图9,示出了本发明的一个具体例子中一个中间脚本的示意图,所述中间脚本的名称为:制造测试组\1.01.日成本模块\B01.实际工时录入.SDD;\n[0115] S10:按行读取并执行所述中间脚本;\n[0116] 参考图10,示出了执行所述中间脚本时的界面示意图,例如,读取到中间脚本中的数据为:\n[0117] T frmEdit ComDo CLICK\n[0118] T frmEdit KDSel SelectPartialMatch一般耗用用途\n[0119] S11:将读取到的frmEdit、ComDo、KDSel分别在界面元素库中进行匹配,可以分别得到frmEdit、ComDo、KDSel在界面元素中的标识:\n[0120] frmEdit=Type=Window;Name=frmEdit\n[0121] KDSel=Type=ComboListBox;ObjectIndex=0\n[0122] ComDo=Type=ComboBox;Name=ComDo\n[0123] 需要说明的是,在执行所述自动化测试脚本的过程中,因为动作名称已经定义,所以可以将动作名称——SelectPartialMatch和CLICK分别转换为:Click;\n[0124] S12:执行中间脚本,将读取到的界面元素名称和动作名称,转换为可以模拟键盘输入、鼠标点击的自动化测试脚本:\n[0125] 例如:Window SetContext,“Name=frmEdit”,“”\n[0126] ComboBox Click,“Name=ComDo”,“”\n[0127] ComboListBox Click,“ObjectIndex=0”,“Text=一般耗用”‘用途’[0128] 参考图11,示出了本发明的一个具体例子中生成的所述测试脚本的示意图;\n[0129] S13:执行所述自动化测试脚本,在被测软件上完成键盘输入和鼠标点击等实际操作。\n[0130] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。\n[0131] 参考图12,示出了本发明的一种软件测试的装置实施例的结构框图,可以包括以下模块:\n[0132] 建立模块1201,用于建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;\n[0133] 提取模块1202,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;\n[0134] 生成测试用例模块1203,用于依据所述界面元素和动作元素生成测试用例;\n[0135] 转换测试脚本模块1204,用于将所述测试用例转换为自动化测试脚本;\n[0136] 解析执行模块1205,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。\n[0137] 在本实施例中,所述生成测试用例模块在生成测试用例时,需要从所述建立模块中提取相应的界面元素和动作元素,再将所述相应的界面元素和动作元素组合生成测试用例模板,软件开发人员在所述测试用例模板上设计测试用例,并将测试用例转换为测试脚本,所述解析执行模块执行所述测试脚本,可以在被测软件上模拟键盘输入、鼠标点击等实际操作。\n[0138] 参考图13,示出了本发明的一种软件测试的装置优选实施例的结构框图,可以包括以下模块:\n[0139] 建立模块1301,用于建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;\n[0140] 提取模块1302,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;\n[0141] 生成测试用例模块1303,用于依据所述界面元素和动作元素生成测试用例;\n[0142] 生成模板子模块13031,用于根据所述界面元素和动作元素生成测试用例模板;\n[0143] 定义子模块13032,用于在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0144] 组合子模块13033,用于组合所述测试子逻辑形成测试用例。\n[0145] 优选的,所述界面元素包括界面元素的名称、类型和标识。\n[0146] 优选的,所述界面元素为控件,所述界面元素的名称为控件名称,所述界面元素的标识为所述控件在工具语言中的定义。\n[0147] 转换测试脚本模块1304,用于将所述测试用例转换为自动化测试脚本;\n[0148] 读取子模块13041,用于读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0149] 匹配子模块13042,用于将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;\n[0150] 生成映射文件子模块13043,用于将所述界面元素名称和标识组合成映射文件;\n[0151] 生成中间脚本子模块13044,用于将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;\n[0152] 生成测试脚本子模块13045,用于通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。\n[0153] 解析执行模块1305,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。\n[0154] 参考图14,示出了应用图13所示的优选实施例进行软件测试的流程图,可以包括以下步骤:\n[0155] 步骤1401:建立模块建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;\n[0156] 步骤1402:提取模块按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;\n[0157] 步骤1403:生成模板子模块根据所述界面元素和动作元素生成测试用例模板;\n[0158] 步骤1404:定义子模块在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;\n[0159] 步骤1405:组合子模块组合所述测试子逻辑形成测试用例;\n[0160] 步骤1406:读取子模块读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;\n[0161] 步骤1407:匹配子模块将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;\n[0162] 步骤1408:生成映射文件子模块将所述界面元素名称和标识组合成映射文件;\n[0163] 步骤1409:生成中间脚本子模块将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;\n[0164] 步骤14010:生成测试脚本子模块通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本;\n[0165] 步骤14011:解析执行模块解析执行所述自动化测试脚本,在被测软件上完成相应操作。\n[0166] 对于装置实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0167] 以上对本发明所提供的一种软件测试的方法及软件测试的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
法律信息
- 2010-10-13
- 2009-02-25
- 2009-01-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |