CN101377759B - 自动化界面测试系统 - Google Patents
自动化界面测试系统 Download PDFInfo
- Publication number
- CN101377759B CN101377759B CN2008101189208A CN200810118920A CN101377759B CN 101377759 B CN101377759 B CN 101377759B CN 2008101189208 A CN2008101189208 A CN 2008101189208A CN 200810118920 A CN200810118920 A CN 200810118920A CN 101377759 B CN101377759 B CN 101377759B
- Authority
- CN
- China
- Prior art keywords
- test
- interface
- case
- test cases
- information
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种自动化界面测试系统,包括:界面代码获取单元、界面元素信息读取单元、测试案例生成单元、测试案例执行单元、测试结果输出单元、测试案例生成循环单元以及测试案例执行循环单元。本发明提出的自动化界面测试系统,测试效率相比起手工测试而言大为提高。
Description
技术领域
本发明关于计算机软件领域,特别关于计算机软件测试技术,具体地讲是一种自动化界面测试系统。
背景技术
软件测试定义是:为了发现程序中的错误而执行程序的过程,软件测试主要工作内容是验证(verification)和确认(validation),验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件。
从软件开发的过程按阶段划分有A.单元测试,B.集成测试,C.确认测试,D.验收测试,E.系统测试。
目前,传统的程序界面测试具有较大的缺陷,具体表现为:
1、界面测试一般作为系统测试的一部分而存在,需要等到程序开发完成、测试环境搭建完毕后,与业务功能测试同步进行。这样无形中推迟了界面问题发现和修改的时机,造成修改成本的增加。
2、因为界面测试作为系统测试的一部分,因此界面测试的案例是面向特定的应用或系统,案例重用性不高,增加了重复劳动的成本。
3、业界现有的自动化测试工具,对于界面的自动化测试没有好的解决方案。从测试方法上来看,通常只是对脚本进行解析式回放,缺乏对于自动化案例是否通过的判断,较难进行测试结果、测试质量的统计分析。
4、从测试案例编写上来看,现有自动化测试工具缺乏对批量生成、批量执行自动化测试案例的方法。具体表现为自动化测试案例的编写需要依靠手工逐个录制来完成,然后逐个执行,人工判断测试结果。缺少批量生成界面测试案例的功能,一方面使得案例设计耗时甚多,无法降低手工劳动的比例;另一方面也有可能导致案例对于界面功能覆盖率的降低。而缺少批量执行自动化案例测试的功能使得测试案例的多人共用以及测试结果的自动判断分析较难实现,客观上阻碍了界面测试效率的提高。
现有技术中提供了一种软件测试方法,该方法包括:操作开始软件测试的测试模式;输入测试目标函数;读取测试目标函数的标记信息;显示询问关于所述标记信息的信息选择屏幕;根据所述通过信息选择屏幕输入的关于所述标记信息的信息和测试目标函数,来生成测试信息;以及输出测试所述测试目标函数的测试信息。但该技术并没有公开针对界面测试的内容,并且在测试过程中需要多次由外界(用户)输入数据。
又如现有技术提供了一种基于源代码静态分析的软件安全代码分析器及其检测方法,软件安全代码分析器包括五个功能模块:代码解析器、代码分析引擎、安全风险报告器、安全规则库和用户接口,其中代码分析引擎由数据流分析器、控制流分析器、结构分析器、安全分析调度器及安全分析接口所组成,负责提取程序结构并通过基于全文的语法、语义来分析代码的安全问题;通过输入的源代码和代码的语法与语义,由该引擎分析代码的结构和关键特征,由此获取程序的安全风险并报告给用户。但可以看出,该发明同样没有克服现有技术中关于界面测试的缺陷。
中国专利申请200610168826.4、200710064155.1公开的内容以引入方式将其合并于此。
发明内容
针对上述现有技术中存在的不足,本发明的主要目的在于提供一种自动化界面测试系统,使界面测试可以在软件界面代码完成后即大批量自动执行。
为了实现上述目的,本发明实施例提供一种自动化界面测试系统,所述的系统包括:界面代码获取单元,用于获取被测界面程序代码;界面元素信息读取单元,用于从所述的被测界面程序代码中读取包括界面元素名、界面元素类型和业务功能要求信息在内的界面元素信息;测试案例生成单元,包括业务功能枚举模块和测试案例生成模块,所述业务功能枚举模块,用于枚举所述的业务功能要求信息可能获得的用户使用情况;所述测试案例生成模块,用于根据每个用户使用情况分别生成界面测试案例;测试案例执行单元,用于运行所述的测试案例,并对测试案例运行中的功能要求进行响应,获取功能要求响应结果;测试结果输出单元,用于从运行的测试案例中获取该测试案例的预期验证结果,将所述的功能要求响应结果和预期验证结果进行一致性比较,输出一致或不一致的测试结果;测试案例生成循环单元,用于判断是否存在需要进行测试的界面元素信息,如果是,则调用所述的测试案例生成单元根据该界面元素信息中的业务功能要求信息生成界面测试案例;如果否,则继续判断是否存在需要进行测试的界面元素信息;测试案例执行循环单元,用于判断是否存在需要执行的界面测试案例,如果是,则调用所述的测试案例执行单元运行该测试案例。
本发明实施例的有益效果在于,提出了一种自动化界面测试方法及系统,可以在重复繁琐的界面测试中引入自动化测试的理念,测试效率相比起手工测试而言大为提高。同时因为将界面测试与功能测试的过程相分离,可以使界面测试无需等到程序开发完成才介入,而是提早到界面代码开发完成后马上开始,提高了测试效率,同时方便定位问题所在。另外由于引入了自动判断、多人协同测试的测试管理理念,解决了手工测试案例不能重用、难于进行批量案例执行、测试结果难于统一汇总分析的缺点。本发明的实用,可以有效地促进测试质量的提高。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明提供的自动化界面测试方法的流程图;
图2是本发明提供的自动化界面测试方法的详细流程图;
图3是本发明提供的自动化界面测试系统的结构图;
图4是本发明提供的自动化界面测试系统的详细结构图;
图5是本发明提供的自动化界面测试系统的整体结构图;
图6是本发明提供的自动化界面测试系统中批量案例生成流程的详细说明;
图7是本发明提供的自动化界面测试系统中批量案例执行流程的详细说明。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
本发明适用于采取界面设计代码与应用逻辑代码相分离的设计模式的软件系统。该类型的系统,界面设计与功能逻辑两部分互相独立,界面设计代码以客户端解析语言或者配置文件的方式,保存关于软件界面的外观、输入场的控制与跳转、错误信息提示等设计,而功能逻辑代码用以指定交易的业务功能、逻辑处理与控制、与数据库交互的工作。界面外观和功能逻辑之间用通信的方式彼此合作,成为完整的协同的软件整体。这类型的软件系统,B/S结构以典型的三层结构(客户端html/javascript-应用层jsp/asp-数据库层)系统为代表,而C/S结构则以一种客户端用XML展现界面,应用端用JAVA进行逻辑控制的终端系统为典型。
本发明实施例提供一种自动化界面测试方法及系统。以下结合附图对本发明进行详细说明。
如图1所示,是本发明提供的自动化界面测试方法的流程图。在步骤101时,获取被测界面程序代码,读取其中的界面元素信息;然后,在步骤102时,根据界面元素信息生成界面测试案例;在步骤103时,运行所述的测试案例,获取功能要求响应结果;在步骤104时,获取该测试案例的预期验证结果;在步骤105时,判断响应结果是否与预期验证结果相同或在其范围内,如果是,则判断为通过测试;如果否,则判断为不通过测试。
如图2所示,是本发明提供的自动化界面测试方法的详细流程图。
在步骤201时,获取被测界面程序代码,读取包括界面元素名、界面元素类型和业务功能要求信息在内的界面元素信息,该界面元素信息是界面测试人员根据《软件需求说明书》等测试文档中对功能界面的设计和要求进行录入的;
然后,在步骤202时,枚举所述的业务功能要求信息可能获得的用户使用情况;
在步骤203时,根据每类用户使用情况分别生成界面测试案例;
在步骤204时,对所述的测试案例进行合法性校验,合法性校验通过时允许运行该测试案例,执行步骤205;当合法性校验不通过时删除不通过的测试案例;
在步骤205时,运行所述的测试案例,获取功能要求响应结果;
在步骤206时,获取该测试案例的预期验证结果;
在步骤207时,判断响应结果是否与预期验证结果相同或在其范围内,如果是,则判断为通过测试;如果否,则判断为不通过测试。
在步骤208时,对测试结果数据是否通过校验进行统计,得到测试统计数据。
如图3所示,是本发明提供的自动化界面测试系统的结构图。该系统包括:界面代码获取单元301,用于获取被测界面程序代码;
界面元素信息读取单元302,用于从所述的被测界面程序代码中读取包括界面元素名、界面元素类型和业务功能要求信息在内的界面元素信息;
测试案例生成单元303,用于根据所述的业务功能要求信息生成界面测试案例;
测试案例执行单元304,用于运行所述的测试案例,并对测试案例运行中的功能要求进行响应,获取功能要求响应结果;
测试结果输出单元305,用于从运行的测试案例中获取该测试案例的预期验证结果,将所述的功能要求响应结果和预期验证结果进行一致性比较,输出一致或不一致的测试结果。
如图4所示,是本发明提供的自动化界面测试系统的详细结构图。该系统包括:
界面代码获取单元401,用于获取被测界面程序代码;
界面元素信息读取单元402,用于根据所述的业务功能要求信息生成界面测试案例;
测试案例生成单元403包括:业务功能枚举模块4031,用于枚举所述的业务功能要求信息可能获得的用户使用情况;测试案例生成模块4032,用于根据每类用户使用情况分别生成界面测试案例;
测试案例执行单元404,用于运行所述的测试案例,并对测试案例运行中的功能要求进行响应,获取功能要求响应结果;
测试结果输出单元405,用于从运行的测试案例中获取该测试案例的预期验证结果,将所述的功能要求响应结果和预期验证结果进行一致性比较,输出一致或不一致的测试结果;
测试结果统计单元406,用于对所述的测试结果输出单元输出的一致或不一致的测试结果进行统计,得到测试统计数据;
界面代码存储单元407,用于存储所述的被测界面程序代码,该被测界面程序代码包含包括界面元素名、界面元素类型和业务功能要求信息在内的界面元素信息;
测试信息存储单元408,用于存储所述的测试案例生成单元生成的界面测试案例、所述的测试结果输出单元输出的测试结果;
测试案例校验单元409,用于对所述的测试案例进行合法性校验,当合法性校验通过时,允许所述的测试案例执行单元执行该通过合法性校验的测试案例;
测试案例生成循环单元410,用于判断是否存在需要进行测试的界面元素信息,如果是,则调用所述的测试案例生成单元根据该界面元素信息中的业务功能要求信息生成界面测试案例;如果否,则继续判断是否存在需要进行测试的界面元素信息,如果是,则调用所述的界面代码获取单元获取该测界面程序代码;
测试案例执行循环单元411,用于判断是否存在需要执行的界面测试案例,如果是,则调用所述的测试案例执行单元运行该测试案例;
测试案例修改单元412,用于对所述的测试案例进行修改,所述的修改包括:设置特殊验证值和修改合法性校验值。
为本发明提供的测试方法的详细技术方案如下:
本测试方法的实现原理:采用界面设计与功能逻辑相独立的设计模式开发的软件,界面元素与业务逻辑代码之间并不是紧密互联的关系,因此可以根据系统具体的界面元素和属性的定义方法,开发专门针对界面的自动化测试案例,屏蔽后台业务逻辑并单独面向系统中的界面代码进行静态分析测试,验证界面的设计是否满足系统的要求。
本测试方法对测试案例的分类管理:在业界现有的自动化测试方法和实现中,自动化案例一般是针对特定系统进行归档管理,负责测试系统中某些功能模块。随着软件工程的发展,实现某些功能的代码模块可以以构件的方式进行封装,方便相似的功能在不同系统实现中的重用。相应地,为了方便自动化测试案例在不同系统间重用,本测试方法将待测系统看作是由不同的功能模块(或称构件)组成,测试案例不属于具体的系统,而是归档于特定的功能模块下进行管理。
测试方法的实现:使用本测试方法,基于一个由客户端、服务器和数据库组成的三层C/S结构测试系统(结构图见附图5)。其中客户端面向测试人员使用,实现批量生成测试案例、案例展现以及根据测试案例发起对待测系统的批量自动化界面测试。服务器端实现了测试案例和测试执行过程的管理和主控功能,服务器程序响应客户端的操作请求,负责调度测试案例在在数据库与客户端之间互动,收集客户端上送的批量测试结果,归档到数据库中保存,并能对测试结果进行定性定量分析。后台数据库实现数据存储模块的功能用于保存系统的用户、应用、交易/功能模块、案例及案例执行结果信息。服务器和后台数据库的引入,从技术上提供了测试案例多人共享、测试结果统一汇总分析的系统功能。
使用该测试方法进行自动化界面测试,需要依次经过案例设计、案例执行和测试结果分析等三部分步骤。测试方法使用流程的详述如下:
案例设计:维护应用和功能信息:测试人员通过客户端,录入案例所属的功能信息如功能编号、功能名、功能描述等,系统在服务器端对相关信息进行合法性校验后,上送在数据库中进行保存。
案例设计:批量生成界面测试案例(流程图见附图6):在本测试方法中,批量自动生成界面测试案例的依据是待测系统的《软件需求说明书》、《系统规格说明书》等设计文档。测试人员根据设计文档中特定功能的界面设计方案,在客户端选定测试案例所属的功能,然后逐个录入界面设计方案中所定义元素的类型、业务功能要求(或限制)等设计内容。录入完之后,客户端程序调用内置的分析函数分析录入的界面元素及要求,对每个元素的每种业务要求或限制,列举各种可能出现的正确或错误的使用情况,综合考虑边界值等测试方法后,根据每种情况生成一个测试案例及预期的测试结果。
比如:某功能模块的界面只有一个文本输入框,要求文本框必输且只能输入10位以内(含10位)的纯数字。那么就有以下几种可能的使用情况:
a、不输入任何字符
b、输入小于10位(如9位的字符)纯数字
c、输入小于10位(如9位的字符)非纯数字
d、输入等于10位纯数字
e、输入等于10位非纯数字
f、输入大于10位纯数字
g、输入大于10位非纯数字
对于上述每种使用情况,都会自动转化成一个测试案例。案例批量生成后,测试人员可对其进行进一步的修改,如设置特殊的验证值和修改预期的测试结果。修改完成后,客户端统一把案例上送服务器,经主控程序校验后归档到数据库保存。
案例执行(流程图见附图7):测试人员根据功能模块查询并选择一条或多条案例信息,然后启动测试。服务器主控程序在数据库中查询出待测系统的环境信息及相关案例的测试内容,返回给客户端。客户端以ftp方式连接待测系统,获取对应的界面设计代码并对其进行词法分析,逐一根据案例设置的验证类型和验证对项目名获取对应的界面对象和属性,根据验证类型,将案例之间的验证值与属性值进行运算比较,得到比较结果值,并根据实际比较结果与预期结果对比,若两者相同,则将该案例的测试置成测试通过,反之则置成测试不通过。以上的操作不断反复,直到所有的待测案例都测试完成,即认为本次批量自动化测试成功完成,客户端将所有案例的测试结果上送服务器,经主控程序整理后保存到数据库中。
测试结果分析:测试执行完成后的任何时间,测试人员可以对数据库中保存的测试结果进行分析,得出对于待测模块的质量分析。测试人员选择需要分析的功能模块及统计时间范围,确定后系统自动查询数据库中测试结果表,获取相应记录并进行计算,最后展现该时间段、该功能模块下,执行的总案例数、通过的案例数、案例通过的百分比等分析统计信息,以便进行测试质量分析。
以下是应用本测试方法进行输入场控制测试的的一个实施例:
根据软件需求说明书中的定义,某系统数据新增功能模块的界面有一个文本输入场,要求控制本输入场必输且只能输入不大于10位的英文。在程序实现上,待测系统以XML文件保存系统的界面元素,其中每一个XML标签(TAG)代表一个界面上一个元素。元素的例样如下:
<ELEMENT NAME=”客户英文名”TYPE=”textfield”Regular=”^[A-Za-z\-]+$”MAXLENGTH=”15”MUSTINPUT=”TRUE”><ELEMENT/> |
这个ELEMENT标签带有几个参数,分别用于设置界面元素的名字、类型和内容控制。其中NAME=“客户英文名”表明元素名字为Name,TYPE=“textfield”表明这是一个输入场元素,Regular=“^[A-Za-z\-]+$”用于控制该输入场只能输入英文字符,MAXLENGTH=“15”控制输入场最多只能输入15个字符,MUSTINPUT=“TRUE”则表明本输入场必输。
本实施例需要利用基于界面代码静态扫描的测试方法,对该元素进行自动化测试,验证该输入场是否只可以输入英文字符。其基本过程和后台处理如下:
测试人员使用客户端新增该测试案例所属的功能模块为“数据新增”。数据上送后台,经过合法性检查之后,写入数据库中保存。
测试人员根据《软件需求说明书》,在客户端中录入界面元素的类型、业务要求及案例所属的功能模块如下:
案例所属的模块:数据新增
界面元素名:客户英文名
界面元素类型:文本输入框
界面元素业务控制:必输;只能输入英文;输入长度不多于10个字符;
确认输入完成后,客户端程序调用内置分析函数,分析出对于该输入场有以下可能的几种输入情况:
a)不输入任何字符
b)输入英文字符
c)输入非英文字符
d)输入小于10位的字符
e)输入10位字符
f)输入多于10位的字符
根据每种情况,批量生成模块自动生成一个对应的界面案例,因此生成案例如下:
案例名:输入场案例测试1
案例所属的模块:数据新增
自动化测试的目标环境:系统测试环境A
案例待测的界面元素名:客户英文名
界面测试的类型:空值测试
设置案例的验证值:
案例验证的预期验证结果:不能通过校验
案例名:输入场案例测试2
案例所属的模块:数据新增
自动化测试的目标环境:系统测试环境A
案例待测的界面元素名:客户英文名
界面测试的类型:英文字符测试
设置案例的验证值:ABCDE
案例验证的预期验证结果:可以通过校验
案例名:输入场案例测试3
案例所属的模块:数据新增
自动化测试的目标环境:系统测试环境A
案例待测的界面元素名:客户英文名
界面测试的类型:非英文测试
设置案例的验证值:123AB789
案例验证的预期验证结果:不能通过校验
案例名:输入场案例测试4
案例所属的模块:数据新增
自动化测试的目标环境:系统测试环境A
案例待测的界面元素名:客户英文名
界面测试的类型:输入长长度测试
设置案例的验证值:ABCDEFG
案例验证的预期验证结果:可以通过校验
案例名:输入场案例测试5
案例所属的模块:数据新增
自动化测试的目标环境:系统测试环境A
案例待测的界面元素名:客户英文名
界面测试的类型:输入长长度测试
设置案例的验证值:ABCDEFGHIJ
案例验证的预期验证结果:可以通过校验
案例名:输入场案例测试6
案例所属的模块:数据新增
自动化测试的目标环境:系统测试环境A
案例待测的界面元素名:客户英文名
界面测试的类型:输入长长度测试
设置案例的验证值:ABCDEFGHIJK
案例验证的预期验证结果:不能通过校验
案例批量生成后,测试人员可对案例进行进一步修改,如设置特别的验证值。处理完成后,客户端将案例内容上送服务器,主控模块将案例信息写入数据库保存。
选择设计好的案例(以批量执行“输入场案例测试3”、“输入场案例测试6”为例),发起批量案例执行。主控程序在数据库中查询到案例的目标测试环境、待测元素名、界面测试类型与验证值,并将数据返回给客户端。客户端与目标测试环境建立FTP连接,下载界面代码到客户端本地。然后,客户端调用预设好的词法分析器,对界面代码进行词法分析,分解出各个界面元素。
对于输入场案例测试6,程序根据案例中设置的界面元素名,查找代码中是否存在元素名为“客户英文名”的元素,若存在该元素,则根据输入场长度测试的要求,读取相关XML标签的MAXLENGTH属性值(15)。
使用一定的程序方法对输入场案例测试6中的验证值“ABCDEFGHIJK”进行长度分析(如使用JAVA的String类中的length()函数),得出该验证值的长度为11个字符,然后将其与MAXLENGTH的属性值进行比较,因为验证值长度比代码中设置的属性值小,故可以通过长度校验。这就表明程序的实现与和基于设计文档得出的预期验证结果不符,因此这个案例是测试不通过的。
对于输入场案例测试3,程序查找界面元素中是否存在元素名为“客户英文名”的元素,若存在该元素,则根据“业务内容输入控制”的测试要求,读取相关XML标签的Regular属性值(正则表达式^[A-Za-z\-]+$)。
使用一定的比较函数(如Java中String类的matches函数)将案例验证值(“123AB789”)与Regular属性值进行比较,判断案例验证值是否满足Regular属性中指定的正则表达式,得到比较结果——案例验证值不满足代码中的正则表达式,因此不能被输入到该输入场中。然后将比较结果(“不能输入”)与案例设置的预期验证结果(“不能输入”)进行对比,两者相匹配,表明程序实现与设计文档一致,因此该案例测试通过。
客户端整理测试结果并上送到服务器,主控程序处理后保存在数据库中。
选择统计的时间段、统计案例名,服务器端程序查找数据库中相关记录并返回客户端,展现相关交易在统计时间段内总共执行的次数、测试通过次数和通过百分比,以及案例执行的明细信息。
如图5所示,是本发明提供的自动化界面测试系统的整体结构图。
该系统包括:数据存储装置500:本界面测试系统的数据存储装置。与服务端主控装置501以TCP/IP方式通信,接受测试人员使用客户端装置502生成、经服务端主控装置501做校验和整理处理后上送而来的功能信息、案例信息及案例执行结果信息。
服务端主控装置501:本界面测试系统的服务端主控装置。实现对自动化界面测试系统的主控调度功能。分别与数据存储装置500、客户端装置502以TCP/IP方式连接,负责响应客户端装置502诸如的案例信息获取、测试结果统计等数据请求,以及对客户端装置502上送的功能信息、测试案例信息、案例执行结果信息进行校验和整理,然后上送到数据存储装置500进行保存。
客户端装置502:本界面测试系统的客户端装置。与服务端主控装置501连接,为终端用户提供批量案例生成、批量案例执行的功能,并向服务端主控装置501上送案例生成结果、案例执行结果。同时本装置以FTP的方式与待测系统503进行连接获取待测系统503中保存的界面设计代码以提供给批量案例执行功能使用。
待测系统503:是本界面测试工具的工作对象,其中存放待测系统的界面设计代码。本装置响应客户端装置502的FTP下载请求,提供案例测试所需功能的界面设计代码。
如图6所示,是本发明提供的自动化界面测试系统中批量案例生成流程的详细说明:
步骤601:客户端装置接收外界录入的待测功能中包含的界面元素名、元素类型及业务功能要求等信息,该录入信息是界面测试人员根据《软件需求说明书》等测试文档中对功能界面的设计和要求进行录入的。
步骤602:客户端装置在步骤601中录入的界面元素信息中读取一个。
步骤603:客户端装置在步骤602中读取的界面元素信息中读取一个业务功能要求信息。
步骤604:客户端装置调用内置的分析函数,对步骤603中读取的业务功能要求信息进行分析,列举可能存在的用户使用情况。
步骤605:客户端装置根据步骤604中列举的每种可能情况,各自生成一个界面测试案例。
步骤606:客户端装置判断步骤602中读取的界面元素,其业务功能要求是否已读取完毕。如果读取完毕,则跳转到步骤607,反之则表明该界面元素还有未分析的业务功能要求,跳转到步骤603继续读取。
步骤607:客户端装置判断步骤601中录入的界面元素是否已读取完毕。如果读取完毕,则跳转到步骤608,反之则表明还有未分析的界面元素,跳转到步骤602继续读取。
步骤608:客户端装置接收外界对案例的进一步修改。该修改是界面测试人员根据界面测试案例设计和执行的需要进行录入的。
步骤609:客户端装置把经过以上步骤批量生成的测试案例,上送到服务端主控装置进行合法性校验和信息整理,然后传送到数据库存储装置进行保存。
如图7所示,是本发明提供的自动化界面测试系统中批量案例执行流程的详细说明:
步骤700:客户端装置主动建立与服务器端主控装置的TCP/IP连接。
步骤701:客户端装置接收外界上送的、需要批量执行的案例信息,启动批量案例执行操作。这些待执行案例信息是界面测试人员根据测试场景执行的需要,在客户端装置上对案例进行选择后上送的。
步骤702:客户端装置向主控装置上送待执行案例信息,主控信息往数据库存储装置查询相关案例的详细信息,下传返回客户端装置。
步骤703:客户端装置在返回的案例信息中读取一条待执行的案例,分析该案例涉及的待测功能。
步骤704:客户端装置向待测系统发起请求建立FTP连接。
步骤705:客户端装置判断步骤704中发起的FTP连接是否成功建立,如果成功则跳转到步骤706,否则跳转回步骤703,读取下一个待执行案例
步骤706:客户端装置根据步骤703中分析出的待测功能名,在待测系统中获取相关的界面设计代码(如XML文件),以FTP Download的方式下载到客户端装置的本地临时文件夹中。
步骤707:客户端装置使用客户端装置内置的分析函数,对步骤706种下载到的界面代码文件进行词法分析,根据案例中设置的验证元素名和验证类型,在代码中获取相应的界面对象及属性。
步骤708:客户端装置根据案例中设置的验证类型,调用对应的验证函数,将案例的验证值与步骤707中获取的属性值进行运算比较,得到两者实际的比较结果。
步骤709:客户端装置将步骤708种得到的实际比较结果与案例中设置的预期结果进行比较,判断两者是否匹配。如果匹配则跳转到步骤710,反之若不匹配则跳转到步骤711。
步骤710:客户端装置将待测案例的测试结果设置为“测试通过”,然后执行步骤712。
步骤711:客户端装置将待测案例的测试结果设置为“测试不通过”,然后执行步骤712。
步骤712:客户端装置判断是否还有待执行的案例,如仍有案例待执行则跳转到步骤703,反之则跳转到步骤713。
步骤713:客户端装置收集本次批量执行所有案例的执行结果,上送服务器端主控装置,主控装置对每个案例进行整理,添加执行时间、测试人员等必要信息后,上送到数据库存储装置中进行保存。
步骤714:客户端装置提示批量案例执行完成,并向测试人员展现执行结果明细。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种自动化界面测试系统,其特征在于,所述的系统包括:
界面代码获取单元,用于获取被测界面程序代码;
界面元素信息读取单元,用于从所述的被测界面程序代码中读取包括界面元素名、界面元素类型和业务功能要求信息在内的界面元素信息;
测试案例生成单元,包括业务功能枚举模块和测试案例生成模块,所述业务功能枚举模块,用于枚举所述的业务功能要求信息可能获得的用户使用情况;所述测试案例生成模块,用于根据每个用户使用情况分别生成界面测试案例;
测试案例执行单元,用于运行所述的测试案例,并对测试案例运行中的功能要求进行响应,获取功能要求响应结果;
测试结果输出单元,用于从运行的测试案例中获取该测试案例的预期验证结果,将所述的功能要求响应结果和预期验证结果进行一致性比较,输出一致或不一致的测试结果;
测试案例生成循环单元,用于判断是否存在需要进行测试的界面元素信息,如果是,则调用所述的测试案例生成单元根据该界面元素信息中的业务功能要求信息生成界面测试案例;如果否,则继续判断是否存在需要进行测试的界面元素信息;
测试案例执行循环单元,用于判断是否存在需要执行的界面测试案例,如果是,则调用所述的测试案例执行单元运行该测试案例。
2.根据权利要求1所述的自动化界面测试系统,其特征在于,所述的系统还包括:
测试结果统计单元,用于对所述的测试结果输出单元输出的一致或不一致的测试结果进行统计得到测试统计数据。
3.根据权利要求1所述的自动化界面测试系统,其特征在于,所述的系统还包括:
界面代码存储单元,用于存储所述的被测界面程序代码,该被测界面程序代码包含包括界面元素名、界面元素类型和业务功能要求信息在内的界面元素信息。
4.根据权利要求1所述的自动化界面测试系统,其特征在于,所述的系统还包括:
测试信息存储单元,用于存储所述的测试案例生成单元生成的界面测试案例、所述的测试结果输出单元输出的测试结果。
5.根据权利要求1所述的自动化界面测试系统,其特征在于,所述的系统还包括:
测试案例校验单元,用于对所述的测试案例进行合法性校验,当合法性校验通过时允许所述的测试案例执行单元执行该通过合法性校验的测试案例。
6.根据权利要求1所述的自动化界面测试系统,其特征在于,所述的业务功能要求信息包含:程序界面外观数据、界面输入控制数据、界面输入跳转数据和错误信息提示数据。
7.根据权利要求1所述的自动化界面测试系统,其特征在于,所述的系统还包括:测试案例修改单元,用于对所述的测试案例进行修改,所述的修改包括:设置特殊验证值和修改合法性校验值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101189208A CN101377759B (zh) | 2008-08-26 | 2008-08-26 | 自动化界面测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101189208A CN101377759B (zh) | 2008-08-26 | 2008-08-26 | 自动化界面测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101377759A CN101377759A (zh) | 2009-03-04 |
CN101377759B true CN101377759B (zh) | 2010-06-09 |
Family
ID=40421311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101189208A Active CN101377759B (zh) | 2008-08-26 | 2008-08-26 | 自动化界面测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101377759B (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950270A (zh) * | 2010-09-28 | 2011-01-19 | 电子科技大学 | 一种针对软件界面安全缺陷的检测方法 |
CN101977132B (zh) * | 2010-11-18 | 2013-04-03 | 北京航空航天大学 | 一种交换网络虚拟链路流量管制功能测试装置 |
US8954933B2 (en) | 2011-05-31 | 2015-02-10 | International Business Machines Corporation | Interactive semi-automatic test case maintenance |
US8799866B2 (en) | 2011-05-31 | 2014-08-05 | International Business Machines Corporation | Automatic generation of user interfaces |
CN102521121B (zh) * | 2011-11-18 | 2015-04-08 | 华为技术有限公司 | 一种页面测试方法和页面测试装置 |
CN103389937A (zh) * | 2012-05-09 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 一种界面测试方法和装置 |
CN102736977B (zh) * | 2012-06-07 | 2016-01-06 | 四川九洲空管科技有限责任公司 | 一种tcasii防撞算法的标准符合性验证方法 |
CN103049382B (zh) * | 2012-12-27 | 2015-08-05 | 中国建设银行股份有限公司 | 用于软件模块测试的测试案例生成方法及装置 |
CN104008042B (zh) * | 2013-02-21 | 2017-11-14 | 阿里巴巴集团控股有限公司 | 一种ui自动化测试方法、系统和设备 |
CN104142883B (zh) * | 2013-05-08 | 2017-04-12 | 阿里巴巴集团控股有限公司 | 一种测试方法和一种录制工具 |
CN104156314B (zh) * | 2014-08-14 | 2016-08-31 | 北京航空航天大学 | 一种应用于测试系统的代码重用方法 |
CN105808416B (zh) * | 2014-12-27 | 2018-04-13 | 南车株洲电力机车研究所有限公司 | 一种人机图形交互界面的自动化测试方法和系统 |
CN104657274B (zh) * | 2015-03-06 | 2018-09-07 | 中国银行股份有限公司 | 软件界面测试方法及装置 |
CN104699608B (zh) * | 2015-03-10 | 2017-10-27 | 于秀山 | 图形用户界面软件自动测试方法及装置 |
CN106294097B (zh) * | 2015-05-13 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 一种应用程序测试方法及设备 |
CN105405220A (zh) * | 2015-10-28 | 2016-03-16 | 深圳怡化电脑股份有限公司 | 一种自动化测试的方法及装置 |
CN105374131A (zh) * | 2015-10-28 | 2016-03-02 | 深圳怡化电脑股份有限公司 | 一种自动化测试的方法及装置 |
CN105405221A (zh) * | 2015-10-28 | 2016-03-16 | 深圳怡化电脑股份有限公司 | 一种自动化测试的方法及装置 |
CN105608012A (zh) * | 2016-03-10 | 2016-05-25 | 武汉斗鱼网络科技有限公司 | 一种自动化测试方法及系统 |
CN106201800A (zh) * | 2016-07-15 | 2016-12-07 | 北京捷科智诚科技有限公司 | 一种测试设计平台 |
CN108073511B (zh) * | 2016-11-14 | 2021-02-05 | 平安科技(深圳)有限公司 | 测试代码生成方法和装置 |
CN106909511A (zh) * | 2017-04-10 | 2017-06-30 | 丹露成都网络技术有限公司 | 一种基于RedwoodHQ的自动化测试方法 |
CN107193747B (zh) * | 2017-05-27 | 2022-01-11 | 北京金山安全软件有限公司 | 代码测试方法、装置和计算机设备 |
CN107908559B (zh) * | 2017-11-15 | 2021-05-07 | 中国农业银行股份有限公司 | 一种测试案例设计方法及装置 |
CN108763071A (zh) * | 2018-05-17 | 2018-11-06 | 平安科技(深圳)有限公司 | 一种网页测试方法及终端设备 |
CN109542764B (zh) * | 2018-10-17 | 2023-08-18 | 平安健康保险股份有限公司 | 网页自动化测试方法、装置、计算机设备和存储介质 |
CN109828903B (zh) * | 2018-12-14 | 2022-03-08 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机装置及存储介质 |
CN109828904A (zh) * | 2018-12-14 | 2019-05-31 | 深圳壹账通智能科技有限公司 | 系统验证方法、装置、电子设备及存储介质 |
CN110032515B (zh) * | 2019-04-12 | 2022-08-19 | 中国银行股份有限公司 | 一种界面测试案例生成方法、装置及存储介质 |
CN110162459A (zh) * | 2019-04-15 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 测试案例生成方法、装置及计算机可读存储介质 |
CN112148285B (zh) * | 2019-06-26 | 2023-09-26 | 百度在线网络技术(北京)有限公司 | 一种界面设计方法、装置、电子设备及存储介质 |
CN110427287A (zh) * | 2019-07-10 | 2019-11-08 | 深圳市福瑞祥电器有限公司 | 主板功能测试通用系统及其方法 |
CN110515755A (zh) * | 2019-07-11 | 2019-11-29 | 平安普惠企业管理有限公司 | 接口功能验证方法、装置、设备及计算机可读存储介质 |
CN110413530B (zh) * | 2019-08-02 | 2024-01-05 | 中国工商银行股份有限公司 | 一种行为执行方法及装置 |
CN110569199B (zh) * | 2019-09-20 | 2023-09-22 | 中国银行股份有限公司 | 账单自动测试方法及装置 |
CN111290956B (zh) * | 2020-02-17 | 2023-09-01 | 贵阳货车帮科技有限公司 | 基于脑图的测试方法、装置、电子设备及存储介质 |
CN111522737B (zh) * | 2020-03-26 | 2023-07-07 | 浙江口碑网络技术有限公司 | 一种前端界面的自动化测试校验方法、装置及存储介质 |
CN113535538B (zh) * | 2020-04-21 | 2023-06-16 | 网联清算有限公司 | 应用全链路自动化测试方法、装置、电子设备和存储介质 |
CN113190463B (zh) * | 2021-05-27 | 2024-03-26 | 中国工商银行股份有限公司 | 一种代码测试方法,节点及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1760841A (zh) * | 2004-10-15 | 2006-04-19 | 微软公司 | 使用户界面元素可见的系统和方法 |
CN1851667A (zh) * | 2006-02-15 | 2006-10-25 | 华为技术有限公司 | 一种图形用户界面的测试方法和系统 |
CN101017458A (zh) * | 2007-03-02 | 2007-08-15 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
-
2008
- 2008-08-26 CN CN2008101189208A patent/CN101377759B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1760841A (zh) * | 2004-10-15 | 2006-04-19 | 微软公司 | 使用户界面元素可见的系统和方法 |
CN1851667A (zh) * | 2006-02-15 | 2006-10-25 | 华为技术有限公司 | 一种图形用户界面的测试方法和系统 |
CN101017458A (zh) * | 2007-03-02 | 2007-08-15 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101377759A (zh) | 2009-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101377759B (zh) | 自动化界面测试系统 | |
US20230065572A1 (en) | System and method for performing automated api tests | |
US10162610B2 (en) | Method and apparatus for migration of application source code | |
Bosco et al. | Discovering automatable routines from user interaction logs | |
CN102804147B (zh) | 执行abap源代码的代码检查的代码检查执行系统 | |
CN103577324B (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
Sneed et al. | Wsdltest-a tool for testing web services | |
Obbink et al. | An extensible approach for taming the challenges of JavaScript dead code elimination | |
CN100561445C (zh) | 一种根据程序内容自动生成测试数据集的方法和装置 | |
CN103092761A (zh) | 基于差异信息文件识别和检查修改代码块的方法及装置 | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测系统 | |
CN108491327A (zh) | 一种安卓应用动态Receiver组件本地拒绝服务漏洞检测方法 | |
CN106227654A (zh) | 一种测试平台 | |
CN113886232A (zh) | 接口测试数据和测试脚本生成方法、终端设备及存储介质 | |
CN109801677A (zh) | 测序数据自动化分析方法、装置和电子设备 | |
CN115033894B (zh) | 一种基于知识图谱的软件组件供应链安全检测方法及装置 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN108647147A (zh) | 一种利用图谱分析执行自动化测试机器人及其使用方法 | |
CN108897678B (zh) | 静态代码检测方法和静态代码检测系统、存储设备 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
Cutillo et al. | Identification and extraction of'domain independent'components in large programs | |
CN113064811A (zh) | 基于工作流的自动化测试方法、装置以及电子设备 | |
CN110928535A (zh) | 衍生变量部署方法、装置、设备及可读存储介质 | |
CN116069628A (zh) | 一种智能处置的软件自动化回归测试方法、系统及设备 | |
CN109582582A (zh) | 一种Web界面的自动化测试方法及系统 |
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 |