首页> 中国专利> 检测web应用自动测试用例中的断裂点的系统和方法

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

摘要

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

著录项

  • 公开/公告号CN103164334A

    专利类型发明专利

  • 公开/公告日2013-06-19

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201110427398.3

  • 发明设计人 周登朋;王佳烨;刘西西;胡长春;

    申请日2011-12-19

  • 分类号G06F11/36;

  • 代理机构北京市中咨律师事务所;

  • 代理人张亚非

  • 地址 美国纽约

  • 入库时间 2024-02-19 19:24:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-30

    授权

    授权

  • 2013-07-24

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20111219

    实质审查的生效

  • 2013-06-19

    公开

    公开

说明书

技术领域

本发明涉及数据处理领域,具体涉及web应用测试,更具体涉及一种 用于检测web应用自动测试用例中的断裂点的系统和方法。

背景技术

对于大多数web应用来说,可构建自动测试脚本以覆盖基本的用户场 景。每当开发人员修改某些代码时,例如当发布产品的新版本时,这些脚 本或其子集需要重新运行以确保产品的功能仍然是正确的。然而在很多情 况下,由于web应用的用户界面(UI)的更改,测试脚本本身已不再有效。 也就是说,这些自动测试脚本需要根据开发人员做出的UI更改来进行更 新。在目前,开发人对做出的UI更改并不会被同步到自动测试脚本,因 此测试人员需要一遍一遍地重新运行自动测试脚本,以在没有任何提示的 情况下发现断裂点,并手工将其修复。对于大的项目来说,有可能需要一 天多的时间来仅仅发现一自动测试用例中的所有断裂点,更不用说手工纠 正它们了。这显然是非常低效的,且也是不准确的。

因此,本领域中需要一种用于响应于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页面输出中是否包含所 记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点。

与现有的解决方案相比,本发明的主要优点在于:

1)它可以直接向测试人员提供关于在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[name=′projectId]″,″12345″)和click(″xpath=// input[id=′submit′]″)。自动测试脚本中的每个测试语句用于执行针对web 页面输出中的元素的一个操作,其可以称为自动测试脚本中的步,且每步 可以有在该自动测试脚本中唯一的编号。

用于检测web应用自动测试用例中的断裂点的系统的整体操作过程

图2示出了根据本发明的实施例的用于检测web应用自动测试用例 中的断裂点的系统的整体操作过程的示意图。如图所示,该操作过程包 括如下步骤:

1.在web应用的开发阶段,例如在集成开发环境(IDE)中,本发明 的系统中的注释模块自动在每一个web页面(例如HTML页面或JSP页 面)的开头和结尾处添加用于标识该web页面的注释(如果页面中有 <html>元素,则注释应当分别位于开头的<html>之后,以及位于结尾的 </html>之前)。所述注释例如为HTML注释。注释模块可以根据web页 面的名称(通常是用户在创建web页面时指定的)或该web页面的其他标 识来生成并添加注释。注释模块例如可以在每当开发人员在IDE中保存 web页面文件时,自动在该文件的开头和结尾处添加标识该web页面的注 释。由于这种标识是以HTML注释的形式出现的,因此当开发人员在IDE 中打开这些文件时,注释是不可见的。

对于由多个子web页面(例如JSP文件等)组成的web页面,则可 以在每一个子web页面的开头和结尾处分别添加标识该子web页面的注 释。

图3示出了为由多个子web页面组成web页面添加注释的示例。如 图所示,该web页面由一标识为frame.jsp的jsp页面构成,该jsp页面包 含标识为root_container.jsp的jsp页面,而root_container.jsp页面又包含 了标识为left_nav.jsp和main.jsp的jsp页面。本发明的系统中的注释模块 自动在每个jsp页面的开头和结尾添加了包含其标识的注释。例如<!-start frame.jsp-->和<!-end frame.jsp>为所添加的一对注释,其标识了jsp页面 frame.jsp,并被添加在该页面的开头和结尾处。

当然,也有可能在web应用的开发阶段完成后等其他时间向web页面 添加注释。

2.在web应用的测试阶段,测试人员构建针对web页面的一组测试 用例,每个测试用例通常用于针对一个web页面输出中的元素进行测试, 例如,一个测试用例用于通过操纵某一个web页面输出中的元素A(以及 其他元素)进行测试。

3.当测试人员通过针对web应用运行测试用例进行测试时,在测试 用例的各步,本发明的系统中的记录模块记录该测试用例的该步与其所操 纵的web页面输出中的元素之间的映射关系(可称为元素映射关系)。该 元素映射关系例如可被存储在一元素映射数据库中。在该元素映射数据库 中,主键可以为测试用例的标识以及测试用例中的步的编号,且可以在每 一行记录该测试用例中的该步所操纵的web页面输出的标识(例如上述 web页面的注释;由于web页面输出是由web页面生成的,因此两者的标 识是一致的)及其中的元素的标识。例如,在元素映射数据库的某一行记 录了测试用例的标识为1,步的编号为1,元素的标识为A,web页面输出 的标识为a.jsp,这表明在测试用例1的步1中操纵了web页面输出a.jsp 中的元素A。当然,在该元素映射数据库中还可以记录测试用例中的步所 操作的元素的类型、名称及其他属性。

1’.开发人员通过例如修改web页面中的元素对web应用进行更新。 修改的web页面的标识应当保持不变,以表明该修改的web页面是具有相 同标识的原web页面的更新页面。

2’.在开发人员对web应用进行更新之后,本发明的系统中的呈现引 擎模块呈现(render)修改后的web页面。呈现引擎模块可针对在上述步 骤3中所记录的元素映射关系中的每一个测试用例的每一步,呈现具有与 该步所对应的web页面相同的注释的修改后的web页面,从而生成修改后 的web页面输出(对web页面进行呈现的结果可称为web页面输出)。

在web页面包含诸如JSP等动态内容的情况下,呈现包括执行web 页面中的JSP等动态内容的代码,从而生成HTML代码。当然,在web 页面不包含动态内容的情况下,呈现可以仅包括从开发环境或应用服务器 处获得和/或组合web页面的代码。

3’.本发明的系统中的一检测模块可检测在上述步骤2’中生成的修改 后的web页面输出,以判断在该修改后的web页面输出中是否仍然包括所 记录的元素映射关系中的该步所对应的元素。如果判断为否,则检测模块 可确定该步为一断裂点,并可向用户报告有关该断裂点的信息,以便由用 户进行修复。用户可通过将该测试用例中的该步所操纵的元素替换为修改 后的web页面中存在的其他元素、删除该步等方式对该断裂点进行修复。

以上操作过程主要适用于web页面为静态页面(或者不包含条件判断 语句和循环语句的动态页面)时的情况。然而,web页面中通常包含诸如 JSP等动态内容,所述动态内容是指在web页面中包含或引入的JSP代码 等编程代码,这些代码将在该web页面的呈现过程被执行,从而生成相应 的HTML代码,且所述编程代码通常包含循环语句、条件判断语句等各种 编程语句。对于包含由JSP代码等表示的条件判断语句的web页面来说, 在web页面的呈现过程中,将根据条件判断语句中涉及的一个或多个关键 变量(在本申请中,关键变量即是指条件判断语句的条件中包含的变量) 的取值不同,而得到属于不同的条件判断分支的不同的web页面输出。对 于包含条件判断语句的web页面来说,本发明的系统中的一比较模块或记 录模块除了如上所述记录测试用例的步所对应的web页面输出外,还需要 记录该步所对应的web页面输出所属的原web页面中的条件判断的分支, 即关键变量的取值。只有这样,当web页面被修改后,才能根据所记录的 测试用例的步所对应的web页面输出所属的条件判断分支,生成该修改后 的web页面的相同的条件判断分支中的修改后的web页面输出,并判断该 修改后的web页面输出中是否仍包含该步所操纵的元素。

为此,根据本发明的实施例,首先,在上述步骤3中,本发明的系统 中的记录模块还需要记录测试用例的各步所对应的web页面输出的副本。

图4示出了本发明的系统中的记录模块所记录的测试用例中的一步所 对应的web页面输出的副本。如图所示,该web页面输出副本中包含一id 为btn1的按钮。例如,自动测试用例testcase1中的步step1是对该按钮的 点击操作,这样,记录模块将在元素映射数据库中记录testcase1的step1 与该web页面输出中的元素(element)btn1之间的映射,并将记录testcase1 的step1所对应的该web页面输出副本。

其次,返回参照图2,在上述步骤3之后,本发明的系统的所述操作 过程还包括如下步骤:

4.针对在步骤3中所记录的测试用例的每一步,本发明的系统中的呈 现引擎模块可对于具有该步所对应的web页面输出的标识的web页面,判 断该web页面中是否包含条件判断语句,并响应于该判断为是,通过对该 web页面中的条件判断语句的关键变量取不同的值,生成该web页面的所 有可能的web页面输出。呈现引擎模块还可以将所述web页面的标识、条 件判断语句、关键变量、关键变量的不同取值、对应于关键变量的不同取 值的各web页面输出存储起来,例如存储在一关系表中,以用于下文中所 述的覆盖性判断。

图5示出了一个示例性JSP页面的源代码及其作为不同条件判断分支 的不同页面输出。如图所示,该JSP页面包含一if...else判断语句,根据 该判断语句的判断条件中的关键变量role的取值等于role1或不等于 role1,而生成如图右边所示的分别具有id为btn1的按钮和id为txt1的文 本输入框的不同的页面输出。对于该JSP页面,本发明的系统中的呈现引 擎模块可通过将关键变量role取等于role1以及不等于role1的值,而生成 该JSP页面的两种可能的页面输出。

5.本发明的系统中的比较模块将所呈现的所有可能的web页面输出 中的每一个与在步骤3中记录的web页面输出副本进行比较,以判断所记 录的web页面输出副本与所呈现的所有可能的web页面输出中的哪一个 web页面输出相一致。这种比较例如是通过首先生成所记录的web页面输 出副本的DOM树以及所生成的每一个web页面输出的DOM树,然后对 所述DOM树进行比较来完成的。

此外,对于包含循环语句的web页面来说,由于在呈现过程中循环语 句的执行结果通常为数量可变的信息项(例如,一下拉菜单的项),因此, 即使所记录的web页面输出副本与所生成一个web页面输出是由同一个 web页面的同一个条件判断分支生成的,两者仍然可能包含数量不同的信 息项。为此,本发明的系统可在呈现过程中识别web页面的动态内容中的 循环语句,并在web页面输出中对由循环语句生成的信息项加上特殊标记, 用以表明所述信息项是由循环语句生成的。这样,在比较所呈现的web页 面输出与所记录的web页面输出副本时,可以忽略所呈现的web页面输出 中包含的具有所述特殊标记的信息项以及所记录的web页面输出副本中的 相应信息项。

在执行上述比较之后,将与所记录的web页面输出副本一致的所呈现 的一个web页面输出所对应的关键变量及其取值与所述测试用例的步之间 的映射关系(可称为条件映射关系)记录下来,例如记录在一条件映射数 据库中。例如,在条件映射数据库中的某行记录了测试用例1,步1,web 页面输出a.jsp,条件role=IDPLAN,这表明测试用例1中的步1所测试的 是web页a.jsp的、当条件变量role为IDPLAN时的web页面输出。

该条件映射数据库也可以与前述元素映射数据库合并为同一个映射数 据库,这样,在该映射数据库将以测试用例的名称或标识以及步的编号为 主键,记录每一个测试用例的每一步所对应的web页面输出的标识、所操 纵的web页面输出中元素的标识及其他属性、所对应的关键变量及其取值 等。

由于该条件映射数据库或映射数据库可包含针对一web应用的全部测 试用例中的每一步所对应的web页面输出、所操作的web页面的标识以及 所对应的关键变量及其取值,因此它可以方便地提供关于测试用例的测试 覆盖性的信息。例如,本发明的系统中的一覆盖性确定模块可通过查询该 条件映射数据库中的对应于测试用例中的步的关键变量及其取值,并将其 与上述步骤4中呈现引擎模块针对所述具有所记录的测试用例中的步所对 应的web页面输出的相同标识的web页面所获得的、用于生成该web页 面的所有可能的web页面输出的关键变量的不同取值进行比较,以判断条 件映射数据库中的测试用例的步所对应的关键变量的值是否覆盖了用于生 成web页面的所有可能的web页面输出的关键变量的所有不同取值,从而 判断出测试用例的覆盖性。

图6示出了本发明的系统中的比较模块针对在步骤4中所生成的如图 5中所示的不同的web页面输出与在步骤3中记录的如图4中所示的web 页面输出副本所执行的比较、判断和记录的过程。如图所示,比较模块通 过比较图5中所示的所生成的不同的web页面输出与图4中所示的所记录 的web页面输出副本,可确定图5中所示的所呈现的不同的web页面输出 中对应于关键变量role等于role1的web页面输出与图4中的所记录的 web页面输出副本相一致,由此可确定图4中的所记录的web页面输出副 本所对应的测试用例testcase1的步step1及其操纵的按钮元素btn1与关键 变量role及其值role1之间的映射关系:testcase1:step1:element(btn1)-> JSP1:role==″role1″,并可将该映射关系记录在条件映射数据库中。

在执行上述步骤4和5之后,相应地,在上述步骤2’中,呈现引擎模 块可针对在上述步骤3中所记录的元素映射关系中的每一个测试用例的每 一步,获得该步所对应的web页面输出的标识,并获得具有相同标识的修 改后的web页面,然后根据在上述步骤5中所记录的条件映射关系获得该 步所对应的关键变量及其取值,并使用所述关键变量及其取值来呈现所述 具有相同标识的修改后的web页面,从而生成修改后的web页面输出。

然后,在上述步骤3’中,本发明的系统中的检测模块可检测在上述步 骤2’中使用所述关键变量及其取值生成的修改后的web页面输出,以判断 在该修改后的web页面输出中是否仍然包括所记录的元素映射关系中的该 步所对应的元素。如果判断为否,则检测模块可确定该步为一断裂点,并 可向用户报告,以便由用户进行修复。

图7示出了本发明的系统中的呈现引擎模块呈现相应的修改后的web 页面以及检测模块确定断裂点的过程。如图所示,呈现引擎模块根据如图 6中所示的所记录的条件映射关系,针对该条件映射关系中的测试用例 testcase1中的步step1,从上述步骤3中生成的元素映射关系数据库获得该 测试用例testcase1的该步step1所对应的web页面输出的标识JSP1(或 直接从该条件映射关系中获得该标识,如果其中存在的话),从而获得具 有相同标识的修改后的web页面(如图中左上方所示);接着,根据该条 件映射关系中的关键变量及其值JSP1:role=″role1″,使用该关键变量及其 值来呈现该修改后的web页面,从而生成修改后的web页面输出。如图中 所示,该修改后的web页面输出中将包括id为txt2的文本输入框。

然后,检测模块从上述步骤3中生成的元素映射关系数据库获得该测 试用例testcase1中的步骤step1所操作的web页面输出JSP1中的元素的 类型和标识,即按钮btn1(或者直接从所述条件映射关系数据库中获得该 元素的类型和标识,如果其中存在的话),判断在所述修改后的web页面 输出中是否仍然包括相同类型和标识的元素btn1,并在判断为否时确定存 在断裂点,然后生成并向用户显示关于断裂点的报告。如图所示,由于在 修改后的web页面输出中仅包括id为txt2的文本输入框,而不再包括id 为btn1的按钮,因此可确定该测试用例中的该步为一断裂点,并可向用户 报告该断裂点。

检测模块还可以将该测试用例中的该步原来所对应的元素的信息(如 在元素映射数据库中所记录的)与修改后的web页面输出中所包含的元素 的相关信息的对照报告给用户,并可以根据这种对照向用户提出适当的修 复提示。此外,检测模块还可以根据测试用例中的步原来所对应的元素的 信息与修改后的web页面输出中所包含的元素的相关信息的比较结果为断 裂点分配不同的断裂级别。例如,对于元素的id未变,而只是名称或其他 属性改变的情况,可以分配“警告”的断裂级别;而对于其他情况,可以 分配“错误”的断裂级别。

图8示出了检测模块生成的关于断裂点的报告的示例。如图所示,该 报告中包括检测模块所确定的三个断裂点。第一个断裂点是测试用例1中 的步1,其测试脚本代码为clickAt(″//input[id=′signInBtn′],″″),其所操 纵的元素的信息为tag=″input″id=″signInBtn″name= ″signInBtn″xpath=″//form[id=′login_form′]/p[1]/input[0]″key=″id″ (包括该元素的类型、id、名称、路径属性以及哪个属性是用于在脚本中 寻找该元素的键),其断裂级别为错误,以及其修复提示为(修改后的web 页面输出中)具有相同名称的元素的id为signBtn(而不再是signlnbtn)。 第二个断裂点是测试用例3中的步2,其测试脚本代码为 clickAt(″//button[id=′btnStart′],″″),其所操纵的元素的信息为 tag=″button″id=″btnStart″xpath=″//div[id=″content″]/p[0]/Button″ key=″id″(包括该元素的类型、id、名称、路径属性以及哪个属性是用于 在脚本中寻找该元素的键),其断裂级别为警告,以及其修复提示为(修 改后的web页面中)的元素为输入框“btnStart”(而不再是按钮 “btnStart”)。第三个断裂点是测试用例3中的步4,其测试脚本代码为 clcikAt(″link=Notices″),其所操纵的元素的信息为tag=″a″ linkText=″Notices″key=″linkText″(包括该元素的类型、链接文本属性以 及哪个属性是用于在脚本中寻找该元素的键),其断裂级别为错误,以及 其修复提示为空。

通常,一个JSP文件(及用于生成动态web内容的其他文件)中的关 键变量的数量及相应的分支的数量是很少的,且典型的数量是0、1或2。 因此,在大多数情况下对web应用的更新不会改变关键变量本身,尤其是 在web应用已进行稳定阶段后,而自动测试往往正是在这个阶段被引入的。 对于这种未改变关键变量本身的web应用更新,本发明的系统通过上述过 程可以确定并向用户提供所有的断裂点。

然而,在某些情况下,对web应用的更新会修改关键变量本身,包括 对关键变量进行更名、删除关键变量以及添加新的关键变量。

对于在更新web应用时关键变量被更名的情况,本发明的系统中的一 更新模块可以响应于更新后的web页面中的关键变量已更名,相应地更新 条件映射数据库中的相应关键变量名。这样,本发明的系统中的呈现引擎 模块可使用与测试用例中的步关联地记录的已更名的关键变量及其值或值 范围来呈现更新后的web页面的web页面输出,且本发明的系统中的检测 模块可检测该呈现的web页面输出中是否仍然包含该步所操纵的元素。

对于在更新web应用时关键变量被删除的情况,本发明的系统中的呈 现引擎模块可响应于在更新后的web页面中与该测试用例中的步相关联地 记录的关键变量已被删除,不再使用与该步相关联地记录的关键变量及其 值或值范围来呈现该更新后的web页面的web页面输出,而是使用其余的 与该步相关联地记录的关键变量及其值或值范围(如果有的话)或不使用 任何关键变量及其值或值范围来呈现该更新后的web页面的web页面输 出。这样,本发明的系统中的检测模块可检测该呈现的web页面输出中是 否包含该步所操纵的元素。

对于在更新web应用时添加了新的关键变量的情况,本发明的系统中 的呈现引擎模块可响应于在更新后的web页面中添加了新的关键变量,通 过对该新的关键变量取不同值或值范围(以及使用与测试用例中的步相关 联地记录的关键变量及其值或值范围,如果有的话)来呈现该更新后的web 页面中取决于该新的关键变量的不同值或值范围的所有可能的web页面输 出。然后,本发明的系统中的检测模块可检测所呈现的所有可能的web页 面输出中是否包含所记录的测试用例中的步所操纵的元素,且只有当所有 可能的web页面输出中均包含所记录的测试用例中的步所操纵的元素时, 才判断该步不是断裂点,而在任何一个web页面输出中不包含所记录的测 试用例中的步所操纵的元素时,判断该步为断裂点。

用于检测web应用自动测试用例中的断裂点的系统的结构组成

以上参照附图描述了根据本发明的实施例的用于检测web应用自动 测试用例中的断裂点的系统的整体操作过程,下面参照图9描述根据 本发明的实施例的用于检测web应用自动测试用例中的断裂点的系统的结 构组成。在以下描述中省略了与以上描述重复的一些细节,因此可参照以 上描述获得对本发明的系统的更详细的了解。

如图9所示,该用于检测web应用自动测试用例中的断裂点的系统900 包括:

记录模块902,被配置为在自动测试用例运行时,针对自动测试用例 中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出 中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web页 面输出的注释;

呈现引擎模块903,被配置为在web应用更新后,对于所记录的测试 用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的 更新后的web页面的web页面输出;

检测模块904,被配置为检测所呈现的更新后的web页面的web页面 输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该 步为断裂点。

所述记录模块902优选地位于测试环境中。

所述呈现引擎模块903优选地于位于运行web应用的web应用服务器 之外,且可从web应用服务器或直接从开发环境获得web页面,并对其进 行呈现。这样,可以不必修改web应用服务器本身。

所述检测模块904优选地位于测试环境中。

根据本发明的实施例,所述检测模块904还被配置为在检测结果为否 时向用户报告所述被确定的断裂点的相关信息。

根据本发明的进一步的实施例,所述检测模块904被配置为:在检测 结果为否时向用户报告所记录的该步所操纵的元素的信息与所述更新后的 web页面的web页面输出中所包含的相关元素的信息之间的比较结果。

根据本发明的实施例,该系统900还包括可选的注释模块901,被配 置为在开发环境中向所开发的web页面添加用于标识该web页面的注释。 所述注释模块901优选地位于IDE中,且作为IDE中的一插件模块。

根据本发明的实施例,针对所记录的带有注释的web页面输出,所述 呈现引擎模块903还被配置为判断带有相同注释的原web页面中是否包含 条件判断语句,且响应于该判断为是,通过对条件判断语句中的关键变量 取不同值或值范围来呈现带有相同注释的原web页面的所有可能的web页 面输出;

该系统900还包括:可选的比较模块905,被配置为比较所记录的web 页面输出与所呈现的所有可能的web页面输出中的每一个,以找到所呈现 的所有可能的web页面输出中与所记录的web页面输出一致的web页面 输出,且将所呈现的一致的web页面输出所对应的关键变量及其值或值范 围与所记录的web页面输出所对应的测试用例中的步相关联地记录。

根据本发明的进一步的实施例,所述呈现引擎模块903进一步被配置 为:在web应用更新后,对于所记录的测试用例的所述至少一步,使用与 该步相关联地记录的关键变量及其值或值范围来呈现带有该步所对应的 web页面输出的相同注释的更新后的web页面的web页面输出。

根据本发明的实施例,所述呈现引擎模块903还被配置为:

通过分析所述带有相同注释的原web页面的源代码获得其中包含的循 环语句;

对所呈现的所有可能的web页面输出中的由循环语句生成的信息项加 上特殊标记。

根据本发明的进一步的实施例,所述比较模块905进一步被配置为:

在比较过程中忽略所呈现的所有可能的web页面输出中的每一个中的 具有所述特殊标记的信息项与所记录的web页面输出中的相应信息项。

根据本发明的实施例,所述呈现的一致的web页面输出所对应的关键 变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相 关联地被记录在条件映射数据库中;

且该系统900还包括更新模块(未示出),被配置为在web应用更新 后,响应于更新后的web页面中的关键变量已变更,相应更新条件映射数 据库中的相应关键变量名。

根据本发明的实施例,所述呈现引擎模块903进一步被配置为:

在web应用更新后,对于所记录的测试用例的所述至少一步,响应于 在带有该步所对应的web页面输出的相同注释的更新后的web页面中与该 步相关联地记录的关键变量已被删除,不使用与该步相关联地记录的关键 变量及其值或值范围而呈现该更新后的web页面的web页面输出。

根据本发明的实施例,所述呈现引擎模块903进一步被配置为:

在web应用更新后,对于所记录的测试用例的所述至少一步,响应于 在带有该步所对应的web页面输出的相同注释的更新后的web页面中添加 了新的关键变量,通过对该新的关键变量取不同的值来呈现该更新后的 web页面的所有可能的web页面输出;

且所述检测模块904进一步被配置为:

检测所呈现的该更新后的web页面的所有可能的web页面输出中的每 一个web页面输出中是否包含所记录的该步所操纵的元素,并在针对所有 可能的web页面输出中的任何一个web页面输出的检测结果为否时,确定 该步为断裂点。

根据本发明的实施例,所述呈现的一致的web页面输出所对应的关键 变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相 关联地被记录在条件映射数据库中;

且该系统900还包括覆盖性确定模块(未示出),被配置为通过查询 所述条件映射数据库确定测试用例的覆盖性。

以上参照附图描述了根据本发明的实施例的用于检测web应用自动测 试用例中的断裂点的系统的结构组成,应指出的是,以上描述仅为示例, 而不是对本发明的限制。在本发明的其他实施例中,所述系统可具有更多、 更少或不同的模块,且各模块之间的连接、包含、功能等关系可以与所描 述的不同。

用于检测web应用自动测试用例中的断裂点的方法

下面参照附图10描述根据本发明的实施例的用于检测web应用自动 测试用例中的断裂点的方法。如图所示,该方法包括以下步骤:

在步骤1002,在自动测试用例运行时,针对自动测试用例中的至少一 步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操 纵的元素的信息,其中该web页面输出带有用于标识该web页面输出的注 释;

在步骤1005,在web应用更新后,对于所记录的测试用例的所述至少 一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页 面的web页面输出;

在步骤1006,检测所呈现的更新后的web页面的web页面输出中是 否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂 点。

根据本发明的实施例,所述步骤1006还包括在检测结果为否时向用户 报告所述被确定的断裂点的相关信息。

根据本发明的进一步实施例,该方法还包括:在所述检测结果为否时 向用户报告所记录的该步所操纵的元素的信息与所述更新后的web页面的 web页面输出中所包含的相关元素的信息之间的比较结果。

根据本发明的实施例,该方法还包括可选步骤1001,其中,在开发环 境中向所开发的web页面添加用于标识该web页面的注释。

根据本发明的实施例,该方法还包括如下可选步骤:

在步骤1003,针对所记录的带有注释的web页面输出,判断带有相同 注释的原web页面中是否包含条件判断语句,且响应于该判断为是,通过 对条件判断语句中的关键变量取不同值或值范围来呈现带有相同注释的原 web页面的所有可能的web页面输出;

在步骤1004,比较所记录的web页面输出与所呈现的所有可能的web 页面输出中的每一个,以找到所呈现的所有可能的web页面输出中与所记 录的web页面输出一致的web页面输出,且将所呈现的一致的web页面 输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的 测试用例中的步相关联地记录。

根据本发明的进一步的实施例,所述在web应用更新后,对于所记录 的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同 注释的更新后的web页面的web页面输出的步骤1005进一步包括:在web 应用更新后,对于所记录的测试用例的所述至少一步,使用与该步相关联 地记录的关键变量及其值或值范围来呈现带有该步所对应的web页面输出 的相同注释的更新后的web页面的web页面输出。

根据本发明的实施例,所述呈现带有相同注释的原web页面的所有可 能的web页面输出的步骤还包括:

通过分析所述带有相同注释的原web页面的源代码获得其中包含的循 环语句;

对所呈现的所有可能的web页面输出中的由循环语句生成的信息项加 上特殊标记;

且所述比较所记录的web页面输出与所呈现的所有可能的web页面输 出中的每一个进一步包括:

在比较过程中忽略所呈现的所有可能的web页面输出中的每一个 中的具有所述特殊标记的信息项与所记录的web页面输出中的相应信息 项。

根据本发明的实施例,所述呈现的一致的web页面输出所对应的关键 变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相 关联地被记录在条件映射数据库中;

且该方法还包括如下步骤:在web应用更新后,响应于更新后的web 页面中的关键变量已更名,相应更新条件映射数据库中的相应关键变量名。

根据本发明的实施例,所述在web应用更新后,对于所记录的测试用 例的所述至少一步,使用与该步相关联地记录的关键变量及其值或值范围 来呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的 web页面输出进一步包括:

在web应用更新后,对于所记录的测试用例的所述至少一步,响应于 在带有该步所对应的web页面输出的相同注释的更新后的web页面中与该 步相关联地记录的关键变量已被删除,不使用与该步相关联地记录的关键 变量及其值或值范围而呈现该更新后的web页面的web页面输出。

根据本发明的实施例,所述在web应用更新后,对于所记录的测试用 例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更 新后的web页面的web页面输出的呈现引擎模块进一步包括:

在web应用更新后,对于所记录的测试用例的所述至少一步,响应于 在带有该步所对应的web页面输出的相同注释的更新后的web页面中添加 了新的关键变量,通过对该新的关键变量取不同的值来呈现该更新后的 web页面的所有可能的web页面输出;

且所述检测所呈现的更新后的web页面的web页面输出中是否包含所 记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点进一步 包括:

检测所呈现的该更新后的web页面的所有可能的web页面输出中的每 一个web页面输出中是否包含所记录的该步所操纵的元素,并在针对所有 可能的web页面输出中的任何一个web页面输出的检测结果为否时,确定 该步为断裂点。

根据本发明的实施例,所述呈现的一致的web页面输出所对应的关键 变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相 关联地被记录在条件映射数据库中;

且该方法还包括:通过查询所述条件映射数据库确定测试用例的覆盖 性。

以上参照附图描述了根据本发明的实施例的用于检测web应用自动测 试用例中的断裂点的方法的步骤,应指出的是,以上描述仅为示例,而不 是对本发明的限制。在本发明的其他实施例中,所述方法可具有更多、更 少或不同的步骤,且各步骤之间的顺序、包含、功能等关系可以与所描述 的不同。

图11示出了适于用来实现本发明实施方式的示例性计算系统1100的 框图。如所示,计算机系统1100可以包括:CPU(中央处理单元)1101、 RAM(随机存取存储器)1102、ROM(只读存储器)1103、系统总线1104、 硬盘控制器1105、键盘控制器1106、串行接口控制器1107、并行接口控 制器1108、显示控制器1109、硬盘1110、键盘1111、串行外部设备1112、 并行外部设备1113和显示器1114。在这些设备中,与系统总线1104耦合 的有CPU 1101、RAM 1102、ROM 1103、硬盘控制器1105、键盘控制器 1106、串行控制器1107、并行控制器1108和显示控制器1109。硬盘1110 与硬盘控制器1105耦合,键盘1111与键盘控制器1106耦合,串行外部设 备1112与串行接口控制器1107耦合,并行外部设备1113与并行接口控制 器1108耦合,以及显示器1114与显示控制器1109耦合。应当理解,图 11所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的 限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。

所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、 方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形 式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码 等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬 件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计 算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算 机可用的程序码。

可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质 可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介 质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、 或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的 更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、 便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、 可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读 存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组 合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序 的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合 使用。

计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、 其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采 用多种形式,包括——但不限于——电磁信号、光信号或任何以上合适的 组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能 发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结 合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码 可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、 RF等等,或者任何合适的上述组合。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包 括——但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组 合。

用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计 语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语 言—诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言— 诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用 户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包 执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程 计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类 的网络——包括局域网(LAN)或广域网(WAN)—连接到用户的计算机,或 者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。

以上参照按照本发明实施例的方法、装置(系统)和计算机程序产品 的流程图和/或框图描述了本发明的多个方面。要明白的是,流程图和/或框 图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序 指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其 它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机 或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中 的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据 处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读 介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/ 操作的指令装置(instruction means)的制造品。

也可以把计算机程序指令加载到计算机或其它可编程数据处理装置 上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以 产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就 提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法 和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程 图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所 述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功 能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注 的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示 的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行, 这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、 以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专 用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来 实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号