CN106294145A - 一种软件测试的方法及软件测试装置 - Google Patents
一种软件测试的方法及软件测试装置 Download PDFInfo
- Publication number
- CN106294145A CN106294145A CN201610637600.8A CN201610637600A CN106294145A CN 106294145 A CN106294145 A CN 106294145A CN 201610637600 A CN201610637600 A CN 201610637600A CN 106294145 A CN106294145 A CN 106294145A
- Authority
- CN
- China
- Prior art keywords
- case
- business
- software
- encapsulated
- script
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种软件测试的方法,包括:获取待检测软件的用户界面UI元素;将所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;当检测到所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;通过所述第二用例脚本对所述待检测软件进行UI自动化测试。本发明实施例还提供了一种软件测试装置。本发明实施例可以将UI元素模块化处理,可以实现在UI元素发生变更时,只需要更改该UI元素所在的用例即可,无需对整个执行脚本,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种软件测试的方法及软件测试装置。
背景技术
软件测试是软件开发过程中不可缺少的,由测试工具按照一定的测试方案和流程进行测试操作,其目的是发现潜伏在软件中的缺陷,减少软件开发和维护成本,促进软件质量提升。在各类型的自动化软件测试中,最接近用户需求的软件测试是与用户交互相关的,即用户界面(英文全称:User Interface,英文缩写:UI)自动化测试。
当前互联网测试中,针对软件功能的测试已开始使用UI执行脚本模拟用户行为。可以根据不同的需求,选择一种适合软件自身需要的UI执行框架来实现UI自动化测试,每种执行框架均对应有自身的执行脚本。
由于被测试的UI经常会发生变更,然而每一套UI执行框架都对应自身的执行脚本,不同执行脚本的编写语言和规范各不相同。当选择不同的UI执行框架进行UI自动化测试时,也就需要预先编写多个执行脚本。而且随着技术日新月异,新的UI执行框架层出不穷,许多积累的执行脚本可能会遭到丢弃,而开发人员又需要为新的UI执行框架从头开始编写新的执行脚本。为了编写多个执行脚本,不但浪费了执行脚本开发开销,同时也增加了执行脚本维护难度。
发明内容
本发明实施例提供了一种软件测试的方法及软件测试装置,可以将UI元素模块化处理,可以实现在UI元素发生变更时,只需要更改该UI元素所在的用例即可,无需对整个执行脚本,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
有鉴于此,本发明第一方面提供一种软件测试的方法,包括:
获取待检测软件的用户界面UI元素;
将所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
当检测到所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
通过所述第二用例脚本对所述待检测软件进行UI自动化测试。
结合本发明实施例的第一方面,在第一种可能的实现方式中,所述获取待检测软件的用户界面UI元素之后,所述方法还包括:
根据所述UI元素,确定所述UI元素对应的元素类型;
所述将所述UI元素封装为至少一个用例,包括:
按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例。
结合本发明实施例的第一方面第一种可能实现方式,在第二种可能的实现方式中,所述元素类型包括业务关键字;
所述按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例,包括:
检测所述UI元素中的所述业务关键字,所述业务关键字用于指示执行目标业务的操作;
将所述业务关键字相同的所述UI封装为第一用例。
结合本发明实施例的第一方面第一种可能实现方式,在第三种可能的实现方式中,所述元素类型包括业务场景;
所述按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例,包括:
检测所述UI元素中的所述业务场景,所述业务场景用于指示所述目标业务的执行环境;
将所述业务场景相同的所述UI封装为第二用例。
结合本发明实施例的第一方面第一种可能实现方式,在第四种可能的实现方式中,所述元素类型包括业务断言;
所述按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例,包括:
检测所述UI元素中的所述业务断言,所述业务断言用于指示执行所述目标业务的预设条件;
将所述业务断言相同的所述UI封装为第三用例。
本发明第二方面提供一种软件测试装置,包括:
获取模块,用于获取待检测软件的用户界面UI元素;
封装模块,用于将所述获取模块获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块,用于当检测到所述封装模块封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块,用于通过所述生成模块生成的所述第二用例脚本对所述待检测软件进行UI自动化测试。
结合本发明实施例的第二方面,在第一种可能的实现方式中,所述软件测试装置还包括:
确定模块,用于所述获取模块获取待检测软件的用户界面UI元素之后,根据所述UI元素,确定所述UI元素对应的元素类型;
所述封装模块,包括:
封装单元,用于按照所述确定模块确定的所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例。
结合本发明实施例的第二方面第一种可能实现方式,在第二种可能的实现方式中,所述元素类型包括业务关键字;
所述封装单元包括:
第一检测子单元,用于检测所述UI元素中的所述业务关键字,所述业务关键字用于指示执行目标业务的操作;
第一封装子单元,用于将所述第一检测子单元检测的所述业务关键字相同的所述UI封装为第一用例。
结合本发明实施例的第二方面第一种可能实现方式,在第三种可能的实现方式中,所述元素类型包括业务场景;
所述封装单元包括:
第二检测子单元,用于检测所述UI元素中的所述业务场景,所述业务场景用于指示所述目标业务的执行环境;
第二封装子单元,用于将所述第二检测子单元检测到所述业务场景相同的所述UI封装为第二用例。
结合本发明实施例的第二方面第一种可能实现方式,在第四种可能的实现方式中,所述元素类型包括业务断言;
所述封装单元包括:
第三检测子单元,用于检测所述UI元素中的所述业务断言,所述业务断言用于指示执行所述目标业务的预设条件;
第三封装子单元,用于将所述第三检测子单元检测到所述业务断言相同的所述UI封装为第三用例。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,提供了一种软件测试的方法,首先由软件测试装置获取待检测软件的用户界面UI元素,然后将UI元素封装为至少一个用例,至少一个用例用于生成第一用例脚本,当软件测试装置检测到至少一个用例中的目标用例更新时,修改目标用例,并生成第二用例脚本,最后通过第二用例脚本对待检测软件进行UI自动化测试。通过上述方式将UI元素模块化处理,可以实现在UI元素发生变更时,只需要更改该UI元素所在的用例即可,无需对整个执行脚本,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
附图说明
图1为本发明实施例中软件测试的方法一个实施例示意图;
图2为本发明实施例中软件测试装置一个实施例示意图;
图3为本发明实施例中软件测试装置另一个实施例示意图;
图4为本发明实施例中软件测试装置另一个实施例示意图;
图5为本发明实施例中软件测试装置另一个实施例示意图;
图6为本发明实施例中软件测试装置另一个实施例示意图。
具体实施方式
本发明实施例提供了一种软件测试的方法及软件测试装置,可以将UI元素模块化处理,可以实现在UI元素发生变更时,只需要更改该UI元素所在的用例即可,无需对整个执行脚本,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明中软件测试的方法进行详细描述,请参阅图1,本发明实施例提供的一种软件测试的方法实施例包括:
101、获取待检测软件的用户界面UI元素;
本实施例中,软件测试装置先获取待检测软件的UI元素。
其中,软件是指一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在终端上运行的应用程序,与这些应用程序相关的文档一般也被认为是软件的一部分。
UI元素为待检测软件在编程中的UI设计,UI即泛指用户的操作界面,UI设计主要指界面的样式和美观程度。而使用上,对软件的人机交互、操作逻辑和界面美观的整体设计则是同样重要的另一个门道。
102、将UI元素封装为至少一个用例,至少一个用例用于生成第一用例脚本;
本实施例中,软件测试装置根据UI元素的类型将其进行封装处理,通常情况下,一种UI元素封装为一个用例,这样的话,多种UI元素就可以封装为多个用例,这一个或者多个用例都用于生成第一用例脚本。
其中,用例是统一建模语言或标准建模语言(英文全称:Unified ModelingLanguage,英文缩写:UML)中非常重要的概念,在使用UML的整个软件开发过程中,用例处于一个中心地位。用例是对一组动作序列的抽象描述,系统执行这些动作序列,产生相应的结果。这些结果要么反馈给参与者,要么作为其他用例的参数。
用例可以生成第一用例脚本,用例脚本可以用于执行UI自动化检测。
103、当检测到至少一个用例中的目标用例更新时,修改目标用例,并生成第二用例脚本;
本实施例中,当软件测试装置检测到至少一个用例中存在目标用例需要更新时,直接修改对应的目标用例,从而生成更新后的第二用例脚本。
104、通过第二用例脚本对待检测软件进行UI自动化测试。
本实施例中,软件测试装置利用第二用例脚本对待检测软件进行UI自动化测试。
本发明实施例中,提供了一种软件测试的方法,首先由软件测试装置获取待检测软件的用户界面UI元素,然后将UI元素封装为至少一个用例,至少一个用例用于生成第一用例脚本,当软件测试装置检测到至少一个用例中的目标用例更新时,修改目标用例,并生成第二用例脚本,最后通过第二用例脚本对待检测软件进行UI自动化测试。通过上述方式将UI元素模块化处理,可以实现在UI元素发生变更时,只需要更改该UI元素所在的用例即可,无需对整个执行脚本,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的软件测试的方法第一个可选实施例中,获取待检测软件的用户界面UI元素之后,还可以包括:
根据UI元素,确定UI元素对应的元素类型;
将UI元素封装为至少一个用例,可以包括:
按照UI元素对应的元素类型,将UI元素封装为至少一个用例。
本实施例中,软件测试装置在获取待检测软件的UI元素后,可以根据UI元素先确定其元素类型,然后按照UI元素的元素类型将UI元素封装为至少一个用例。
具体地,UI元素可以分为多种元素类型,例如元素类型A、元素类型B、元素类型C和元素类型D,于是可以元素类型A封装为用例1,将元素类型B封装为用例2,将元素类型C封装为用例3,而将元素类型D封装为用例4。
其次,本发明实施例中,软件测试装置获取待检测软件的用户界面UI元素所对应的元素用例之后,可以按照UI元素对应的元素类型,将UI元素封装为至少一个用例。通过上述方式,可以更为准确地将UI元素进行模块化处理,使得方案具有实现的依据,从而提升方案的实用性和可行性。
可选地,在上述图1对应的第一个实施例的基础上,本发明实施例提供的软件测试的方法第二个可选实施例中,元素类型包括业务关键字;
按照UI元素对应的元素类型,将UI元素封装为至少一个用例,可以包括:
检测UI元素中的业务关键字,业务关键字用于指示执行目标业务的操作;
将业务关键字相同的UI元素封装为第一用例。
本实施例中,元素类型可以包括业务关键字,于是将UI元素中的业务关键字封装为第一用例,其中,业务关键字用于指示执行目标业务的操作。
具体地,以采用通话软件拨打电话的流程为例进行介绍,将采用该通话软件拨打电话的流程可以拆解为以下三个业务步骤,即为“进入拨号盘”、“输入号码”以及“点击拨号按钮”,于是这三个业务步骤便是业务关键字,将这三个步骤封装为第一用例,当其中某个步骤需要改变时,即对第一用例进行修改即可。
其中,业务关键字用于指示执行目标业务的操作,即进行某项业务时所需要的操作步骤。
再次,本发明实施例中,软件测试装置检测UI元素中的业务关键字,然后将业务关键字相同的UI元素元素封装为第一用例。通过上述方式,将执行某项目标业务操作的业务关键字封装在一个用例中,便于在目标业务操作中某个操作或者某些操作发生变化时,无需更改整个用例脚本,只需要针对对应的一个用例做修改即可,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
可选地,在上述图1对应的第一个实施例的基础上,本发明实施例提供的软件测试的方法第三个可选实施例中,元素类型包括业务场景;
按照UI元素对应的元素类型,将UI元素封装为至少一个用例,可以包括:
检测UI元素中的所述业务场景,业务场景用于指示目标业务的执行环境;
将业务场景相同的UI元素封装为第二用例。
本实施例中,元素类型可以包括业务场景,于是将UI元素中的业务场景封装为第二用例,其中,业务场景用于指示目标业务的执行环境。
具体地,以目标业务为即时通信类业务为例,那么其业务场景的类型可以为图片传输业务、文字传输业务、视频传输业务以及语音传输业务。于是将这些业务场景封装在第二用例中,当其中某个业务场景或者某些业务场景发生变化时,即对第二用例进行修改即可。
其中,业务场景用于指示目标业务的执行环境,即进行这项目标业务可能会出现的场景。
再次,本发明实施例中,软件测试装置检测UI元素中的业务场景,然后将业务场景相同的UI元素元素封装为第二用例。通过上述方式,将执行某项目标业务的业务场景封装在一个用例中,便于当目标业务的业务场景中某个业务场景发生变化时,无需更改整个用例脚本,只需要针对对应的一个用例做修改即可,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
可选地,在上述图1对应的第一个实施例的基础上,本发明实施例提供的软件测试的方法第四个可选实施例中,元素类型包括业务断言;
按照UI元素对应的元素类型,将UI元素封装为至少一个用例,可以包括:
检测UI元素中的业务断言,业务断言用于指示执行目标业务的预设条件;
将业务断言相同的UI元素封装为第三用例。
本实施例中,元素类型可以包括业务断言,于是将UI元素中的业务断言封装为第三用例,其中,业务断言用于指示执行目标业务的预设条件。
具体地,以目标业务为拨打电话的业务为例,而业务断言为打电话成功的前置条件为手机里需要有客户识别模块(英文全称:Subscriber Identification Module,英文缩写:SIM),于是,存在默认的SIM便是业务断言。将这些业务断言封装在第三用例中。当其中某个业务断言或者某些业务断言发生变化时,即对第三用例进行修改即可。
其中,业务断言用于指示执行目标业务的预设条件,即进行这项目标业务需要的必要条件或者是可行的条件。
再次,本发明实施例中,软件测试装置检测UI元素中的业务断言,然后将业务断言相同的UI元素封装为第三用例。通过上述方式,将执行某项目标业务的业务断言封装在一个用例中,便于在业务断言中某个业务条件或者某些业务条件发生变化时,无需更改整个用例脚本,只需要针对对应的一个用例做修改即可,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
下面对本发明中软件测试方法中的软件测试装置进行详细描述,请参阅图2,本发明实施例中的软件测试装置包括:
获取模块201,用于获取待检测软件的用户界面UI元素;
封装模块202,用于将所述获取模块201获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块203,用于当检测到所述封装模块202封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块204,用于通过所述生成模块203生成的所述第二用例脚本对所述待检测软件进行UI自动化测试。
本实施例中,获取模块201获取待检测软件的用户界面UI元素,封装模块202将所述获取模块201获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本,当检测到所述封装模块202封装的所述至少一个用例中的目标用例更新时,生成模块203修改所述目标用例,并生成第二用例脚本,测试模块204通过所述生成模块203生成的所述第二用例脚本对所述待检测软件进行UI自动化测试。
本发明实施例中,提供了一种软件测试装置,首先由软件测试装置获取待检测软件的用户界面UI元素,然后将UI元素封装为至少一个用例,至少一个用例用于生成第一用例脚本,当软件测试装置检测到至少一个用例中的目标用例更新时,修改目标用例,并生成第二用例脚本,最后通过第二用例脚本对待检测软件进行UI自动化测试。通过上述方式将UI元素模块化处理,可以实现在UI元素发生变更时,只需要更改该UI元素所在的用例即可,无需对整个执行脚本,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
请参阅图3,本发明实施例中软件测试装置的另一个实施例包括:
获取模块201,用于获取待检测软件的用户界面UI元素;
确定模块205,用于所述获取模块201获取待检测软件的用户界面UI元素之后,根据所述UI元素,确定所述UI元素对应的元素类型;
封装模块202,用于将所述获取模块201获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块203,用于当检测到所述封装模块202封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块204,用于通过所述生成模块203生成的所述第二用例脚本对所述待检测软件进行UI自动化测试;
其中,所述封装模块202包括:
封装单元2021,用于按照所述确定模块205确定的所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例。
其次,本发明实施例中,软件测试装置获取待检测软件的用户界面UI元素所对应的元素用例之后,可以按照UI元素对应的元素类型,将UI元素封装为至少一个用例。通过上述方式,可以更为准确地将UI元素进行模块化处理,使得方案具有实现的依据,从而提升方案的实用性和可行性。
请参阅图4,本发明实施例中软件测试装置的另一个实施例包括:
获取模块201,用于获取待检测软件的用户界面UI元素;
确定模块205,用于所述获取模块201获取待检测软件的用户界面UI元素之后,根据所述UI元素,确定所述UI元素对应的元素类型;
封装模块202,用于将所述获取模块201获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块203,用于当检测到所述封装模块202封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块204,用于通过所述生成模块203生成的所述第二用例脚本对所述待检测软件进行UI自动化测试;
其中,所述封装模块202包括:
封装单元2021,用于按照所述确定模块205确定的所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例;
所述封装单元2021包括:
第一检测子单元20211,用于检测所述UI元素中的所述业务关键字,所述业务关键字用于指示执行目标业务的操作;
第一封装子单元20212,用于将所述第一检测子单元20211检测的所述业务关键字相同的所述UI封装为第一用例。
再次,本发明实施例中,软件测试装置检测UI元素中的业务关键字,然后将业务关键字相同的UI元素元素封装为第一用例。通过上述方式,将执行某项目标业务操作的业务关键字封装在一个用例中,便于在目标业务操作中某个操作或者某些操作发生变化时,无需更改整个用例脚本,只需要针对对应的一个用例做修改即可,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
请参阅图5,本发明实施例中软件测试装置的另一个实施例包括:
获取模块201,用于获取待检测软件的用户界面UI元素;
确定模块205,用于所述获取模块201获取待检测软件的用户界面UI元素之后,根据所述UI元素,确定所述UI元素对应的元素类型;
封装模块202,用于将所述获取模块201获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块203,用于当检测到所述封装模块202封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块204,用于通过所述生成模块203生成的所述第二用例脚本对所述待检测软件进行UI自动化测试;
其中,所述封装模块202包括:
封装单元2021,用于按照所述确定模块205确定的所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例;
所述封装单元2021包括:
第二检测子单元20213,用于检测所述UI元素中的所述业务场景,所述业务场景用于指示所述目标业务的执行环境;
第二封装子单元20214,用于将所述第二检测子单元20213检测到所述业务场景相同的所述UI封装为第二用例。
再次,本发明实施例中,软件测试装置检测UI元素中的业务场景,然后将业务场景相同的UI元素元素封装为第二用例。通过上述方式,将执行某项目标业务的业务场景封装在一个用例中,便于当目标业务的业务场景中某个业务场景发生变化时,无需更改整个用例脚本,只需要针对对应的一个用例做修改即可,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
请参阅图6,本发明实施例中软件测试装置的另一个实施例包括:
获取模块201,用于获取待检测软件的用户界面UI元素;
确定模块205,用于所述获取模块201获取待检测软件的用户界面UI元素之后,根据所述UI元素,确定所述UI元素对应的元素类型;
封装模块202,用于将所述获取模块201获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块203,用于当检测到所述封装模块202封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块204,用于通过所述生成模块203生成的所述第二用例脚本对所述待检测软件进行UI自动化测试;
其中,所述封装模块202包括:
封装单元2021,用于按照所述确定模块205确定的所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例;
所述封装单元2021包括:
第三检测子单元20215,用于检测所述UI元素中的所述业务断言,所述业务断言用于指示执行所述目标业务的预设条件;
第三封装子单元20216,用于将所述第三检测子单元20215检测到所述业务断言相同的所述UI封装为第三用例。
再次,本发明实施例中,软件测试装置检测UI元素中的业务断言,然后将业务断言相同的UI元素封装为第三用例。通过上述方式,将执行某项目标业务的业务断言封装在一个用例中,便于在业务断言中某个业务条件或者某些业务条件发生变化时,无需更改整个用例脚本,只需要针对对应的一个用例做修改即可,以此降低了执行脚本的开发开销,缓解了执行脚本维护难度。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种软件测试的方法,其特征在于,包括:
获取待检测软件的用户界面UI元素;
将所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
当检测到所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
通过所述第二用例脚本对所述待检测软件进行UI自动化测试。
2.根据权利要求1所述的方法,其特征在于,所述获取待检测软件的用户界面UI元素之后,所述方法还包括:
根据所述UI元素,确定所述UI元素对应的元素类型;
所述将所述UI元素封装为至少一个用例,包括:
按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例。
3.根据权利要求2所述的方法,其特征在于,所述元素类型包括业务关键字;
所述按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例,包括:
检测所述UI元素中的所述业务关键字,所述业务关键字用于指示执行目标业务的操作;
将所述业务关键字相同的所述UI封装为第一用例。
4.根据权利要求2所述的方法,其特征在于,所述元素类型包括业务场景;
所述按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例,包括:
检测所述UI元素中的所述业务场景,所述业务场景用于指示所述目标业务的执行环境;
将所述业务场景相同的所述UI封装为第二用例。
5.根据权利要求2所述的方法,其特征在于,所述元素类型包括业务断言;
所述按照所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例,包括:
检测所述UI元素中的所述业务断言,所述业务断言用于指示执行所述目标业务的预设条件;
将所述业务断言相同的所述UI封装为第三用例。
6.一种软件测试装置,其特征在于,包括:
获取模块,用于获取待检测软件的用户界面UI元素;
封装模块,用于将所述获取模块获取的所述UI元素封装为至少一个用例,所述至少一个用例用于生成第一用例脚本;
生成模块,用于当检测到所述封装模块封装的所述至少一个用例中的目标用例更新时,修改所述目标用例,并生成第二用例脚本;
测试模块,用于通过所述生成模块生成的所述第二用例脚本对所述待检测软件进行UI自动化测试。
7.根据权利要求6所述的软件测试装置,其特征在于,所述软件测试装置还包括:
确定模块,用于所述获取模块获取待检测软件的用户界面UI元素之后,根据所述UI元素,确定所述UI元素对应的元素类型;
所述封装模块,包括:
封装单元,用于按照所述确定模块确定的所述UI元素对应的元素类型,将所述UI元素封装为所述至少一个用例。
8.根据权利要求7所述的软件测试装置,其特征在于,所述元素类型包括业务关键字;
所述封装单元包括:
第一检测子单元,用于检测所述UI元素中的所述业务关键字,所述业务关键字用于指示执行目标业务的操作;
第一封装子单元,用于将所述第一检测子单元检测的所述业务关键字相同的所述UI封装为第一用例。
9.根据权利要求7所述的软件测试装置,其特征在于,所述元素类型包括业务场景;
所述封装单元包括:
第二检测子单元,用于检测所述UI元素中的所述业务场景,所述业务场景用于指示所述目标业务的执行环境;
第二封装子单元,用于将所述第二检测子单元检测到所述业务场景相同的所述UI封装为第二用例。
10.根据权利要求7所述的软件测试装置,其特征在于,所述元素类型包括业务断言;
所述封装单元包括:
第三检测子单元,用于检测所述UI元素中的所述业务断言,所述业务断言用于指示执行所述目标业务的预设条件;
第三封装子单元,用于将所述第三检测子单元检测到所述业务断言相同的所述UI封装为第三用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610637600.8A CN106294145A (zh) | 2016-08-05 | 2016-08-05 | 一种软件测试的方法及软件测试装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610637600.8A CN106294145A (zh) | 2016-08-05 | 2016-08-05 | 一种软件测试的方法及软件测试装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294145A true CN106294145A (zh) | 2017-01-04 |
Family
ID=57665601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610637600.8A Pending CN106294145A (zh) | 2016-08-05 | 2016-08-05 | 一种软件测试的方法及软件测试装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294145A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413524A (zh) * | 2019-07-26 | 2019-11-05 | 中国工商银行股份有限公司 | 用于生成测试脚本的方法和装置、自动化测试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851664A (zh) * | 2005-09-08 | 2006-10-25 | 华为技术有限公司 | 一种关键字驱动的导航方法 |
CN101141767A (zh) * | 2007-10-10 | 2008-03-12 | 中兴通讯股份有限公司 | 一种网络管理平台测试系统及方法 |
CN102495789A (zh) * | 2011-10-18 | 2012-06-13 | 瑞斯康达科技发展股份有限公司 | 一种自动化测试方法和设备 |
CN105204991A (zh) * | 2015-08-28 | 2015-12-30 | 青岛海尔智能家电科技有限公司 | 一种物联设备测试方法及装置 |
-
2016
- 2016-08-05 CN CN201610637600.8A patent/CN106294145A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851664A (zh) * | 2005-09-08 | 2006-10-25 | 华为技术有限公司 | 一种关键字驱动的导航方法 |
CN101141767A (zh) * | 2007-10-10 | 2008-03-12 | 中兴通讯股份有限公司 | 一种网络管理平台测试系统及方法 |
CN102495789A (zh) * | 2011-10-18 | 2012-06-13 | 瑞斯康达科技发展股份有限公司 | 一种自动化测试方法和设备 |
CN105204991A (zh) * | 2015-08-28 | 2015-12-30 | 青岛海尔智能家电科技有限公司 | 一种物联设备测试方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413524A (zh) * | 2019-07-26 | 2019-11-05 | 中国工商银行股份有限公司 | 用于生成测试脚本的方法和装置、自动化测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679532B (zh) | 内核模块加载方法和装置 | |
CN107797826B (zh) | 一种基于规则引擎的规则配置方法、终端以及设备 | |
CN107911487A (zh) | 信息推送方法、装置、服务器及可读存储介质 | |
CN100362479C (zh) | 基于自动化测试脚本对被测对象进行测试的方法和系统 | |
CN108804188A (zh) | 界面换肤方法及装置 | |
CN101963915A (zh) | 一种编译的构建方法及系统 | |
CN109039751A (zh) | 配置路由的方法、装置、计算机设备和存储介质 | |
CN106326099B (zh) | 一种用于程序跟踪的方法、装置及电子设备 | |
CN103176892A (zh) | 一种页面监控方法及系统 | |
CN112433944A (zh) | 业务测试方法、装置、计算机设备和存储介质 | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN106021101A (zh) | 对移动终端进行测试的方法及装置 | |
CN110502362A (zh) | 基于微服务架构的错误码定义方法、装置和计算机设备 | |
CN108984721A (zh) | 垃圾账号的识别方法和装置 | |
CN109361628A (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN109408032A (zh) | 一种bios客制化快速实现方法、装置、终端及存储介质 | |
CN102982217B (zh) | 丝印的处理方法和装置 | |
CN106294129A (zh) | 代码覆盖率测试方法及装置 | |
US20120204157A1 (en) | Quicker Translation of a Computer Program Source Code | |
CN107357721B (zh) | 测试系统的方法及装置 | |
CN103049374A (zh) | 一种自动化测试的方法及装置 | |
CN105094776A (zh) | 列表的处理方法和设备 | |
CN110019260B (zh) | 一种用户数据的更新方法及相关设备 | |
CN106126425A (zh) | 基于Android自动化测试框架的功能遍历方法及系统 | |
CN106294145A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |