软件自动化测试方法和装置制造方法

文档序号:6629284阅读:277来源:国知局
软件自动化测试方法和装置制造方法
【专利摘要】一种软件自动化测试方法和装置,其中,所述方法包括:通过将软件的界面元素的标识信息与预设类型信息进行比较,识别软件的界面元素的类型是简单型界面元素或复杂型界面元素;调用测试方法集对简单型界面元素的标识信息所对应的控件进行测试;计算当前测试环境相对于预设的标准测试环境的位置偏差,获取复杂型界面元素在测试系统界面上的位置;根据复杂型界面元素在测试系统界面上的位置,对复杂型界面元素所对应的控件进行测试。通过所述方法和装置,可以提高自动化测试的效率以及准确性。
【专利说明】软件自动化测试方法和装置

【技术领域】
[0001]本发明涉及软件测试【技术领域】,尤其涉及一种软件自动化测试方法和装置。

【背景技术】
[0002]随着信息技术产业的发展以及企业规模的扩大,传统仅依靠人力来对产品进行测试已经渐渐显得力不从心,难以满足测试要求,同时又会导致资源浪费。因此,自动化测试已经在越来越多的研发公司里得到重视,例如通过Web浏览器自动登录系统,并自动调用或触发软件功能控件对系统进行测试。尽管目前自动化测试还无法完全取代人工测试,但两者的结合已经可以在很大程度上提高测试效率。
[0003]目前已有越来越多的自动化测试技术运用而生,例如在了解被测试系统的图形用户界面(Graphical User Interface,⑶I)相关内部代码的基础上,利用应用程序接口(Applicat1n Programming Interface,API)进行自动化测试。或者还可以根据GUI界面上的图像元素来进行自动化测试操作。
[0004]然而上述的自动化测试方法都存在各自的缺陷。通过API进行自动化测试的测试方法,当控件的结构较复杂时,需要编写的测试代码也会非常复杂。而采用根据GUI界面上的图像元素来进行自动化测试操作,则受测试环境影响较大。如果测试环境变化,会直接影响测试的准确性。这些问题都会进而影响到测试的效率。


【发明内容】

[0005]本发明解决的问题是如何提高自动化测试的效率以及准确性。
[0006]为解决上述问题,本发明实施例提供一种软件自动化测试方法,包括:通过将所述软件的界面元素的标识信息与预设类型信息进行比较,识别所述软件的界面元素的类型是简单型界面元素或复杂型界面元素;调用测试方法集对所述简单型界面元素的标识信息所对应的控件进行测试;计算当前测试环境相对于预设的标准测试环境的位置偏差,获取所述复杂型界面元素在所述测试系统界面上的位置;根据所述复杂型界面元素在所述测试系统界面上的位置,对所述复杂型界面元素所对应的控件进行测试。
[0007]可选的,所述软件的界面元素的标识信息为通过所述软件的应用程序接口获取。
[0008]可选的,所述计算当前测试环境相对于预设的标准测试环境的位置偏差包括:获取标准测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置;获取当前测试环境下的浏览器信息以及分辨率信息;通过对比当前测试环境下的浏览器信息、分辨率信息以及所述标准测试环境下的浏览器信息、分辨率信息,计算得到所述复杂型界面元素的坐标位置的偏差值。
[0009]可选的,所述获取所述复杂型界面元素在所述测试系统界面上的位置后还包括:存储当前测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置。
[0010]可选的,所述对所述复杂型界面元素所对应的控件进行测试包括:调用测试方法集,通过模拟鼠标操作、模拟键盘操作,或同时模拟鼠标和键盘操作,对所述复杂型界面元素所对应的控件进行测试。
[0011]为了解决上述的技术方案,本发明实施例还提供了一种软件自动化测试装置,包括:比较单元,用于将所述软件的界面元素的标识信息与预设类型信息进行比较;识别单元,用于根据所述比较单元的比较结果,识别所述软件的界面元素的类型是简单型界面元素或复杂型界面元素第一测试单元,用于调用测试方法集对所述简单型界面元素的标识信息所对应的控件进行测试;计算单元,用于计算当前测试环境相对于预设的标准测试环境的位置偏差,获取所述复杂型界面元素在所述测试系统界面上的位置;第二测试单元,根据所述复杂型界面元素在所述测试系统界面上的位置,对所述复杂型界面元素所对应的控件进行测试。
[0012]可选的,所述软件的界面元素的标识信息为通过所述软件的应用程序接口获取。
[0013]可选的,所述计算单元包括:第一获取子单元,用于获取标准测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置;第二获取子单元,用于获取当前测试环境下的浏览器信息以及分辨率信息;计算子单元,用于通过对比当前测试环境下的浏览器信息、分辨率信息以及所述标准测试环境下的浏览器信息、分辨率信息,计算得到所述复杂型界面元素的坐标位置的偏差值。
[0014]可选的,所述软件自动化测试装置还包括:存储单元,用于存储当前测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置。
[0015]可选的,所述第二测试单元,用于通过调用测试方法集,通过模拟鼠标操作、模拟键盘操作,或同时模拟鼠标和键盘操作,对所述复杂型界面元素所对应的控件进行测试。
[0016]与现有技术相比,本发明实施例的技术方案具有以下优点:
[0017]通过区分被测试软件的界面元素的类型特征,对不同类型的界面元素分类测试。具体来说,对于简单、通用、固定化的控件,通过传统的测试方法进行测试;而对于层次复杂的控件,通过坐标定位来获取控件在界面的坐标位置,从而执行相应的测试操作。通过结合传统自动化测试的准确快速获取简单控件的优点,以及坐标定位将复杂控件简单化的优点,提高了自动化测试的效率以及准确性。
[0018]进一步,通过存储不同测试环境下复杂型界面元素的位置,这样如果在记录的测试环境中进行测试,则不需要重新计算偏移,从而提高了测试的效率。

【专利附图】

【附图说明】
[0019]图1是本发明实施例中一种软件自动化测试方法的流程图;
[0020]图2是本发明实施例中一种软件自动化测试装置的结构示意图。

【具体实施方式】
[0021]在现有的软件自动化测试技术中,大多数针对GUI的自动化测试都是在了解GUI相关内部代码实现的基础上,通过底层相配套的API,来识别和获取界面的元素对象,从而对界面上的元素进行相关的操作。这种方法可以根据元素的ID信息较准确地获取对应的控件,但是如果碰到设计较为个性化或层次结构复杂的控件,为了获取这种特定的元素,就需要编写较为复杂的代码,并且这些控件结构一旦发生改变,原先的测试代码也需要重写。有时甚至还可能出现由于代码结构复杂,即便能够获取该图像元素,也无法对其进行相应操作的情况。
[0022]目前也有自动化测试方法是根据界面图像元素来执行上述获取元素的操作,但是并没有考虑浏览器和显示器分辨率不同的测试环境因素。这些因素的改变将会直接影响到自动化测试结果的准确性。为了解决这个问题,现有的方法是针对不同的测试环境分别开发一套不同的自动化测试工具包。但这样会造成资源的冗余浪费,而且使用时容易产生混舌L。
[0023]本发明实施例通过区分被测试软件的界面元素的类型特征,对不同类型的界面元素分类测试。具体来说,对于简单、通用、固定化的控件,通过传统的测试方法进行测试;而对于层次复杂的控件,通过坐标定位来获取控件在界面的坐标位置,从而执行相应的测试操作。通过结合传统自动化测试的准确快速获取简单控件的优点,以及坐标定位将复杂控件简单化的优点,提高了自动化测试的效率以及准确性。
[0024]为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0025]本发明实施例提供了一种软件自动化测试方法。参照图1,以下通过具体步骤对本发明实施例进行详细说明。
[0026]步骤S101,识别所述软件的界面元素的类型是简单型界面元素或复杂型界面元素。
[0027]在具体实施中,所述软件自动化测试可以通过web测试方式,对所述软件的界面进行测试。例如,可采用Webdriver测试平台,通过浏览器,模拟用户进行点击,信息输入等操作,完成测试相应控件功能的目的。
[0028]在具体实施中,所述软件的界面元素的标识信息可以通过所述软件的应用程序接口获取。本步骤与现有技术通过API获取界面元素相应组件的方法相同,即根据界面元素相应控件的具体实现,选用与之匹配的底层API,获取界面页面元素的标识信息,如ID信息坐寸ο
[0029]在具体实施中,当得到软件的界面元素的标识信息后,可以通过将所述软件的界面元素的标识信息与预设类型信息进行比较,对软件的界面元素的类型进行识别。
[0030]在具体实施中,软件的每类界面元素都可被预定义一个类型,并且这些类型与界面元素的标识信息的对应关系存储在一个元素类库中。在进行自动化测试的过程中,通过对比所述界面元素的标识符,可以判断其属于哪种类型,从而自动判定出该界面元素是属于简单型元素还是复杂型元素,进而采取相应的获取方式来获取元素并对其进行操作。
[0031]所述复杂型元素是指控件设计较为个性化、层次结构较为复杂的界面元素;而所述简单型元素则相反,指控件简单、通用的界面元素。通过识别界面元素的类型,可以选用相应的测试方法分别进行自动化测试。
[0032]步骤S102,调用测试方法集对所述简单型界面元素的标识信息所对应的控件进行测试。
[0033]在具体实施中,当通过所述步骤SlOl,判定界面元素为简单型界面元素时,即可按照现有技术的测试方法,通过底层API获取界面元素的ID信息后,进一步地调用所述界面元素的控件,并选用相应的测试方法集,如自动化测试工具包,对界面元素的控件执行相应的测试用例。
[0034]步骤S103,获取所述复杂型界面元素在所述测试系统界面上的位置。
[0035]在具体实施中,当通过所述步骤S101,判定界面元素为复杂型界面元素时,可以通过计算当前测试环境相对于预设的标准测试环境的位置偏差,准确地获取复杂型界面元素在测试系统界面上的位置,从而在不直接调用所述界面元素控件的情况下,对所述界面元素进行测试。
[0036]在具体实施中,所述标准测试环境信息可以包括:浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置,记录了所述复杂型图像元素在一种测试环境下的位置信息,例如,浏览器的版本是IE7,分辨率是1280x960,坐标位置是(266,115)。
[0037]在具体实施中,界面元素的标识信息以及所述标准测试环境信息可以共同形成针对一个复杂型元素位置数据的配置文件。当启动测试工具后,会将上述的复杂型元素位置数据的配置文件解析并存储到一个全局的Map集合中,如可以表示为Map〈key, value〉。其中,key表示实施复杂型元素在整个项目中的标识信息,value表示所述标准测试环境信息,可以包括上述的浏览器版本、显示器分辨率和相匹配的坐标位置信息,从而实现元素标识信息和标准测试环境信息的对应。作为一种可选的实施方式,所述复杂型元素位置数据的配置文件可以通过可扩展标记语言(extensible Markup Language, XML)来表示。
[0038]当进行测试初始化时,对于判定为复杂型元素的界面元素,如果当前测试环境下的浏览器版本、显示器分辨率与所述Map集合中的标准环境信息中的浏览器版本、显示器分辨率相同,则不需要计算当前测试环境相对于预设的标准测试环境的位置偏差,直接根据标准测试环境数据信息中的坐标位置信息即可获得所述复杂型元素在界面中的位置。
[0039]如果当前测试环境下的浏览器版本、显示器分辨率与所述Map集合中的标准环境信息中的浏览器版本、显示器分辨率不同,则根据当前测试环境以及标准测试环境中浏览器版本以及显示器分辨率的不同,计算在不同显示界面上显示位置的偏差,即可得到界面元素相对于预设的标准测试环境的位置偏差,从而得到所述复杂型界面元素在所述测试系统界面上的准确坐标位置。
[0040]在上述的具体实施中,对于当前测试环境与标准测试环境不同的情况,在计算得到所述复杂型界面元素在所述测试系统界面上的准确坐标位置后,可以将当前测试环境信息存储到全局的Map集合以及元素位置数据的配置文件中。当下次重新启动时,如果遇到相同的测试环境,即可根据已经计算出的坐标信息,直接获取复杂型元素的坐标位置,而无需再次计算当前测试环境与标准测试环境之间的偏差值,提高了软件自动化测试的效率。
[0041]步骤S104,对所述复杂型界面元素所对应的控件进行测试。
[0042]通过所述步骤S103计算出所述复杂型界面元素在所述测试系统界面上的位置后,就可以调用测试方法集,通过模拟鼠标操作、模拟键盘操作,或同时模拟鼠标和键盘操作,对所述复杂型界面元素所对应的控件进行测试。例如,对按钮控件或下拉列表控件等,模拟进行鼠标点击;对文本框控件,模拟进行键盘输入。
[0043]上述软件自动化测试方法,通过对不同类型的界面元素选择不同的测试方式,将传统自动化测试的准确快速获取简单控件的优点与坐标定位将复杂控件简单化的优点相结合,降低了自动化测试难度,提高了自动化测试的效率。
[0044]本发明实施例还公开了一种与上述软件自动化测试方法相应的软件自动化测试装置。如图2所示,所述软件自动化测试装置20可以包括:
[0045]比较单元201,用于将所述软件的界面元素的标识信息与预设类型信息进行比较;
[0046]识别单元202,用于根据所述比较单元的比较结果,识别所述软件的界面元素的类型是简单型界面元素或复杂型界面元素
[0047]第一测试单元203,用于调用测试方法集对所述简单型界面元素的标识信息所对应的控件进行测试;
[0048]计算单元204,用于计算当前测试环境相对于预设的标准测试环境的位置偏差,获取所述复杂型界面元素在所述测试系统界面上的位置;
[0049]第二测试单元205,根据所述复杂型界面元素在所述测试系统界面上的位置,对所述复杂型界面元素所对应的控件进行测试。
[0050]在具体实施中,所述软件的界面元素的标识信息可以通过所述软件的应用程序接口获取。
[0051]在具体实施中,所述计算单元204可以包括:第一获取子单元,用于获取标准测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置;第二获取子单元,用于获取当前测试环境下的浏览器信息以及分辨率信息;计算子单元,用于通过对比当前测试环境下的浏览器信息、分辨率信息以及所述标准测试环境下的浏览器信息、分辨率信息,计算得到所述复杂型界面元素的坐标位置的偏差值。
[0052]在具体实施中,所述软件自动化测试装置20还可以包括:存储单元,用于存储当前测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置。
[0053]在具体实施中,所述第二测试单元205,用于通过调用测试方法集,通过模拟鼠标操作、模拟键盘操作,或同时模拟鼠标和键盘操作,对所述复杂型界面元素所对应的控件进行测试。
[0054]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0055]虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
【权利要求】
1.一种软件自动化测试方法,其特征在于,包括: 通过将所述软件的界面元素的标识信息与预设类型信息进行比较,识别所述软件的界面元素的类型是简单型界面元素或复杂型界面元素; 调用测试方法集对所述简单型界面元素的标识信息所对应的控件进行测试; 计算当前测试环境相对于预设的标准测试环境的位置偏差,获取所述复杂型界面元素在所述测试系统界面上的位置; 根据所述复杂型界面元素在所述测试系统界面上的位置,对所述复杂型界面元素所对应的控件进行测试。
2.如权利要求1所述的软件自动化测试方法,其特征在于,所述软件的界面元素的标识信息为通过所述软件的应用程序接口获取。
3.如权利要求1所述的软件自动化测试方法,其特征在于,所述计算当前测试环境相对于预设的标准测试环境的位置偏差包括: 获取标准测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置; 获取当前测试环境下的浏览器信息以及分辨率信息; 通过对比当前测试环境下的浏览器信息、分辨率信息以及所述标准测试环境下的浏览器信息、分辨率信息,计算得到所述复杂型界面元素的坐标位置的偏差值。
4.如权利要求3所述的软件自动化测试方法,其特征在于,所述获取所述复杂型界面元素在所述测试系统界面上的位置后还包括: 存储当前测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置。
5.如权利要求1所述的软件自动化测试方法,其特征在于,所述对所述复杂型界面元素所对应的控件进行测试包括: 调用测试方法集,通过模拟鼠标操作、模拟键盘操作,或同时模拟鼠标和键盘操作,对所述复杂型界面元素所对应的控件进行测试。
6.一种软件自动化测试装置,其特征在于,包括: 比较单元,用于将所述软件的界面元素的标识信息与预设类型信息进行比较; 识别单元,用于根据所述比较单元的比较结果,识别所述软件的界面元素的类型是简单型界面元素或复杂型界面元素 第一测试单元,用于调用测试方法集对所述简单型界面元素的标识信息所对应的控件进行测试; 计算单元,用于计算当前测试环境相对于预设的标准测试环境的位置偏差,获取所述复杂型界面元素在所述测试系统界面上的位置; 第二测试单元,根据所述复杂型界面元素在所述测试系统界面上的位置,对所述复杂型界面元素所对应的控件进行测试。
7.如权利要求6所述的软件自动化测试装置,其特征在于,所述软件的界面元素的标识信息为通过所述软件的应用程序接口获取。
8.如权利要求6所述的软件自动化测试装置,其特征在于,所述计算单元包括: 第一获取子单元,用于获取标准测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置; 第二获取子单元,用于获取当前测试环境下的浏览器信息以及分辨率信息; 计算子单元,用于通过对比当前测试环境下的浏览器信息、分辨率信息以及所述标准测试环境下的浏览器信息、分辨率信息,计算得到所述复杂型界面元素的坐标位置的偏差值。
9.如权利要求8所述的软件自动化测试装置,其特征在于,还包括:存储单元,用于存储当前测试环境下的浏览器信息、分辨率信息以及所述复杂型界面元素的坐标位置。
10.如权利要求6所述的软件自动化测试装置,其特征在于,所述第二测试单元,用于通过调用测试方法集,通过模拟鼠标操作、模拟键盘操作,或同时模拟鼠标和键盘操作,对所述复杂型界面元素所对应的控件进行测试。
【文档编号】G06F11/36GK104268083SQ201410522269
【公开日】2015年1月7日 申请日期:2014年9月30日 优先权日:2014年9月30日
【发明者】王雅光, 罗勇, 陈伟 申请人:上海联影医疗科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1