检测web应用自动测试用例中的断裂点的系统和方法技术方案

技术编号:8834189 阅读:149 留言:0更新日期:2013-06-22 20:26
一种用于检测web应用自动测试用例中的断裂点的系统和方法,该系统包括:记录模块,被配置为在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,该web页面输出带有用于标识该web页面输出的注释,以及在该web页面输出中该步所操纵的元素的信息;呈现引擎模块,被配置为在web应用更新后,对于所记录的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;检测模块,被配置为检测所述web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定所述至少一步为断裂点。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,具体涉及web应用测试,更具体涉及一种用于。
技术介绍
对于大多数web应用来说,可构建自动测试脚本以覆盖基本的用户场景。每当开发人员修改某些代码时,例如当发布产品的新版本时,这些脚本或其子集需要重新运行以确保产品的功能仍然是正确的。然而在很多情况下,由于web应用的用户界面(UI)的更改,测试脚本本身已不再有效。也就是说,这些自动测试脚本需要根据开发人员做出的Π更改来进行更新。在目前,开发人对做出的Π更改并不会被同步到自动测试脚本,因此测试人员需要一遍一遍地重新运行自动测试脚本,以在没有任何提示的情况下发现断裂点,并手工将其修复。对于大的项目来说,有可能需要一天多的时间来仅仅发现一自动测试用例中的所有断裂点,更不用说手工纠正它们了。这显然是非常低效的,且也是不准确的。因此,本领域中需要一种用于响应于Π更改而检测自动测试脚本中的断裂点的更准确和有效的方法。
技术实现思路
在本专利技术的一个方面,提供了一种用于检测web应用自动测试用例中的断裂点的系统,包括:记录模块,被配置为在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web页面输出的注释;呈现引擎模块,被配置为在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;检测模块,被配置为检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点。在本专利技术的另一个方面,提供了一种用于检测web应用自动测试用例中的断裂点的方法,包括:在开发环境中向所开发的web页面添加用于标识该web页面的注释;在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及该步所操纵的web页面输出中的元素的信息,其中该web页面输出带有用于标识该web页面输出的注释;在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点。与现有的解决方案相比,本专利技术的主要优点在于:I)它可以直接向测试人员提供关于在UI代码更改后测试脚本中的哪些内容需要更新的完整的指示,使得测试人员不必再一遍一遍地运行测试用例来发现断裂点。2)在一些实施例中,本专利技术的解决方案还可以帮助在一定程度上检查测试用例的覆盖性。例如,如果一个web页面具有导致三个不同路径的不同三个不同的出口点,则本专利技术的解决方案可以帮助检查自动测试脚本池是否覆盖了所有这三个路径。附图说明所附权利要求中阐述了被认为是本专利技术的特点的新颖特征。但是,通过在结合附图阅读时参照下面对说明性实施例的详细说明将最好地理解专利技术本身以及其优选使用模式、另外的目标以及优点,其中:图1示出了本专利技术的解决方案可应用的典型自动测试脚本场景的示例;图2示出了根据本专利技术的实施例的用于检测web应用自动测试用例中的断裂点的系统的整体操作过程的示意图;图3示出了为由多个子web页面组成web页面添加注释的示例;图4示出了本专利技术的系统中的记录模块所记录的测试用例中的一步所对应的web页面输出的副本;图5示出了一个示例性JSP页面的源代码及其作为不同条件判断分支的不同的页面输出;图6示出了本专利技术的系统中的比较模块针对如图5中所示的不同的web页面输出与如图4中所示的web页面输出副本所执行的比较、判断和记录的过程;图7示出了本专利技术的系统中的呈现引擎模块呈现相应的修改后的web页面以及检测模块确定断裂点的过程;图8示出了检测模块生成的关于断裂点的报告的示例;图9示出了根据本专利技术的实施例的用于检测web应用自动测试用例中的断裂点的系统的结构组成;图10示出了根据本专利技术的实施例的用于检测web应用自动测试用例中的断裂点的方法;以及图11示出了适于用来实现本专利技术实施方式的示例性计算系统700的框图。具体实施例方式下面参照附图来说明本专利技术的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本专利技术。但是,对于本
内的技术人员明显的是,本专利技术的实现可不具有这些具体细节中的一些。此外,应当理解的是,本专利技术并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本专利技术,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。图1示出了本专利技术的解决方案可应用的典型自动测试脚本场景的示例。如图所示,该自动测试脚本所测试的web页面输出由JSP页面Homepage, jsp构成,Homepage, jsp包含 Leftnav.jsp 和 Content, jsp。Content, jsp 包含如下 GUI 兀素:标签为 ProjectID、名称为projectID的文本输入框以及标签为Search、id为submit的按钮。用于测试该JSP页面的自动测试脚本中包含分别用于测试该文本输入框和该按钮的测试语句type( xpath=//input[iname = ' projectld] , 12345 )和 click(〃 xpath = //input[iid=丨submit'])。自动测试脚本中的每个测试语句用于执行针对web页面输出中的元素的一个操作,其可以称为自动测试脚本中的步,且每步可以有在该自动测试脚本中唯一的编号。用于检测web应用自动测试用例中的断裂点的系统的整体操作过程图2示出了根据本专利技术的实施例的用于检测web应用自动测试用例中的断裂点的系统的整体操作过程的示意图。如图所示,该操作过程包括如下步骤:1.在web应用的开发阶段,例如在集成开发环境(IDE)中,本专利技术的系统中的注释模块自动在每一个web页面(例如HTML页面或JSP页面)的开头和结尾处添加用于标识该web页面的注释(如果页面中有<html>元素,则注释应当分别位于开头的<html>之后,以及位于结尾的之前)。所述注释例如为HTML注释。注释模块可以根据web页面的名称(通常是用户在创建web页面时指定的)或该web页面的其他标识来生成并添加注释。注释模块例如可以在每当开发人员在IDE中保存web页面文件时,自动在该文件的开头和结尾处添加标识该web页面的注释。由于这种标识是以HTML注释的形式出现的,因此当开发人员在IDE中打开这些文件时,注释是不可见的。对于由多个子web页面(例如JSP文件等)组成的web页面,贝U可以在每一个子web页面的开头和结尾处分别添加标识该子web页面的注释。图3示出了为由多个子web页面组成web页面添加注释的示例。如图所示,该web页面由一标识为frame, jsp的jsp页面构成,该jsp页面包含标识为root_container.jsp的 jsp 页面,而 root_container.jsp 页面又包含了标识为 本文档来自技高网
...

【技术保护点】
一种用于检测web应用自动测试用例中的断裂点的系统,包括:记录模块,被配置为在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web页面输出的注释;呈现引擎模块,被配置为在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;检测模块,被配置为检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点。

【技术特征摘要】
1.一种用于检测web应用自动测试用例中的断裂点的系统,包括: 记录模块,被配置为在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web页面输出的注释; 呈现引擎模块,被配置为在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出; 检测模块,被配置为检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点。2.根据权利要求1的系统,其中,所述检测模块还被配置为在检测结果为否时向用户报告所述被确定的断裂点的相关信息。3.根据权利要求1的系统,还包括: 注释模块,被配置为在开发环境中向所开发的web页面添加用于标识该web页面的注释。4.根据权利要求1的系统,其中, 针对所记录的带有注释的web页面输出,所述呈现引擎模块还被配置为判断带有相同注释的原web页面中是否包含条件判断语句,且响应于该判断为是,通过对条件判断语句中的关键变量取不同值或值范围 来呈现带有相同注释的原web页面的所有可能的web页面输出; 该系统还包括:比较模块,被配置为比较所记录的web页面输出与所呈现的所有可能的web页面输出中的每一个,以找到所呈现的所有可能的web页面输出中与所记录的web页面输出一致的web页面输出,且将所呈现的一致的web页面输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相关联地记录。5.根据权利要求4的系统,其中, 所述呈现引擎模块进一步被配置为:在web应用更新后,对于所记录的测试用例的所述至少一步,使用与该步相关联地记录的关键变量及其值或值范围来呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出。6.根据权利要求4的系统,其中, 所述呈现引擎模块还被配置为: 通过分析所述带有相同注释的原web页面的源代码获得其中包含的循环语句; 对所呈现的所有可能的web页面输出中的由循环语句生成的信息项加上标记。7.根据权利要求6的系统,其中,所述比较模块进一步被配置为: 在比较过程中忽略所呈现的所有可能的web页面输出中的每一个中的具有所述标记的信息项与所记录的web页面输出中的相应信息项。8.根据权利要求4的系统,其中,所述呈现引擎模块进一步被配置为: 在web应用更新后,对于所记录的测试用例的所述至少一步,响应于在带有该步所对应的web页面输出的相同注释的更新后的web页面中与该步相关联地记录的关键变量已被删除,不使用与该步相关联地记录的关键变量及其值或值范围而呈现该更新后的web页面的web页面输出。9.根据权利要求1的系统,其中,所述呈现引擎模块进一步被配置为: 在web应用更新后,对于所记录的测试用例的所述至少一步,响应于在带有该步所对应的web页面输出的相同注释的更新后的web页面中添加了新的关键变量,通过对该新的关键变量取不同的值来呈现该更新后的web页面的所有可能的web页面输出; 且所述检测模块进一步被配置为: 检测所呈现的该更新后的web页面的所有可能的web页面输出中的每一个web页面输出中是否包含所记录的该步所操纵的元素,并在针对所有可能的web页面输出中的任何一个web页面输出的检测结果为否时,确定该步为断裂点。10.根据权利要求4的系统,其中,所述呈现的一致的web页面输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相关联地被记录在条件映射数据库中; 且该系统还包括覆盖性确定模块,被配置为通过查询所述条件映射数据库确定测试用例的覆盖性。11.一种用于检测web应用自动测试用例中的断裂点的方法,包括: 在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web...

【专利技术属性】
技术研发人员:周登朋王佳烨刘西西胡长春
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1