CN101339534B - 一种软件测试的方法及装置 - Google Patents

一种软件测试的方法及装置 Download PDF

Info

Publication number
CN101339534B
CN101339534B CN200810110935XA CN200810110935A CN101339534B CN 101339534 B CN101339534 B CN 101339534B CN 200810110935X A CN200810110935X A CN 200810110935XA CN 200810110935 A CN200810110935 A CN 200810110935A CN 101339534 B CN101339534 B CN 101339534B
Authority
CN
China
Prior art keywords
interface element
test
action
script
storehouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200810110935XA
Other languages
English (en)
Other versions
CN101339534A (zh
Inventor
黄尔谦
关荣华
邓润祥
肖钢
陈洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN200810110935XA priority Critical patent/CN101339534B/zh
Publication of CN101339534A publication Critical patent/CN101339534A/zh
Application granted granted Critical
Publication of CN101339534B publication Critical patent/CN101339534B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种软件测试的方法及装置,所述方法包括:建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;然后按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例;最后将测试用例转换为自动化测试脚本,解析执行所述自动化测试脚本,在被测软件上完成相应操作。运用本发明的方法,在运行测试脚本时可以从所述界面元素库和所述动作元素库中调用脚本语言,不仅使软件测试的效率大大提高,节约了软件开发的大量资源,进一步的,也可以提高脚本语言的共享性、可维护性和可管理性。

Description

一种软件测试的方法及装置
技术领域
本发明涉及测试领域,特别是涉及一种软件测试的方法及装置。
背景技术
软件测试是软件开发过程的重要组成部分,是在软件在投入运行前,对软件的需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。可以看出,软件测试是为了发现软件中存在的错误而执行测试脚本的过程。软件测试的主要内容是验证和确认,验证是保证软件可以执行预期的测试流程,确认是为了证实在一个给定的外部环境中软件逻辑的正确性,保证软件可以以正确的方式执行测试脚本。
现有技术在对软件进行测试的过程中,测试脚本通常根据测试用例由测试工具(例如Robot或WinRunner)进行录制,录制过程为:启动功能测试工具,选择录制功能,依照测试用例逐步地操作被测试的软件,测试工具可以以脚本语言的形式记录操作过程。当录制完成之后,软件开发人员可以对录制的脚本进行适当修改,如增加上下文验证、思考时间等,然后执行所述测试脚本,可以在被测软件上模拟已经记录的键盘或鼠标操作。
但是该软件测试的方法也存在不可避免的缺点,即是在录制测试脚本时需要软件开发人员预先操作相应的被测软件,并在录制测试脚本后,手工进行相应的修改和编辑才能执行所述测试脚本,以完成软件测试的任务,这种手工编写测试脚本对软件进行测试的方法,使得软件测试的效率极其低下。
总之,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够提出一种软件测试的方法,用以解决在软件测试过程中需要手工编写测试脚本使得软件测试效率低下的问题。
发明内容
本发明所要解决的技术问题是提供一种软件测试的方法,用以提高软件测试效率。
本发明的另一个目的是将上述构思应用于具体的应用环境中,提供
一种软件测试的装置,从而保证该方法的实现和应用。
为解决上述技术问题,本发明实施例提供了一种软件测试方法,包括:
建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;
按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素,生成测试用例;
将所述测试用例转换为自动化测试脚本,并解析执行所述自动化测试脚本,在被测软件上完成相应操作。
优选的,所述测试逻辑包括多条测试子逻辑,所述生成测试用例包括:
根据所述界面元素和动作元素生成测试用例模板;
在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合所述测试输入数据和预期输出结果形成测试用例。
优选的,所述测试用例模板以二维输入表格的形式通过界面展示。
优选的,所述界面元素和动作元素为被测软件一窗口中的界面元素和动作元素。
优选的,所述将测试用例转换为测试脚本包括:
读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
将所述界面元素名称和标识组合成映射文件;
将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
本发明实施例还提供了一种软件测试装置,包括:
建立模块,用于建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;
提取模块,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;
生成测试用例模块,用于依据所述界面元素和动作元素生成测试用例;
转换测试脚本模块,用于将所述测试用例转换为自动化测试脚本;
解析执行模块,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。
优选的,所述生成测试用例模块包括:
生成模板子模块,用于根据所述界面元素和动作元素生成测试用例模板;
定义子模块,用于在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合子模块,用于组合所述测试输入数据和预期输出结果形成测试用例。
优选的,所述转换测试脚本模块包括:
读取子模块,用于读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
匹配子模块,用于将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
生成映射文件子模块,用于将所述界面元素名称和标识组合成映射文件;
生成中间脚本子模块,用于将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
生成测试脚本子模块,用于通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
本发明通过建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,并按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例,然后将测试用例转换为自动化测试脚本,最后解析执行所述自动化测试脚本,在被测软件上完成相应操作,使得软件开发人员不需要手工编辑测试脚本,可以在被测软件上模拟键盘输入、鼠标点击等实际操作,大大提高了软件的测试效率,也节约了软件开发的大量资源。
附图说明
图1是本发明的一种软件测试的方法实施例1的流程图;
图2是本发明的一种软件测试的方法实施例2的流程图;
图3是本发明的一个具体例子中一个界面元素库的示意图;
图4(a)和图4(b)是本发明的一个具体例子中动作元素库的示意图;
图5是本发明的一个具体例子中一个测试用例模板的示意图;
图6是本发明的一个具体例子中一个测试用例的示意图;
图7是本发明的一个具体例子中一个映射文件的示意图;
图8是本发明的一个具体例子中将测试用例转换为中间脚本时的界面示意图;
图9是本发明的一个具体例子中一个中间脚本的示意图;
图10是本发明的一个具体例子中执行中间脚本的界面示意图;
图11是本发明的一个具体例子中自动化测试脚本的示意图;
图12是本发明的一种软件测试的装置实施例的结构框图;
图13是本发明的一种软件测试的装置优选实施例的结构框图;
图14是应用图13所示的优选实施例进行软件测试的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本发明实施例的核心构思之一在于,建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;并按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例;然后将测试用例转换为自动化测试脚本,最后解析执行所述测试脚本,在被测软件上完成相应操作;本发明采用预先建立界面元素库和动作元素库的方法,使得运用本发明的方法在生成测试脚本时可以直接调用所述界面元素库和动作元素库中的脚本语言,不再需要软件开发人员手工编写测试脚本,大大提高了软件测试中的软件测试效率,还可以进一步提高测试脚本的通用性。
参考图1,示出了本发明的一种软件测试的方法实施例1的流程图,可以包括以下步骤:
步骤101:建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;
在实际应用中,对软件进行测试之前,软件开发人员首先建立所述界面元素库,所述界面元素包括所述界面元素的名称、类型和标识,在本实施例中,通过建立所述界面元素库可以避免相同的界面元素在不同的测试用例中重复录制,可以提高界面元素的重用性;需要说明的是,所述界面元素库以被测软件的一个窗口为单位保存所述窗口上的界面元素;
同时,软件开发人员还需要建立动作元素库,用于存储操作所述界面元素的动作参数,所属动作参数包括对界面元素操作的动作名称,以及所述动作名词对应的动作执行脚本,还可以包括所述动作名称的类型,从而节省了大量录制脚本的工作;
步骤102:按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,生成测试用例;
在实际中,本步骤的实现可以为,从所述界面元素库和动作元素库中,根据测试执行的具体步骤来提取相应的界面元素和动作元素,根据所述相应的界面元素和动作元素生成测试用例;在实际应用中,软件测试过程中的测试用例可以由测试输入数据、预期输出结果以及相应的测试执行步骤三部分组成;
步骤103:将测试用例转换为自动化测试脚本,解析执行所述自动化测试脚本,在被测软件上完成相应操作;
其中,所述自动化测试脚本是根据测试用例生成的可以用于对软件进行测试的脚本程序,利用这些脚本程序可以执行对软件的测试流程,可以在被测软件上模拟键盘输入、鼠标点击等实际操作。
可以理解的是,利用本发明实施例1的方法可以通过建立所述界面元素库以及动作元素库节省测试脚本的编写时间,生成的测试脚本可以由测试工具解析并执行,无需软件开发人员手工修改或者编辑,减少了编程过程中出现的人为错误,大大提高了软件测试过程中的软件测试效率;此外,所述动作元素库中的动作执行脚本针对具体的动作而不是测试用例,大大提高了动作执行脚本的共享性,同时提高了脚本的可维护性和可管理性;再者,通过建立所述界面元素库,使得被测软件的界面元素得到充分共享和有效管理,节省了抓取界面元素的大量开发成本。
参考图2,示出了本发明的一种软件测试的方法实施例2的流程图,可以包括以下步骤:
步骤201:建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;
在实际应用中,对软件进行测试之前,软件开发人员首先建立所述界面元素库,所述界面元素包括所述界面元素的名称、类型和标识,所属界面元素的名称在本发明实施例中为即控件名称,所述标识为工具语言的定义,为描述界面元素名称的脚本语言;
需要说明的是,本领域技术人员可以很容易的知悉,所述界面元素的名称还可以为其它字段的名称,因此本发明对界面元素的名称不做限定;
同时,软件开发人员还需要建立动作元素库,用于存储操作所述界面元素的动作参数,所属动作参数包括对界面元素操作的动作名称,例如:点击、双击、输入、选择等,以及所述动作名词对应的动作执行脚本,还可以包括所述动作名称的类型;
步骤202:按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素;
需要说明的是,所述测试逻辑,可以理解为测试流程,包括多条测试子逻辑,每条测试子逻辑可以理解为针对被测软件某一个窗口的一次测试子流程,根据所述多条子逻辑可以从所述界面元素库和动作元素库中提取相应的界面元素和动作元素;
优选的,所述界面元素和动作元素为被测软件一窗口中的界面元素和动作元素;
步骤203:根据所述界面元素和动作元素生成测试用例模板;
将所述相应的界面元素和动作名称组合成测试用例模板,优选的,所述测试用例模板以二维输入表格的形式通过界面展示;
步骤204:在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
在测试用例模板中的二维输入表格处,可以定义各个测试子逻辑所要求的测试输入数据和预期输出结果,所述定义测试输入数据的过程可以理解为对界面元素和动作元素的赋值过程,通过赋值可以使得定义的测试输入数据内容与所述界面元素库和动作元素库相匹配;
步骤205:组合所述测试输入数据和预期输出结果形成测试用例;
各个测试子逻辑定义完成后,对所述定义的测试输入数据和预期输出结果进行组合,形成测试用例;
步骤206:将测试用例转换为测试脚本;
优选的,本步骤的实现方案可以包括以下子步骤:
子步骤2061:读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
测试用例设计完成后,按行读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
子步骤2062:将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
将读取到的界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得与所述界面元素名称相应的界面元素标识,以及与所述动作名称相应的动作执行脚本;
子步骤2063:将所述界面元素名称和标识组合成映射文件;
将所述界面元素和标识组合成映射文件,所述映射文件为记录界面元素的文本文件,可以记录界面元素的标识和类型,所述映射文件内容的格式是已经进行了规范和定义的;所述映射文件可以为Map文件,本领域普通技术人员可以很容易的知悉,所述界面元素和相应的脚本语言对应关系保存在何处,以及如何保存都不影响本发明实施例的实现,因此本发明并不对此作出限定;
子步骤2064:将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
将界面元素名称、动作执行脚本、测试输入数据、预期输出结果组合生成中间脚本;所述中间脚本为已经规范的一种脚本语言,可以看出,该脚本语言为描述性语言,已明确脚本语言的语法和构成短语,可以在对被测软件进行测试的过程中直接运行;
子步骤2065:通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本;
运行所述中间脚本,结合所述映射文件将所述中间脚本中的界面元素进行置换,动态得到自动化测试脚本;
步骤207:解析执行所述自动化测试脚本,在被测软件上完成相应操作;
解析执行所述自动化测试脚本,在被测软件上模拟键盘输入和鼠标点击等实际操作,完成所述软件测试的过程。
以下通过一个具体的例子进一步说明本发明的软件测试过程。
在实际应用中,对软件进行测试之前,软件开发人员首先建立所述界面元素库,所述界面元素包括所述界面元素的名称、类型和标识,所属界面元素的名称在本发明实施例中为即控件名称,所述标识为工具语言的定义,为描述界面元素名称的脚本语言;
S1:建立界面元素库;
参考图3,示出了本发明的一个具体例子中一个界面元素库的示意图;其中,所述控件名称可以为:部门代码、成本对象代码、工时类型等,所述标识为控件名称在工具脚本中的定义,例如图3中所示的“name=txtEdit(2)”等,以及所述控件名称的类型,如所述部门代码的类型为“KDText”;
S2:建立动作元素库;
同时,软件开发人员还需要建立动作元素库,用于存储操作所述界面元素的动作参数,所属动作参数包括对界面元素操作的动作名称,参考图4,示出了本发明的一个具体例子中的动作元素库的示意图;所述动作元素名称为图4中所示的“动作词”,例如,“T新增”、“T保存”等,对应的动作执行脚本(即是图中所示的“脚本”)为“T,@formname,@formname,CLICK,‘Coords=27*-23’”,类型为default;
S3:按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取相应的界面元素和动作元素,根据所述界面元素和动作元素生成测试用例模板;
参考图5,示出了根据图3和图4所示的界面元素库和动作元素库生成的一个测试用例模板的示意图,所述测试用例模板可以以二维输入表格的形式展示;
S4:在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
软件开发人员可以在二维输入表格中分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果,即是给所述界面元素和动作元素赋值,例如,图中,给控件名称为“部门代码”的值定义为12,“工时类型”为“机台工时”等,即是分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
S5:组合所述测试输入数据和预期输出结果形成测试用例;
参考图6,示出了本发明的一种软件测试的方法中一个测试用例的示意图,可以理解的是,测试子逻辑所对应为图中所示的测试组件,多个测试组件组成了图6所示的测试用例;
S6:读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
S7:将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
S8:将所述界面元素名称和标识组合成映射文件;
参考图7,示出了保存所述界面元素和相应的脚本语言对应关系的映射文件的示意图,所述映射文件的名称为:制造测试组\1.01.日成本模块\B01.实际工时录入.Map;可以理解的是,映射文件可以为Map文件;
S9:将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
测试用例定义完成之后,可以根据所述测试用例生成中间脚本,上述步骤S6至S9为生成中间脚本的过程;参考图8,示出了将图6所示的测试用例转换为中间脚本时的界面示意图;同时参考图9,示出了本发明的一个具体例子中一个中间脚本的示意图,所述中间脚本的名称为:制造测试组\1.01.日成本模块\B01.实际工时录入.SDD;
S10:按行读取并执行所述中间脚本;
参考图10,示出了执行所述中间脚本时的界面示意图,例如,读取到中间脚本中的数据为:
T  frmEdit    ComDo  CLICK
T  frmEdit    KDSel  SelectPartialMatch一般耗用用途
S11:将读取到的frmEdit、ComDo、KDSel分别在界面元素库中进行匹配,可以分别得到frmEdit、ComDo、KDSel在界面元素中的标识:
frmEdit=Type=Window;Name=frmEdit
KDSel=Type=ComboListBox;ObjectIndex=0
ComDo=Type=ComboBox;Name=ComDo
需要说明的是,在执行所述自动化测试脚本的过程中,因为动作名称已经定义,所以可以将动作名称——SelectPartialMatch和CLICK分别转换为:Click;
S12:执行中间脚本,将读取到的界面元素名称和动作名称,转换为可以模拟键盘输入、鼠标点击的自动化测试脚本:
例如:Window SetContext,“Name=frmEdit”,“”
ComboBox Click,“Name=ComDo”,“”
ComboListBox Click,“ObjectIndex=0”,“Text=一般耗用”‘用途’
参考图11,示出了本发明的一个具体例子中生成的所述测试脚本的示意图;
S13:执行所述自动化测试脚本,在被测软件上完成键盘输入和鼠标点击等实际操作。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图12,示出了本发明的一种软件测试的装置实施例的结构框图,可以包括以下模块:
建立模块1201,用于建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;
提取模块1202,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;
生成测试用例模块1203,用于依据所述界面元素和动作元素生成测试用例;
转换测试脚本模块1204,用于将所述测试用例转换为自动化测试脚本;
解析执行模块1205,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。
在本实施例中,所述生成测试用例模块在生成测试用例时,需要从所述建立模块中提取相应的界面元素和动作元素,再将所述相应的界面元素和动作元素组合生成测试用例模板,软件开发人员在所述测试用例模板上设计测试用例,并将测试用例转换为测试脚本,所述解析执行模块执行所述测试脚本,可以在被测软件上模拟键盘输入、鼠标点击等实际操作。
参考图13,示出了本发明的一种软件测试的装置优选实施例的结构框图,可以包括以下模块:
建立模块1301,用于建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;
提取模块1302,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;
生成测试用例模块1303,用于依据所述界面元素和动作元素生成测试用例;
生成模板子模块13031,用于根据所述界面元素和动作元素生成测试用例模板;
定义子模块13032,用于在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合子模块13033,用于组合所述测试子逻辑形成测试用例。
优选的,所述界面元素包括界面元素的名称、类型和标识。
优选的,所述界面元素为控件,所述界面元素的名称为控件名称,所述界面元素的标识为所述控件在工具语言中的定义。
转换测试脚本模块1304,用于将所述测试用例转换为自动化测试脚本;
读取子模块13041,用于读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
匹配子模块13042,用于将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
生成映射文件子模块13043,用于将所述界面元素名称和标识组合成映射文件;
生成中间脚本子模块13044,用于将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
生成测试脚本子模块13045,用于通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
解析执行模块1305,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。
参考图14,示出了应用图13所示的优选实施例进行软件测试的流程图,可以包括以下步骤:
步骤1401:建立模块建立界面元素库和动作元素库,所述界面元素库存储被测软件的界面元素,所述动作元素库存储用于操作所述界面元素的动作参数,所述动作参数包括动作名称和动作执行脚本;
步骤1402:提取模块按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;
步骤1403:生成模板子模块根据所述界面元素和动作元素生成测试用例模板;
步骤1404:定义子模块在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
步骤1405:组合子模块组合所述测试子逻辑形成测试用例;
步骤1406:读取子模块读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
步骤1407:匹配子模块将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
步骤1408:生成映射文件子模块将所述界面元素名称和标识组合成映射文件;
步骤1409:生成中间脚本子模块将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
步骤14010:生成测试脚本子模块通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本;
步骤14011:解析执行模块解析执行所述自动化测试脚本,在被测软件上完成相应操作。
对于装置实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种软件测试的方法及软件测试的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种软件测试的方法,其特征在于,包括:
建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;
按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素,生成测试用例;
将所述测试用例转换为自动化测试脚本,并解析执行所述自动化测试脚本,在被测软件上完成相应操作。
2.如权利要求1所述的方法,其特征在于,所述测试逻辑包括多条测试子逻辑,所述生成测试用例包括:
根据所述界面元素和动作元素生成测试用例模板;
在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合所述测试输入数据和预期输出结果形成测试用例。
3.如权利要求2所述的方法,其特征在于,所述测试用例模板以二维输入表格的形式通过界面展示。
4.如权利要求1、2或3所述的方法,其特征在于,所述界面元素和动作元素为被测软件一窗口中的界面元素和动作元素。
5.如权利要求2所述的方法,其特征在于,所述将测试用例转换为测试脚本包括:
读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
将所述界面元素名称和标识组合成映射文件;
将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
6.一种软件测试的装置,其特征在于,包括:
建立模块,用于建立界面元素库和动作元素库,所述界面元素库用于存储被测软件的界面元素,所述界面元素包括界面元素的名称、类型和标识,所述界面元素类型为控件类型,所述界面元素的标识为所述控件在工具语言中的定义;所述动作元素库用于存储用来操作所述界面元素的动作元素,所述动作元素包括动作名称和动作执行脚本;
提取模块,用于按照预定义的测试逻辑,从所述界面元素库和动作元素库中提取所述测试逻辑所需的界面元素和动作元素;
生成测试用例模块,用于依据所述界面元素和动作元素生成测试用例;
转换测试脚本模块,用于将所述测试用例转换为自动化测试脚本;
解析执行模块,用于解析执行所述自动化测试脚本,在被测软件上完成相应操作。
7.如权利要求6所述的装置,其特征在于,所述生成测试用例模块包括:
生成模板子模块,用于根据所述界面元素和动作元素生成测试用例模板;
定义子模块,用于在所述测试用例模板中,分别定义各个测试子逻辑所要求的测试输入数据和预期输出结果;
组合子模块,用于组合所述测试输入数据和预期输出结果形成测试用例。
8.如权利要求7所述的装置,其特征在于,所述转换测试脚本模块包括:
读取子模块,用于读取所述测试用例中的界面元素名称、动作名称、测试输入数据和预期输出结果;
匹配子模块,用于将所述界面元素名称和动作名称分别在所述界面元素库和动作元素库中匹配,获得相应的界面元素标识和动作执行脚本;
生成映射文件子模块,用于将所述界面元素名称和标识组合成映射文件;
生成中间脚本子模块,用于将所述界面元素名称、动作执行脚本、测试输入数据和预期输出结果组合生成中间脚本;
生成测试脚本子模块,用于通过所述映射文件置换所述中间脚本中的界面元素,动态得到自动化测试脚本。
CN200810110935XA 2008-06-17 2008-06-17 一种软件测试的方法及装置 Active CN101339534B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810110935XA CN101339534B (zh) 2008-06-17 2008-06-17 一种软件测试的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810110935XA CN101339534B (zh) 2008-06-17 2008-06-17 一种软件测试的方法及装置

Publications (2)

Publication Number Publication Date
CN101339534A CN101339534A (zh) 2009-01-07
CN101339534B true CN101339534B (zh) 2010-10-13

Family

ID=40213605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810110935XA Active CN101339534B (zh) 2008-06-17 2008-06-17 一种软件测试的方法及装置

Country Status (1)

Country Link
CN (1) CN101339534B (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621370B (zh) * 2009-07-29 2013-01-23 金蝶软件(中国)有限公司 一种业务流程的性能测试方法、系统及电子设备
CN102096630B (zh) * 2009-12-10 2013-11-06 大唐移动通信设备有限公司 一种软件测试方法和装置
US20110224939A1 (en) * 2010-03-10 2011-09-15 Jayaswal Manish K Integrated tool for persisting development environment test scenario information
CN101950270A (zh) * 2010-09-28 2011-01-19 电子科技大学 一种针对软件界面安全缺陷的检测方法
CN102467442B (zh) * 2010-11-02 2015-04-29 腾讯科技(深圳)有限公司 一种软件测试的方法、系统和设备
CN102487340A (zh) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 报文交互的测试方法及装置
CN102135936A (zh) * 2010-12-31 2011-07-27 华为技术有限公司 生成测试用例的方法以及系统
CN102148729B (zh) * 2011-05-20 2014-12-24 烽火通信科技股份有限公司 一种无源光网络设备私有snmp管理指令的自动测试方法
CN102819487A (zh) * 2011-06-10 2012-12-12 腾讯科技(深圳)有限公司 对网络游戏进行测试的方法和装置
CN102855175B (zh) * 2011-06-28 2016-04-06 北京新媒传信科技有限公司 自动化测试方法及装置
CN103049369B (zh) * 2011-10-14 2016-03-09 阿里巴巴集团控股有限公司 一种自动化测试方法及系统
CN102508775A (zh) * 2011-10-31 2012-06-20 彭勇 一种交互式自动化测试系统
CN102495731B (zh) * 2011-12-02 2014-12-10 中国信息安全测评中心 一种信息安全评估的实施用例的生成方法
CN103246601B (zh) * 2012-02-10 2018-01-09 腾讯科技(深圳)有限公司 测试方法及装置
CN103309797B (zh) * 2012-03-09 2016-05-04 阿里巴巴集团控股有限公司 用户界面自动化测试方法及装置
CN103365643B (zh) * 2012-03-30 2017-07-21 Ge医疗系统环球技术有限公司 一种自动生成图形用户界面的测试脚本的方法及装置
US9038025B1 (en) 2012-05-24 2015-05-19 Allstate Insurance Company Technical interaction model
CN103425574B (zh) * 2012-05-25 2018-02-23 腾讯科技(深圳)有限公司 一种测试应用程序的方法及装置
CN102722437B (zh) * 2012-05-29 2015-12-16 北京空间飞行器总体设计部 一种基于组件与脚本的航天器测试系统及测试方法
CN102955738B (zh) * 2012-11-13 2014-10-29 中原工学院 一种针对仿真系统的主动被动混合测试方法
CN103019937B (zh) * 2012-12-13 2015-11-18 广东欧珀移动通信有限公司 一种人机交互界面遍历测试方法
CN103914375B (zh) * 2013-01-07 2019-04-26 百度国际科技(深圳)有限公司 一种自绘界面软件的测试方法和装置
CN104133764B (zh) * 2013-05-03 2018-01-23 腾讯科技(深圳)有限公司 应用程序界面的响应测试方法和装置
CN103353857B (zh) * 2013-05-31 2016-04-20 国家电网公司 一种变电站综合监测单元的通信测试方法
CN104794050B (zh) * 2014-01-21 2018-09-18 腾讯科技(深圳)有限公司 应用程序的测试方法、装置及系统
CN104951393B (zh) * 2014-03-25 2018-03-30 中国电信股份有限公司 测试方法和测试装置
CN103984626B (zh) * 2014-05-13 2017-07-28 华为技术有限公司 一种生成测试用例脚本的方法及装置
CN105446865B (zh) * 2014-07-09 2019-06-28 阿里巴巴集团控股有限公司 多种环境下的测试方法及装置
CN104199767B (zh) * 2014-08-19 2017-08-29 北京金山安全软件有限公司 测试方法和装置
CN105512023B (zh) * 2014-09-26 2019-02-19 腾讯科技(深圳)有限公司 一种Monkey测试方法及装置
CN104298595A (zh) * 2014-09-29 2015-01-21 百视通网络电视技术发展有限责任公司 自动化测试方法及测试系统
CN105824747A (zh) * 2015-01-27 2016-08-03 程文彬 一种用于软件自动化测试的云服务系统
CN106326095A (zh) * 2015-06-30 2017-01-11 展讯通信(上海)有限公司 一种测试脚本设定方法及系统
CN105204992A (zh) * 2015-08-28 2015-12-30 努比亚技术有限公司 测试脚本生成装置及方法
CN106547679B (zh) * 2015-09-17 2021-03-23 腾讯科技(深圳)有限公司 脚本管理的方法和脚本管理平台
CN105279092A (zh) * 2015-11-20 2016-01-27 浪潮电子信息产业股份有限公司 一种软件测试的方法及装置
CN106055468A (zh) * 2016-04-25 2016-10-26 乐视控股(北京)有限公司 用于界面的自动化测试方法和系统
CN106126411B (zh) * 2016-06-13 2019-01-01 广州酷狗计算机科技有限公司 一种对被测程序代码进行测试的方法和装置
CN106201873A (zh) * 2016-07-01 2016-12-07 网易(杭州)网络有限公司 测试脚本的处理方法和装置
CN106407105B (zh) * 2016-08-26 2019-02-01 上海合福信息科技有限公司 一种测试设计书生成方法
CN107818102B (zh) * 2016-09-12 2020-03-27 平安科技(深圳)有限公司 数据提取方法和装置
CN106528429A (zh) * 2016-11-28 2017-03-22 广东威创视讯科技股份有限公司 一种ui界面测试方法及装置
CN107480056B (zh) * 2017-07-31 2023-04-07 北京云测信息技术有限公司 一种软件测试方法和装置
CN107391383B (zh) * 2017-08-11 2021-01-12 上海巍擎信息技术有限责任公司 一种应用程序界面的测试方法和测试系统
CN107481766A (zh) * 2017-08-28 2017-12-15 郑州云海信息技术有限公司 一种测试方法及装置
CN109426611A (zh) * 2017-08-31 2019-03-05 贵州白山云科技股份有限公司 一种软件测试方法和装置
CN107908559B (zh) * 2017-11-15 2021-05-07 中国农业银行股份有限公司 一种测试案例设计方法及装置
CN108255706A (zh) * 2017-11-27 2018-07-06 平安科技(深圳)有限公司 自动化测试脚本的编辑方法、装置、终端设备及存储介质
CN109086199B (zh) * 2018-06-22 2022-06-07 网宿科技股份有限公司 一种自动化生成测试脚本的方法、终端和可存储介质
CN109783379B (zh) * 2019-01-03 2022-02-08 北京云测信息技术有限公司 脚本执行异常确定方法和装置
CN110109833A (zh) * 2019-04-25 2019-08-09 武汉易酒批电子商务有限公司 基于ui界面的自动化测试用例获取方法及设备
CN110413524A (zh) * 2019-07-26 2019-11-05 中国工商银行股份有限公司 用于生成测试脚本的方法和装置、自动化测试方法
CN112559372A (zh) * 2020-12-24 2021-03-26 南方电网深圳数字电网研究院有限公司 界面测试用例的生成方法、系统以及存储介质
CN112597034A (zh) * 2020-12-25 2021-04-02 深圳证券交易所 测试用例的生成方法、装置及计算机可读存储介质
CN112988568A (zh) * 2021-02-04 2021-06-18 上海硬通网络科技有限公司 游戏测试方法、装置及电子设备
CN113986441A (zh) * 2021-11-05 2022-01-28 中国航空无线电电子研究所 一种飞机地面站软件人机交互界面自动化测试方法
CN114064157B (zh) * 2021-11-09 2023-09-15 中国电力科学研究院有限公司 基于页面元素识别的自动化流程实现方法、系统、设备及介质

Also Published As

Publication number Publication date
CN101339534A (zh) 2009-01-07

Similar Documents

Publication Publication Date Title
CN101339534B (zh) 一种软件测试的方法及装置
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
CN104407980B (zh) 移动应用自动化测试装置和方法
CN103164328B (zh) 一种业务功能的回归测试方法、装置及系统
CN103186460B (zh) 一种生成测试用例脚本的方法、装置及系统
CN105912473B (zh) 基于bdd的移动app自动测试平台和测试方法
US7895575B2 (en) Apparatus and method for generating test driver
CN102567193A (zh) 测试用例转化为自动化测试脚本的方法及系统
US20050223360A1 (en) System and method for providing a generic user interface testing framework
CN103399814B (zh) 自动化测试的方法及装置
CN110716870A (zh) 服务的自动化测试方法及装置
CN106598834A (zh) Ui测试方法及装置
CN109933521A (zh) 基于bdd的自动化测试方法、装置、计算机设备及存储介质
US20050229161A1 (en) Generic user interface testing framework with load-time libraries
CN111382055B (zh) 一种基于统一描述语言的自动化单元测试方法及装置
CN102479152A (zh) 基于Android平台获取工具自动测试结果的方法及装置
CN107622017B (zh) 一种通用自动化软件测试的解析方法
CN112181854A (zh) 一种生成流程自动化脚本的方法、装置、设备及存储介质
CN115952758A (zh) 芯片验证方法、装置、电子设备及存储介质
CN110908894A (zh) 一种基于vuex的可视化报表工具自动化测试方法及装置
CN115658529A (zh) 用户页面的自动化测试方法以及相关设备
US20050228644A1 (en) Generic user interface testing framework with rules-based wizard
CN112231197A (zh) 一种页面测试的方法、装置和存储介质
CN117370217A (zh) 一种基于python的接口测试结果自动生成方法
CN109144867B (zh) 一种测试方法及测试系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant