CN103164334B - 检测web应用自动测试用例中的断裂点的系统和方法 - Google Patents
检测web应用自动测试用例中的断裂点的系统和方法 Download PDFInfo
- Publication number
- CN103164334B CN103164334B CN201110427398.3A CN201110427398A CN103164334B CN 103164334 B CN103164334 B CN 103164334B CN 201110427398 A CN201110427398 A CN 201110427398A CN 103164334 B CN103164334 B CN 103164334B
- Authority
- CN
- China
- Prior art keywords
- web page
- recorded
- exports
- test case
- export
- 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.)
- Expired - Fee Related
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000001514 detection method Methods 0.000 claims abstract description 27
- 238000013507 mapping Methods 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 19
- 238000011161 development Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 22
- 238000013515 script Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 101150046362 BTN1 gene Proteins 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 102100033992 Dual specificity protein phosphatase 22 Human genes 0.000 description 4
- 101001017467 Homo sapiens Dual specificity protein phosphatase 22 Proteins 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- 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/368—Test management for test version control, e.g. updating test cases to a new software version
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于检测web应用自动测试用例中的断裂点的系统和方法,该系统包括:记录模块,被配置为在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,该web页面输出带有用于标识该web页面输出的注释,以及在该web页面输出中该步所操纵的元素的信息;呈现引擎模块,被配置为在web应用更新后,对于所记录的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;检测模块,被配置为检测所述web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定所述至少一步为断裂点。
Description
技术领域
本发明涉及数据处理领域,具体涉及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页面的开头和结尾添加了包含其标识的注释。例如<!-startframe.jsp-->和<!-endframe.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耦合的有CPU1101、RAM1102、ROM1103、硬盘控制器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)—连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以上参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (18)
1.一种用于检测web应用自动测试用例中的断裂点的系统,包括:
记录模块,被配置为在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web页面输出的注释;
呈现引擎模块,被配置为在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;
检测模块,被配置为检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点;其中
针对所记录的带有注释的web页面输出,所述呈现引擎模块还被配置为判断带有相同注释的原web页面中是否包含条件判断语句,且响应于该判断为是,通过对条件判断语句中的关键变量取不同值或值范围来呈现带有相同注释的原web页面的所有可能的web页面输出;
该系统还包括:比较模块,被配置为比较所记录的web页面输出与所呈现的所有可能的web页面输出中的每一个,以找到所呈现的所有可能的web页面输出中与所记录的web页面输出一致的web页面输出,且将所呈现的一致的web页面输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相关联地记录。
2.根据权利要求1的系统,其中,所述检测模块还被配置为在检测结果为否时向用户报告被确定的断裂点的相关信息。
3.根据权利要求1的系统,还包括:
注释模块,被配置为在开发环境中向所开发的web页面添加用于标识该web页面的注释。
4.根据权利要求1的系统,其中,
所述呈现引擎模块进一步被配置为:在web应用更新后,对于所记录的测试用例的所述至少一步,使用与该步相关联地记录的关键变量及其值或值范围来呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出。
5.根据权利要求1的系统,其中,
所述呈现引擎模块还被配置为:
通过分析所述带有相同注释的原web页面的源代码获得其中包含的循环语句;
对所呈现的所有可能的web页面输出中的由循环语句生成的信息项加上标记。
6.根据权利要求5的系统,其中,所述比较模块进一步被配置为:
在比较过程中忽略所呈现的所有可能的web页面输出中的每一个中的具有所述标记的信息项与所记录的web页面输出中的相应信息项。
7.根据权利要求1的系统,其中,所述呈现引擎模块进一步被配置为:
在web应用更新后,对于所记录的测试用例的所述至少一步,响应于在带有该步所对应的web页面输出的相同注释的更新后的web页面中与该步相关联地记录的关键变量已被删除,不使用与该步相关联地记录的关键变量及其值或值范围而呈现该更新后的web页面的web页面输出。
8.根据权利要求1的系统,其中,
所述呈现引擎模块进一步被配置为:
在web应用更新后,对于所记录的测试用例的所述至少一步,响应于在带有该步所对应的web页面输出的相同注释的更新后的web页面中添加了新的关键变量,通过对该新的关键变量取不同的值来呈现该更新后的web页面的所有可能的web页面输出;
且所述检测模块进一步被配置为:
检测所呈现的该更新后的web页面的所有可能的web页面输出中的每一个web页面输出中是否包含所记录的该步所操纵的元素,并在针对所有可能的web页面输出中的任何一个web页面输出的检测结果为否时,确定该步为断裂点。
9.根据权利要求1的系统,其中,所述呈现的一致的web页面输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相关联地被记录在条件映射数据库中;
且该系统还包括覆盖性确定模块,被配置为通过查询所述条件映射数据库确定测试用例的覆盖性。
10.一种用于检测web应用自动测试用例中的断裂点的方法,包括:
在自动测试用例运行时,针对自动测试用例中的至少一步,记录该步所对应的web页面输出,以及在该web页面输出中该步所操纵的元素的信息,其中该web页面输出带有用于标识该web页面输出的注释;
在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出;
检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点;
针对所记录的带有注释的web页面输出,判断带有相同注释的原web页面中是否包含条件判断语句,且响应于该判断为是,通过对条件判断语句中的关键变量取不同值或值范围来呈现带有相同注释的原web页面的所有可能的web页面输出;
比较所记录的web页面输出与所呈现的所有可能的web页面输出中的每一个,以找到所呈现的所有可能的web页面输出中与所记录的web页面输出一致的web页面输出,且将所呈现的一致的web页面输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相关联地记录。
11.根据权利要求10的方法,还包括:
在检测结果为否时向用户报告被确定的断裂点的相关信息。
12.根据权利要求10的方法,还包括:
在开发环境中向所开发的web页面添加用于标识该web页面的注释。
13.根据权利要求10的方法,其中,所述在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出进一步包括:
在web应用更新后,对于所记录的测试用例的所述至少一步,使用与该步相关联地记录的关键变量及其值或值范围来呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出。
14.根据权利要求10的方法,其中,
所述呈现带有相同注释的原web页面的所有可能的web页面输出还包括:
通过分析所述带有相同注释的原web页面的源代码获得其中包含的循环语句;
对所呈现的所有可能的web页面输出中的由循环语句生成的信息项加上标记。
15.根据权利要求14的方法,其中,所述比较所记录的web页面输出与所呈现的所有可能的web页面输出中的每一个进一步包括:
在比较过程中忽略所呈现的所有可能的web页面输出中的每一个中的具有所述标记的信息项与所记录的web页面输出中的相应信息项。
16.根据权利要求10的方法,其中,所述在web应用更新后,对于所记录的测试用例的所述至少一步,使用与该步相关联地记录的关键变量及其值或值范围来呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出进一步包括:
在web应用更新后,对于所记录的测试用例的所述至少一步,响应于在带有该步所对应的web页面输出的相同注释的更新后的web页面中与该步相关联地记录的关键变量已被删除,不使用与该步相关联地记录的关键变量及其值或值范围而呈现该更新后的web页面的web页面输出。
17.根据权利要求10的方法,其中,
所述在web应用更新后,对于所记录的测试用例的所述至少一步,呈现带有该步所对应的web页面输出的相同注释的更新后的web页面的web页面输出进一步包括:
在web应用更新后,对于所记录的测试用例的所述至少一步,响应于在带有该步所对应的web页面输出的相同注释的更新后的web页面中添加了新的关键变量,通过对该新的关键变量取不同的值来呈现该更新后的web页面的所有可能的web页面输出;
且所述检测所呈现的更新后的web页面的web页面输出中是否包含所记录的该步所操纵的元素,并在检测结果为否时确定该步为断裂点进一步包括:
检测所呈现的该更新后的web页面的所有可能的web页面输出中的每一个web页面输出中是否包含所记录的该步所操纵的元素,并在针对所有可能的web页面输出中的任何一个web页面输出的检测结果为否时,确定该步为断裂点。
18.根据权利要求10的方法,其中,所述呈现的一致的web页面输出所对应的关键变量及其值或值范围与所记录的web页面输出所对应的测试用例中的步相关联地被记录在条件映射数据库中;
且该方法还包括:通过查询所述条件映射数据库确定测试用例的覆盖性。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110427398.3A CN103164334B (zh) | 2011-12-19 | 2011-12-19 | 检测web应用自动测试用例中的断裂点的系统和方法 |
US13/718,098 US9152731B2 (en) | 2011-12-19 | 2012-12-18 | Detecting a broken point in a web application automatic test case |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110427398.3A CN103164334B (zh) | 2011-12-19 | 2011-12-19 | 检测web应用自动测试用例中的断裂点的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164334A CN103164334A (zh) | 2013-06-19 |
CN103164334B true CN103164334B (zh) | 2016-03-30 |
Family
ID=48587439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110427398.3A Expired - Fee Related CN103164334B (zh) | 2011-12-19 | 2011-12-19 | 检测web应用自动测试用例中的断裂点的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9152731B2 (zh) |
CN (1) | CN103164334B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097742A1 (zh) * | 2011-12-30 | 2013-07-04 | 北京奇虎科技有限公司 | 识别被篡改网页以及识别被劫持网址的方法及装置 |
US9323649B2 (en) * | 2013-09-30 | 2016-04-26 | International Business Machines Corporation | Detecting error states when interacting with web applications |
US20150199247A1 (en) * | 2014-01-15 | 2015-07-16 | Linkedln Corporation | Method and system to provide a unified set of views and an execution model for a test cycle |
CN104978258B (zh) * | 2014-04-01 | 2018-03-23 | 中国银联股份有限公司 | 软件自动化测试方法及系统 |
US9910858B2 (en) * | 2014-07-08 | 2018-03-06 | Intuit Inc. | System and method for providing contextual analytics data |
CN104820640B (zh) * | 2015-05-19 | 2018-07-24 | 广州华多网络科技有限公司 | 一种网页测试方法和装置 |
CN106294113B (zh) * | 2015-06-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种基于可编程式测试服务的创建方法及装置 |
US10140204B2 (en) * | 2015-06-08 | 2018-11-27 | International Business Machines Corporation | Automated dynamic test case generation |
CN105279089B (zh) * | 2015-10-30 | 2017-12-12 | 中国人民财产保险股份有限公司 | 一种获取页面元素的方法及装置 |
CN106095678B (zh) * | 2016-06-08 | 2018-11-23 | 上海爱数信息技术股份有限公司 | 用于Windows平台下数据库业务操作的自动化结果检查方法 |
US10055335B2 (en) * | 2017-01-23 | 2018-08-21 | International Business Machines Corporation | Programming assistance to identify suboptimal performing code and suggesting alternatives |
US10599426B2 (en) * | 2018-03-05 | 2020-03-24 | Bank Of America Corporation | Automated validation tool |
US10474564B1 (en) * | 2019-01-25 | 2019-11-12 | Softesis Inc. | Identifying user interface elements using element signatures |
JP7115342B2 (ja) * | 2019-01-31 | 2022-08-09 | 日本電信電話株式会社 | デバッグ支援システムおよびデバッグ支援方法 |
US11093319B2 (en) | 2019-05-29 | 2021-08-17 | Microsoft Technology Licensing, Llc | Automated recovery of webpage functionality |
CN111722904A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 页面告警脚本的生成方法、装置、设备及可读存储介质 |
CN111930616B (zh) * | 2020-07-27 | 2024-03-19 | 北京大米未来科技有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118515A (zh) * | 2007-09-11 | 2008-02-06 | 腾讯科技(深圳)有限公司 | 一种表单的自动测试方法及装置 |
US20090044192A1 (en) * | 2000-08-22 | 2009-02-12 | International Business Machines Corporation | Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals |
CN101882107A (zh) * | 2010-06-28 | 2010-11-10 | 山东中创软件商用中间件股份有限公司 | 一种web应用自动化测试的方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298317B1 (en) | 1999-01-25 | 2001-10-02 | Hewlett-Packard Company | Enhanced functional testing through the filtration of non-subtle mutations |
US6415396B1 (en) | 1999-03-26 | 2002-07-02 | Lucent Technologies Inc. | Automatic generation and maintenance of regression test cases from requirements |
US6907546B1 (en) * | 2000-03-27 | 2005-06-14 | Accenture Llp | Language-driven interface for an automated testing framework |
US7231606B2 (en) * | 2000-10-31 | 2007-06-12 | Software Research, Inc. | Method and system for testing websites |
US7028223B1 (en) | 2001-08-13 | 2006-04-11 | Parasoft Corporation | System and method for testing of web services |
US7448024B2 (en) * | 2002-12-12 | 2008-11-04 | Bea Systems, Inc. | System and method for software application development in a portal environment |
US7210066B2 (en) | 2002-12-31 | 2007-04-24 | Sun Microsystems, Inc. | Method and system for determining computer software test coverage |
US20060107121A1 (en) | 2004-10-25 | 2006-05-18 | International Business Machines Corporation | Method of speeding up regression testing using prior known failures to filter current new failures when compared to known good results |
US20070016894A1 (en) * | 2005-07-15 | 2007-01-18 | Sreedhar Vugranam C | System and method for static analysis using fault paths |
US8001532B1 (en) * | 2006-03-10 | 2011-08-16 | Parasoft Corporation | System and method for generating source code-based test cases |
US8392886B2 (en) * | 2006-10-17 | 2013-03-05 | Artoftest, Inc. | System, program product, and methods to enable visual recording and editing of test automation scenarios for web application |
US7934201B2 (en) * | 2006-10-17 | 2011-04-26 | Artoftest, Inc. | System, method, and computer readable medium for universal software testing |
US20080120598A1 (en) * | 2006-11-20 | 2008-05-22 | Viewtier Systems, Inc. | Method and apparatus of a build management system |
US7672938B2 (en) * | 2007-10-05 | 2010-03-02 | Microsoft Corporation | Creating search enabled web pages |
US8132157B2 (en) | 2008-01-17 | 2012-03-06 | International Business Machines Corporation | Method of automatic regression testing |
US20110055683A1 (en) * | 2009-09-02 | 2011-03-03 | Facebook Inc. | Page caching for rendering dynamic web pages |
CN102110048B (zh) | 2009-12-28 | 2014-07-09 | 国际商业机器公司 | 用于基于框架的应用程序的回归测试选择方法和装置 |
-
2011
- 2011-12-19 CN CN201110427398.3A patent/CN103164334B/zh not_active Expired - Fee Related
-
2012
- 2012-12-18 US US13/718,098 patent/US9152731B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090044192A1 (en) * | 2000-08-22 | 2009-02-12 | International Business Machines Corporation | Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals |
CN101118515A (zh) * | 2007-09-11 | 2008-02-06 | 腾讯科技(深圳)有限公司 | 一种表单的自动测试方法及装置 |
CN101882107A (zh) * | 2010-06-28 | 2010-11-10 | 山东中创软件商用中间件股份有限公司 | 一种web应用自动化测试的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20130159975A1 (en) | 2013-06-20 |
US9152731B2 (en) | 2015-10-06 |
CN103164334A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164334B (zh) | 检测web应用自动测试用例中的断裂点的系统和方法 | |
Silva et al. | Refdiff 2.0: A multi-language refactoring detection tool | |
Silva et al. | Refdiff: detecting refactorings in version histories | |
CN102141956B (zh) | 用于开发中的安全漏洞响应管理的方法和系统 | |
CA2653887C (en) | Test script transformation architecture | |
Zhang et al. | Which configuration option should I change? | |
US6954747B1 (en) | Methods for comparing versions of a program | |
CN102855131B (zh) | 用于软件配置管理的装置和方法 | |
Ray et al. | The uniqueness of changes: Characteristics and applications | |
US20160306627A1 (en) | Determining errors and warnings corresponding to a source code revision | |
Wang et al. | Automating presentation changes in dynamic web applications via collaborative hybrid analysis | |
US20060161880A1 (en) | Systems and methods for creating and providing templates in a single file | |
US10565089B2 (en) | Identification of code features potentially associated with code behavior | |
US20120233600A1 (en) | Information processing apparatus and method of acquiring trace log | |
CA2821541A1 (en) | Code clone notification and architectural change visualization | |
Chen et al. | Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
US20230145163A1 (en) | Pipeline release validation | |
JP6486574B2 (ja) | プログラムコード生成装置、プログラムコード生成方法及びプログラムコード生成プログラム | |
CN112131122B (zh) | 一种源代码缺陷检测工具误报评估方法及装置 | |
Lee et al. | Automatic detection and update suggestion for outdated API names in documentation | |
EP4272073A1 (en) | Automatically updating documentation | |
EP2105837B1 (en) | Test script transformation analyzer with change guide engine | |
CN109388568B (zh) | 代码测试方法和装置 | |
Wenzel | Unique identification of elements in evolving software models |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 |