CN101046767B - 用于自动测试基于图形的编程工具的方法和系统 - Google Patents
用于自动测试基于图形的编程工具的方法和系统 Download PDFInfo
- Publication number
- CN101046767B CN101046767B CN2007100921232A CN200710092123A CN101046767B CN 101046767 B CN101046767 B CN 101046767B CN 2007100921232 A CN2007100921232 A CN 2007100921232A CN 200710092123 A CN200710092123 A CN 200710092123A CN 101046767 B CN101046767 B CN 101046767B
- Authority
- CN
- China
- Prior art keywords
- test
- programming tool
- screen
- supplemental characteristic
- test 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.)
- Active
Links
Images
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
Abstract
用于自动测试基于图形的编程工具的方法和系统。本发明包括一种计算机实现的方法,其允许开发者使用通用的可重用的测试代码的构造块和单独的分离的参数数据,来容易地生成用于自动测试基于图形的编程工具的脚本。该方法还允许开发者使用所生成的脚本自动测试和重新测试基于图形的编程工具。该系统提供存储器和处理器,以用于实现根据本发明的实施例自动测试方法。一种示例应用是用于生成屏幕及其底层的程序逻辑的基于图形的编程工具。
Description
技术领域
本发明涉及一种用于自动测试基于图形的编程工具的方法和系统。
背景技术
基于图形的(graphic-based)编程工具是让开发者在构建屏幕(screen)(即,用户接口)的同时生成可执行代码的一种高效、有效的方式,因为该工具既可以用于创建屏幕自身(包括其图形项目的布局)同时又在该屏幕后面编写程序逻辑。因此,屏幕可以包括其布局和其程序逻辑。这样的工具有利地为开发者从手工编制程序中节省出很多时间和工作。因此,基于图形的编程工具的正确执行就很重要,这样开发者就不需要花费不必要的时间和工作来重做由工具非正确地创建的屏幕和/或由工具非正确地编写的程序逻辑。所以,在使用之前必须对该工具进行测试。
但是,测试这样的基于图形的编程工具通常需要很多工作,并且非常复杂。其中一个原因是测试必须是全面的,以便测试客户在客户系统中使用该工具的所有方式。另一个原因是屏幕可能非常复杂,具有很多不同的屏幕项目,其中工具对屏幕中的每个项目及每个项目与其它项目之间的交互的处理都必须被测试。再一个原因是屏幕的程序逻辑可以包括与系统上的其它应用共享的功能,其中工具对屏幕的流程逻辑(flow logic)及其与系统中的其它应用之间的交互的协调都必须被测试。
重复测试也是需要的,比如在调试(debugging)基于图形的编程工具时。而且如果有与其它应用共享的功能,那么在所述其它应用被修改时,比如在软件升级时,也需要重复测试。必须进行测试以保证升级没有改变所构建的屏幕的程序逻辑。当基于图形的编程工具本身被升级时,该升级必须被测试。
出于至少这些原因,要得到有意义和全面的基于图形的编程工具的测试结果,手动测试不是一个可行的选择。
一种解决方案是提供一种自动测试方法。图1是描述这样的方法的框图。在这种方法中,开发者可以使用由测试代码和硬编码(hard-coded)数据构成的自动生成的测试脚本(script)来测试基于图形的编程工具。测试代码可以定义工具的动作和逻辑,而硬编码数据可以包括测试代码执行工具的动作和逻辑所使用的参数值。例如,在图1中,基于图形的编程工具是屏幕构造器(builder),其构建屏幕,并在用户与屏幕交互时、同时生成可执行的程序逻辑。开发者可以首先使用该工具来构建屏幕1,所述屏幕包括屏幕的布局和底层的程序逻辑。
在屏幕构建期间,记录器(recorder)工具可以将工具的动作和数据记录到之后要重放(replay)的测试脚本中,诸如测试脚本(Test Script)1,以测试基于图形的编程工具。如前面已经提到的,测试脚本可以包括测试代码和硬编码数据。为了测试基于图形的编程工具,开发者运行测试脚本,该脚本自动地使基于图形的编程工具执行所记录的动作。如果所呈现的(rendered)屏幕或编写的程序逻辑不正确,则基于图形的编程工具需要改正和重新测试。在测试脚本结束之后,可以生成错误分析报告,例如,错误分析(Error Analysis)1,其指示在基于图形的编程工具中什么地方存在错误。开发者可以编辑该基于图形的编程工具以改正任何错误,然后重复所述测试。
本方法有利地使开发者从不得不手动测试基于图形的编程工具中解放出来。而且,开发者仅仅需要执行自动生成的测试脚本。
本方案对于没有可能被升级的基于图形的编程工具来说工作良好。这是因为基于图形的编程工具的程序逻辑、工具动作、以及参数值和/或所构建的屏幕不可能改变。因此,测试脚本中的测试代码和硬编码数据也不可能改变。从而,当使用测试屏幕测试基于图形的编程工具时,只需要对测试脚本进行微小的调整。然而,实际上,大多数基于图形的编程工具(以及其它共享的应用)都会随着时间而被升级,如果它们不升级就不会很有用。因此,基于图形的编程工具的程序逻辑、工具动作、以及参数值和/或所构建的屏幕保持不变是不能的。
但是,使用图1的方法对于其中基于图形的编程工具(以及其它共享的应用)随着时间而被升级的更实际系统来说是有问题的。例如,由于本方法中的测试脚本包括硬编码数据,所以必须重新记录整个脚本,以利用升级的测试代码和/或数据测试升级的工具,即使测试屏幕实质上没有改变。类似地,由于特定的测试脚本可能限于特定的测试屏幕,所以必须为每个屏幕记录测试脚本,即使在屏幕之间仅仅存在微小的改变时也是如此。而且,当添加、删除、或相反修改屏幕项目和相关的程序逻辑时,所有受影响的测试脚本都必须被重新记录。这些都需要花大量的工作来测试基于图形的编程工具。
因此,本领域需要一种高效、有效的方式来自动地测试基于图形的编程工具。
发明内容
根据本发明的一个方面,提供一种计算机实现的方法,包括:响应于输入,自动将对应于所述输入的可重用的测试代码块放到测试脚本文件中,自动将对应于所述输入的参数数据放到数据文件中,以及链接所述数据文件与所述测试脚本文件以测试所述输入。
根据本发明的一个方面,提供一种计算机实现的方法,包括:将参数数据导入包括可重用的测试代码块的脚本中;使用导入的参数数据执行所述块以构建图形用户接口屏幕,并使用编程工具生成所述屏幕底层的程序逻辑;以及分析所构建的屏幕和所生成的程序逻辑以确定编程工具是否正确地构建了所述屏幕以及生成了所述程序逻辑。
根据本发明的一个方面,提供一种系统,包括:存储器,用于存储测试数据和测试代码的块;以及处理器,与所述存储器进行通讯,以便生成包括多个可重用的代码块的多个测试脚本来测试图形用户接口功能,和生成包括要由所述块使用的参数数据的参数数据文件以便执行所述图形用户接口功能,其中在所述测试脚本中可以相互交换地使用所述块。
根据本发明的一个方面,提供一种用于测试编程工具的仿真器,包括:存储器,用于存储自动生成的可重用的测试代码和测试数据的块;和处理器,与所述存储器进行通信,以便链接所述测试数据与所述测试代码,和以所述链接的测试数据来执行所述测试代码以便仿真编程工具。
附图说明
图1是描述自动测试基于图形的编程工具的以前方法的框图。
图2是描述了根据本发明的实施例的自动测试基于图形的编程工具的新方法的框图。
图3是例示根据本发明的实施例的基于图形的编程工具的屏幕截图。
图4是根据本发明的实施例的为自动测试基于图形的编程工具而生成的测试脚本文件和参数数据文件的例子。
图5是根据本发明的实施例的用于生成用于自动测试基于图形的编程工具的脚本的方法的流程图。
图6是根据本发明的实施例的用于自动测试基于图形的编程工具的方法的流程图。
图7是描述根据本发明的实施例的用于实施方法的计算设备的框图。
具体实施方式
本发明的实施例包括用于自动测试基于图形的编程工具的方法和系统。该方法允许开发者使用测试代码的通用的(generic)可重用的构造块(buildingblock)和单独的分离的(decoupled)参数数据,来容易地生成用于自动测试基于图形的编程工具的脚本。该方法还允许开发者使用所生成的脚本自动地测试和重新测试基于图形的编程工具。该系统提供了存储器和处理器用于实现根据本发明的实施例的自动测试方法。工具仿真器可以包括存储器和处理器以便对基于图形的编程工具进行仿真,从而根据本发明的实施例自动测试其操作。
一种基于图形的编程工具应用是屏幕构建,其中基于图形的编程工具被用来在构建屏幕的同时生成可执行代码,其中用户可以在此之后使用所构建的屏幕与系统上的其它应用交互,并且作为用户动作的结果可以使可执行代码运行。屏幕可以是图形用户接口,其可以包括屏幕图形布局和底层的(underlying)屏幕程序逻辑。屏幕布局可以包括按钮、文本框、矩阵、滚动条、图形窗格(picture pane)、和/或一般在屏幕中存在的任何其它图形项目,利用这些项目,用户可以动作以便向系统上的另一个应用提供输入或从系统上的另一个应用接收输出。屏幕程序逻辑可以包括屏幕呈现之前要执行的命令,以及在用户对屏幕项目进行动作之后要执行的命令。这样的命令可以包括从数据库中检索数据、执行另一个应用等。基于图形的编程工具可以用来同时创建屏幕本身和编写程序逻辑两者。
虽然这里描述的基于图形的编程工具应用为屏幕构建,但是应当理解本发明的实施例也可以包括在其它应用中使用的基于图形的编程工具。
根据本发明的实施例的构造块可以是测试代码的离散块(discrete block),其包括基于图形的编程工具能够识别的可执行命令,当被执行时,可以使所述工具构建具有特定屏幕项目的屏幕并编写相关的屏幕程序逻辑。对于若干屏幕项目和/或程序逻辑来说,构造块可以是通用的,因而可重用。测试代码可以包括参数变量,在运行时间(runtime)期间参数数据值可以被动态地链接到所述参数变量,以便为特定的屏幕项目和程序逻辑定制代码。一个或多个构造块可以组成测试脚本。构造块尺寸应当足够大,以便充分地编码该工具的离散的功能,诸如添加屏幕项目及其程序逻辑。另一方面,构造块尺寸应当足够小以便是通用的,并因而可在多个脚本中重用。
参数数据可以包括屏幕项目的属性(property),以便在链接到测试脚本的构造块时使得工具利用在参数数据中所述属性,诸如项目类型(例如,按钮、框、矩阵、窗格等)、项目在屏幕中的位置、项目尺寸大小(dimensions)、项目颜色、在屏幕中用户完成动作时被调用的应用、以及与屏幕一般地相关联的其它属性,来构建特定屏幕项目并编写其程序逻辑。参数数据可以是在与测试脚本分开的文件中,并在运行时由测试脚本导入(import)。参数数据还可以与特定测试脚本分离,因为该数据可以在不同或相同的测试脚本中的多个构造块重用。
测试脚本可以包括用于每个屏幕项目的构造块或者为特定屏幕和/或屏幕项目编写的屏幕程序逻辑。每个屏幕可以有一个或多个测试脚本。为了测试工具是否在正确地执行,测试脚本可以命令工具自动仿真测试屏幕的构建和/或其程序逻辑的编写。如果工具正确地构建或呈现了正确的测试屏幕和/或正确地编写或执行屏幕逻辑,则该工具可以被认为是正确地操作。但是如果工具构建或呈现不正确的测试屏幕、不正确地编写或执行程序逻辑、或者在脚本执行期间崩溃,则该工具可以被认为有需要改正的程序缺陷(bug)。错误分析报告可以指示该工具的什么部分存在缺陷。
图2是描述根据本发明的实施例的自动测试基于图形的编程工具的新方法的框图。在本方法中,开发者可以使用由离散的可重用的测试代码的构造块构成的自动生成的测试脚本、以及由在运行时间期间链接到测试脚本中的相应参数变量的参数数据值构成的自动生成的参数数据文件,来测试基于图形的编程工具。基于图形的编程工具不需要使用记录器工具来生成测试脚本和参数数据文件。而且,基于图形的编程工具可以从测试代码的多个构造块中选择那些对应于所选择的屏幕项目和程序逻辑的构造块,以放在测试脚本中。基于图形的编程工具可以同时将所选择的屏幕项目的参数数据值和程序逻辑放到参数数据文件中。由于构造块是通用的,所以它们可以在具有不同参数数据值的多个测试脚本中重用,以生成想要的屏幕项目和程序逻辑。相反地,相同的参数数据值可以被链接到同一个或多个脚本中的不同的构造块。
例如,图2中的测试脚本1包括链接到数据文件1中的数据A的构造块A。测试脚本2也包括构造块A,但是链接到数据文件2中的数据F。这样,由在测试脚本1中的构造块A生成的程序逻辑和/或屏幕项目可能与测试脚本2中的构造块A生成的程序逻辑和/或屏幕项目不同。测试脚本2包括链接到数据文件2中的数据B的第二构造块B。这样,例如,由此生成的屏幕可以包括程序逻辑和两个屏幕项目。图2中的测试脚本n包括三个构造块Z、G和P。在这个脚本中,数据文件3中的数据G可以链接到构造块G和P两者。这样,程序逻辑和/或屏幕项目的部分虽然在构造块G和P方面不同,但是可以具有相同的参数值。
在测试脚本执行期间,脚本可以导入所链接的数据值以创建屏幕项目和编写程序逻辑。所构建或所呈现的项目以及所编写或所执行的逻辑可以表示该工具是否已正确地构建用于呈现的屏幕以及已正确地编写底层的程序逻辑。在错误分析1开发者可以查看错误分析。
本方法很灵活,因为它允许开发者在生成测试脚本时选择性地重用构造块,并且修改数据值而不必重新生成整个测试脚本。例如,如果基于图形的编程工具被升级,开发者只需要替换测试脚本中升级的构造块以及数据文件中相应的数据,而不必重新生成整个测试脚本和/或数据文件。类似地,如果该工具存在通过测试发现的错误,则开发者只需要改正错误的构造块和/或数据。因为可以用新的参数数据文件来重新执行相同的测试脚本,使重复测试变得更加容易。
除了上述构造块的使用,测试脚本构造块可以用来测试基于图形的编程工具的其它方面。例如,构造块可以用在测试脚本中以便设置或检查屏幕项目属性,诸如保证该项目具有正确的属性和/或程序逻辑,不重叠屏幕中的另一个项目,或者不调用不正确的应用。构造块也可以用在测试脚本中以便测试工具的热键。这些构造块可能会特别有用,这是因为热键通常可能不稳定,需要大量的测试。构造块还可以被用在测试脚本中以便预览屏幕。当然,构造块可以用在测试脚本中以用于不一定适合特定类别的基于图形的编程工具的任何其它方面。
图3是例示根据本发明的实施例的示例性的基于图形的编程工具的屏幕截图。开发者可以使用这个工具来构建就具有程序逻辑的测试屏幕,并生成测试脚本及其参数数据。该工具可以包括以下描述的工具条310、用户设计表单(design form)320、以及属性窗格330。
应当理解图3的基于图形的编程工具是为了例示的目的,因为所述工具可以包括能够执行本发明的实施例的任何功能性。
工具条310可以包括开发者可以包括在屏幕中的屏幕项目的图标。例如,在图3中的图标包括检查按钮、单选按钮、有滚动条的文本框、图形窗格等等。开发者可以点击希望的图标,并将其拖到用户设计表单320上的位置,也就是其将出现在所呈现的屏幕中的位置。同时,工具可以编写与所希望的图标相关联的程序逻辑。当拖动完成时,工具可以将用于那个屏幕项目的构造块及其程序逻辑放到这个屏幕的测试脚本中。
屏幕项目可以有参数数据值,以便与测试脚本中的相应构造块链接。属性面板330可以列出用于那个屏幕项目的参数、其程序逻辑以及参数缺省值。一些值可以被基于图形的编程工具固定;而其它值由开发者来改变。开发者可以将新的值输入到属性面板330的可变字段中。该工具可以将参数数据值放到参数数据文件中,并将这个数据文件链接到这个屏幕的测试脚本。
图3示出了与底层的程序逻辑(未示出)一起使用的“更新商业伙伴”(Update Business Partner)屏幕,以测试基于图形的编程工具。这个屏幕在用户设计表单中320包括:若干编辑框项目,标有“Credit Limit”、“Total Discount”、以及“Interest on Arrears”;静态文本框项目,标有“for Business Partners”;具有若干列标题的矩阵项目;和动作按钮,标有“OK”和“Cancel”。
这个图例示了开发者当前正在构建标有“for Business Partners”的静态文本框。开发者已经把用于静态文本框的图标拖到了设计表单320上的位置中。基于图形的编程工具已经将文本框的构造块代码放在这个屏幕的测试脚本中。由于这是静态文本框,所以没有与其相关的程序逻辑,因为用户不会对这个框进行动作。相反,程序逻辑与屏幕本身相关联,并与可动作的屏幕项目相关联,诸如动作按钮,当用户对该项目进行动作时其可以执行另一个应用。在添加文本框构造块代码之前,测试脚本将已经包含了用于编辑框、矩阵、以及动作按钮的构造块代码。属性面板330示出文本框的参数以及它的缺省值。开发者可以改变性质面板330中的值。然后,所述值将被写入参数数据文件,该参数数据文件已经含有所述编辑框、矩阵、以及动作按钮的参数数据值。
在完成这个“更新商业伙伴”屏幕之后,开发者可以运行导入相应参数数据值的测试脚本来测试基于图形的编程工具是否已经正确地执行了构建屏幕和编写程序逻辑。
图4是根据本发明的实施例的为自动测试基于图形的编程工具而生成的测试脚本文件和参数数据文件的例子。在这个例子中,开发者测试基于图形的编程工具是否已经精确地创建了屏幕本身,即,具有按钮和编辑框的屏幕。
在图4中,测试脚本410可以包括构造块,其包括向屏幕添加按钮、然后向屏幕添加编辑框的工具的动作。例如,当开发者使用该工具向屏幕添加该按钮时,“Add a button”构造块被放在脚本410中。类似地,当开发者使用该工具向屏幕添加编辑框时,“Add an edit box”构造块被放在脚本410中。
在这个实施例中,测试脚本只包括屏幕布局构造块代码。在替换实施例中,测试脚本可以只包括程序逻辑构造块代码,即,当用户点击按钮或在编辑框中编写时发生什么。在另一个替换实施例中,测试脚本也可以包括屏幕布局和底层的程序逻辑两者的构造块代码。
数据文件420可以包括由开发者输入到工具中以便由构造块使用的数据。例如,Block ID 1中的数据包括按钮的数据值。Block ID 2中的数据包括编辑框的数据值。在这个例子中,数据文件为XML格式。但是,应当理解也可以使用能够链接到测试脚本的任何格式。
脚本410可以包括对数据文件420中相应数据值的引用(reference)。在这个例子中,该按钮具有三个参数,“ItemNo”、“Description”、以及“DisplayDesc”。类似地,Block ID 1中的数据可以具有与这些参数相对应的三个值。因此,按钮构造块可以通过识别数据文件并使用利用参数名称作为函数自变量的get-parameter-value函数从数据文件420中导入参数值。例如,脚本中要导入按钮项目号的按钮构造块代码为“ParamFile.GetParameter(“ItemNo”)”。在脚本410中有类似的代码用于剩下的参数数据值。
当开发者执行测试脚本410时,基于图形的编程工具打开。然后测试脚本中的构造块被工具执行以生成希望的屏幕项目。例如,工具执行“Add abutton”构造块,其包括:从表单设计者菜单选择按钮,例如工具条310;添加该按钮到所述屏幕,例如用户设计表单320,同时将其指定为“Block ID 1”;以及通过从链接的参数数据文件中导入按钮参数值来设置所述按钮参数值,例如属性面板330。在任何替换实施例中,参数文件还可以包括屏幕程序逻辑执行的其他应用。然后工具可以执行脚本410的错误分析部分,其中该工具检查按钮信息是否被添加到屏幕文件,然后在屏幕中显示该按钮。如果按钮被正确地显示,则工具正确地执行了添加按钮。在另一个实施例中,如果程序逻辑正确地执行,则工具在添加按钮的程序逻辑中执行正确。
类似地,工具可以执行“Add an edit box”构造块,并确定工具是否操作正确。
图5是根据本发明的实施例的用于生成测试脚本文件和参数数据文件的方法的流程图。基于图形的编程工具可以接收(510)并解析来自开发者的输入。该输入可以包括屏幕项目的选择、屏幕项目属性的选择、开始新屏幕的命令、调用该屏幕的应用的选择、从该屏幕执行的应用的选择、或者与屏幕相关联的任何其它输入。该工具可以基于解析的输入生成(520)屏幕项目和/或底层的程序逻辑。该工具可以将对应于屏幕项目和/或程序逻辑的构造块放到(530)测试脚本文件中。该工具可以将对应于屏幕项目和/或程序逻辑的参数数据放到(540)参数数据文件中。该工具可以通过在测试脚本文件“GetParameter”命令中引用数据文件来链接(550)测试脚本和参数数据文件。现在测试脚本准备好来测试所述工具了。
图6是根据本发明的实施例的用于自动测试基于图形的编程工具的方法的流程图。首先,测试脚本可以使(610)基于图形的编程工具运行。基于图形的编程工具可以执行(620)脚本中的构造块以构建测试屏幕和/或编写底层的程序逻辑。在执行期间,测试脚本可以从相应的参数数据文件导入(630)数据。然后测试脚本可以确定(640)在屏幕项目的添加和/或呈现中、以及/或者在底层的程序逻辑的添加和/或执行中是否存在错误。如果有,则通知开发者存在错误,并且该开发者可以改正基于图形的编程工具代码、构造块、和/或数据。该工具可以接收(650)所述改正,并用改正的工具和/或改正的测试脚本和数据来重复所述测试。如果在工具中没有错误(640),则该工具已经成功地执行。
根据本发明的实施例的编程工具是基于图形的。但是,应当理解本发明的实施例也可以应用到基于文字数字的(alphanumeric-based)、基于图形和文字数字的、以及任何其它适合的编程工具。
图7例示了根据本发明的实施例的基本计算设备的组件。该计算设备可以是个人计算机、工作站、手持个人数字助理(“PDA”)、或者任何其它类型的基于微处理器的设备。计算设备可以包括一个或多个处理器710、输入设备720、输出设备730、存储器740、以及通信设备760。
输入设备720可以包括键盘、鼠标、笔操作触摸屏或监视器、声音识别设备、或提供输入的任何其它设备。输出设备730可以包括监视器、打印机、盘驱动器、扬声器、或者提供输出的任何其它设备。
存储器740可以包括易失性和非易失性数据存储器,包括一个或多个电、磁、光存储器,诸如RAM、高速缓冲存储器、硬盘驱动器、CD-ROM驱动器、磁带驱动器、或者可移动存储盘。通信设备760可以包括调制解调器、网络接口卡、或者能够在网络上发送和接收信号的任何其它设备。该计算设备的组件可以经由电总线或者无线地连接。
软件750,其可以被存储在存储器740,并由处理器710执行、可以包括例如,体现本发明的功能性的应用程序设计。
连接计算机组件的网络可以包括任何类型的互联通信系统,其可以实现任何通信协议,并由任何安全协议来确保安全。相应的网络链接可以包括电话线、DSL、线缆网络、T1或T3线路、无线网络连接、或者任何实现网络信号的发送和接收的布置。
所述计算设备可以实现任何操作系统、诸如Windows或UNIX。软件750可以以任何编程语言来编写、诸如ABAP、C、C++、Java或Visual Basic。在各种实施例中,体现本发明功能性的应用软件可以例如部署在独立的机器上、部署在客户端/服务器布置中、或通过网络浏览器而部署为基于网络的应用或网络服务。
在这里特定地例示和/或描述本发明的若干实施例。但是,应当理解在不脱离本发明的精神和预期的范围的情况下,本发明的修改和变化都由上述教导所涵盖,并在所附权利要求书的范围之内。
Claims (16)
1.一种计算机实现的方法,包括:
从编程工具接收图形、文本、逻辑、或数字信息中的至少一种作为输入;
解析所述输入以确定要放在测试脚本文件中的可重用的测试代码块和要放在数据文件中的参数数据;
自动将所确定的可重用的测试代码块放到所述测试脚本文件中;
自动将所确定的参数数据放到所述数据文件中;以及
链接所述数据文件与所述测试脚本文件以测试所述输入。
2.如权利要求1所述的方法,还包括:
重用具有不同参数数据的所述块以测试所述输入。
3.如权利要求1所述的方法,还包括:
重用具有不同块的参数数据以测试所述输入。
4.如权利要求1所述的方法,其中所述块执行由所述输入代表的功能。
5.如权利要求1所述的方法,其中所述数据定义了由所述输入代表的功能的参数。
6.一种计算机实现的方法,包括:
执行包括可重用的测试代码块的测试脚本以运行编程工具;
将参数数据导入所述测试脚本中;
使用导入的参数数据执行所述块以构建图形用户接口屏幕,并使用编程工具生成所述屏幕底层的程序逻辑;
分析所构建的屏幕和所生成的程序逻辑以确定编程工具是否正确地构建了所述屏幕以及生成了所述程序逻辑;
如果所述编程工具包括数据错误,则替换错误的参数数据;
如果所述编程工具包括图形错误或逻辑错误,则替换错误的块;
如果所述编程工具包括执行错误,则替换所述编程工具的错误的可执行代码;以及
用所述替换数据、替换块、或替换可执行代码中的至少一个重新执行所述测试脚本以测试所述编程工具。
7.如权利要求6所述的方法,其中所述导入包括:
从数据文件检索对应于所述块的参数数据。
8.如权利要求6所述的方法,其中所述导入包括:
在数据文件中识别对应于所述块中的变量的变量;以及
从所述数据文件检索所述数据文件变量的值。
9.如权利要求6所述的方法,还包括:
确定所述编程工具是否包含错误。
10.一种计算机实现的系统,包括:
用于从编程工具接收图形、文本、逻辑、或数字信息中的至少一种作为输入的装置;
用于解析所述输入以确定要放在脚本文件中的可重用的测试代码块和要放在数据文件中的参数数据的装置;
用于自动将所确定的可重用的测试代码块放到所述测试脚本文件中的装置;
用于自动将所确定的参数数据放到所述数据文件中的装置;以及
用于链接所述数据文件与所述测试脚本文件以测试所述输入的装置。
11.如权利要求10所述的系统,还包括重用具有不同参数数据的所述块以测试所述输入的装置。
12.如权利要求10所述的系统,还包括重用具有不同块的参数数据以测试所述输入的装置。
13.一种计算机实现的系统,包括:
用于执行包括可重用的测试代码块的测试脚本以运行编程工具的装置;
用于将参数数据导入所述测试脚本中的装置;
用于使用导入的参数数据执行所述块以构建图形用户接口屏幕,并使用编程工具生成所述屏幕底层的程序逻辑的装置;
用于分析所构建的屏幕和所生成的程序逻辑以确定编程工具是否正确地构建了所述屏幕以及生成了所述程序逻辑的装置;
用于如果所述编程工具包括数据错误则替换错误的参数数据的装置;
用于如果所述编程工具包括图形错误或逻辑错误则替换错误的块的装置;
用于如果所述编程工具包括执行错误则替换所述编程工具的错误的可执行代码的装置;以及
用于以所述替换数据、替换块、或替换可执行代码中的至少一个重新执行所述测试脚本以测试所述编程工具的装置。
14.如权利要求13所述的系统,其中用于将参数数据导入所述测试脚本中的装置还包括用于从数据文件检索对应于所述块的参数数据的装置。
15.如权利要求13所述的系统,其中用于将参数数据导入所述测试脚本中的装置还包括用于在数据文件中识别对应于所述块中的变量的变量的装置,以及用于从所述数据文件检索所述数据文件变量的值的装置。
16.如权利要求13所述的系统,还包括用于确定所述编程工具是否包含错误的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/393,941 US7856619B2 (en) | 2006-03-31 | 2006-03-31 | Method and system for automated testing of a graphic-based programming tool |
US11/393,941 | 2006-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101046767A CN101046767A (zh) | 2007-10-03 |
CN101046767B true CN101046767B (zh) | 2012-05-30 |
Family
ID=38560917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100921232A Active CN101046767B (zh) | 2006-03-31 | 2007-04-02 | 用于自动测试基于图形的编程工具的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7856619B2 (zh) |
CN (1) | CN101046767B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100988855B1 (ko) * | 2008-10-10 | 2010-10-20 | 한국원자력연구원 | 비정상 상태 진단 장치 및 진단 방법 |
US8849612B2 (en) * | 2009-09-14 | 2014-09-30 | Fourthwall Media, Inc. | System and method of substituting parameter sets in self-contained mini-applications |
US8627295B2 (en) * | 2009-10-09 | 2014-01-07 | General Electric Company | Methods and apparatus for testing user interfaces |
US8381040B2 (en) * | 2009-10-26 | 2013-02-19 | International Business Machines Corporation | Relocatable interrupt handler for test generation and execution |
US8645914B2 (en) * | 2010-01-22 | 2014-02-04 | AgentSheets, Inc. | Conversational programming |
US8195982B2 (en) * | 2010-06-22 | 2012-06-05 | TestPro Pty Ltd | Systems and methods for managing testing functionalities |
US8522212B1 (en) * | 2010-07-21 | 2013-08-27 | Google Inc. | Auto generation of test utility bots using compile time heuristics of user interface source code |
CN102053912A (zh) * | 2011-01-06 | 2011-05-11 | 中国工商银行股份有限公司 | 一种基于uml图形对软件进行自动化测试的装置及方法 |
US10255152B2 (en) * | 2011-02-18 | 2019-04-09 | Entit Software Llc | Generating test data |
CN103518183B (zh) | 2011-04-07 | 2017-05-17 | 惠普发展公司,有限责任合伙企业 | 图形对象分类 |
US9244510B1 (en) * | 2011-09-23 | 2016-01-26 | The Mathworks, Inc. | Bug report checks in a modeling system |
CN103365643B (zh) * | 2012-03-30 | 2017-07-21 | Ge医疗系统环球技术有限公司 | 一种自动生成图形用户界面的测试脚本的方法及装置 |
CN104956326A (zh) * | 2013-02-01 | 2015-09-30 | 惠普发展公司,有限责任合伙企业 | 基于抽象测试用户控制的测试脚本创建 |
US9021442B2 (en) | 2013-02-13 | 2015-04-28 | Sap Se | Dynamic scenario testing of web application |
US9612940B1 (en) * | 2013-05-31 | 2017-04-04 | The Mathworks, Inc. | Combination and reuse of parameters in an automated test environment |
CN103441900B (zh) * | 2013-08-27 | 2016-04-27 | 上海新炬网络技术有限公司 | 集中式跨平台自动化测试系统及其控制方法 |
CN103500139B (zh) * | 2013-09-25 | 2016-01-13 | 刘爱琴 | 一种通信软件集成测试系统及测试方法 |
WO2016015220A1 (en) * | 2014-07-29 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Executable code abnormality detection |
US9767009B2 (en) * | 2014-11-10 | 2017-09-19 | International Business Machines Corporation | Adaptation of automated test scripts |
US9658944B2 (en) | 2015-08-20 | 2017-05-23 | Ca, Inc. | Generic test automation for graphical user interface (GUI) applications |
US9727313B2 (en) * | 2015-08-26 | 2017-08-08 | Ross Video Limited | Systems and methods for bi-directional visual scripting for programming languages |
US10255045B2 (en) * | 2015-10-28 | 2019-04-09 | Apple Inc. | Graphical representation of data in a program code editor |
US10289534B1 (en) * | 2015-10-29 | 2019-05-14 | Amdocs Development Limited | System, method, and computer program for efficiently automating business flow testing |
US10229038B2 (en) * | 2016-03-15 | 2019-03-12 | International Business Machines Corporation | Generating reusable testing procedures |
CN107368428A (zh) * | 2017-09-07 | 2017-11-21 | 马上消费金融股份有限公司 | 一种软件测试方法及软件测试系统 |
CN110515825B (zh) * | 2018-05-22 | 2021-08-20 | 株洲中车时代电气股份有限公司 | 一种针对图形化编程语言的测试方法及系统 |
CN109213678A (zh) * | 2018-07-20 | 2019-01-15 | 中国邮政储蓄银行股份有限公司 | 确定测试数据的方法和装置 |
CN110688296A (zh) * | 2019-02-25 | 2020-01-14 | 上海核工程研究设计院有限公司 | 一种针对计算机化规程组态的自动化测试方法 |
CN112148625A (zh) * | 2020-11-24 | 2020-12-29 | 中电科新型智慧城市研究院有限公司 | 业务逻辑调试方法、装置、设备及计算机可读存储介质 |
US11392486B1 (en) | 2021-07-09 | 2022-07-19 | Morgan Stanley Services Group Inc. | Multi-role, multi-user, multi-technology, configuration-driven requirements, coverage and testing automation |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600789A (en) * | 1992-11-19 | 1997-02-04 | Segue Software, Inc. | Automated GUI interface testing |
US6332211B1 (en) * | 1998-12-28 | 2001-12-18 | International Business Machines Corporation | System and method for developing test cases using a test object library |
US6421822B1 (en) * | 1998-12-28 | 2002-07-16 | International Business Machines Corporation | Graphical user interface for developing test cases using a test object library |
US6993747B1 (en) * | 1999-08-30 | 2006-01-31 | Empirix Inc. | Method and system for web based software object testing |
US6934934B1 (en) * | 1999-08-30 | 2005-08-23 | Empirix Inc. | Method and system for software object testing |
JP2002202899A (ja) * | 2000-12-28 | 2002-07-19 | Toshiba Corp | デバッガの機能拡張方法、デバッグシステム及びデバッガプログラムを記録した記録媒体 |
AT411802B (de) * | 2001-06-01 | 2004-05-25 | Siemens Ag Oesterreich | Verfahren zum testen von software |
US6961873B2 (en) * | 2001-09-14 | 2005-11-01 | Siemens Communications, Inc. | Environment based data driven automated test engine for GUI applications |
US6948152B2 (en) * | 2001-09-14 | 2005-09-20 | Siemens Communications, Inc. | Data structures for use with environment based data driven automated test engine for GUI applications |
US7526498B2 (en) * | 2001-09-14 | 2009-04-28 | Siemens Communications, Inc. | Method for generating data structures for automatically testing GUI applications |
US7058857B2 (en) * | 2001-10-10 | 2006-06-06 | International Business Machines Corporation | Method and system for testing a software product |
US7039899B1 (en) * | 2002-03-27 | 2006-05-02 | Oracle International Corporation | System and method for automatically generating a script for testing software |
US7174541B2 (en) * | 2002-06-28 | 2007-02-06 | Sap Aktiengesellschaft | Testing of applications |
US8682636B2 (en) * | 2002-08-30 | 2014-03-25 | Sap Ag | Non-client-specific testing of applications |
US7124401B2 (en) * | 2002-09-03 | 2006-10-17 | Sap Aktiengesellschaft | Testing versions of applications |
US6772083B2 (en) * | 2002-09-03 | 2004-08-03 | Sap Aktiengesellschaft | Computer program test configurations with data containers and test scripts |
US7305659B2 (en) * | 2002-09-03 | 2007-12-04 | Sap Ag | Handling parameters in test scripts for computer program applications |
US7272822B1 (en) * | 2002-09-17 | 2007-09-18 | Cisco Technology, Inc. | Automatically generating software tests based on metadata |
CN1328689C (zh) | 2002-11-22 | 2007-07-25 | 中兴通讯股份有限公司 | 一种系统产品的自动化测试方法 |
TWI262383B (en) * | 2003-01-10 | 2006-09-21 | Univ Nat Cheng Kung | A generic software testing system and method |
US7191172B2 (en) * | 2003-03-25 | 2007-03-13 | International Business Machines Corporation | Fuzzy location of a testable object in a functional testing tool |
US20040199818A1 (en) * | 2003-03-31 | 2004-10-07 | Microsoft Corp. | Automated testing of web services |
JP2007535723A (ja) * | 2003-11-04 | 2007-12-06 | キンバリー クラーク ワールドワイド インコーポレイテッド | 複合ソフトウエアシステムを実施して検証するための自動多次元追跡可能性行列を含む試験ツール |
US7913231B2 (en) * | 2004-05-11 | 2011-03-22 | Sap Ag | Testing pattern-based applications |
US20050268285A1 (en) * | 2004-05-25 | 2005-12-01 | International Business Machines Corporation | Object oriented GUI test automation |
CN100382624C (zh) | 2004-07-08 | 2008-04-16 | 中兴通讯股份有限公司 | 一种cdma手机软件自动测试的方法及装置 |
US20060101404A1 (en) * | 2004-10-22 | 2006-05-11 | Microsoft Corporation | Automated system for tresting a web application |
US7934200B2 (en) * | 2005-07-20 | 2011-04-26 | International Business Machines Corporation | Enhanced scenario testing of an application under test |
US8132147B2 (en) * | 2007-05-29 | 2012-03-06 | Sap Ag | Semantic interpretation of software models for generating user interfaces |
US8140986B2 (en) * | 2007-09-27 | 2012-03-20 | International Business Machines Corporation | Generating test scenarios using reusable triggers indicating graphical user interface (GUI) elements and actions |
-
2006
- 2006-03-31 US US11/393,941 patent/US7856619B2/en active Active
-
2007
- 2007-04-02 CN CN2007100921232A patent/CN101046767B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101046767A (zh) | 2007-10-03 |
US7856619B2 (en) | 2010-12-21 |
US20070234121A1 (en) | 2007-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101046767B (zh) | 用于自动测试基于图形的编程工具的方法和系统 | |
US7913230B2 (en) | Computer-implemented methods and systems for generating software testing documentation and test results management system using same | |
US7596778B2 (en) | Method and system for automatic error prevention for computer software | |
US10127141B2 (en) | Electronic technology resource evaluation system | |
US7076713B1 (en) | Test generator for converting a model of computer component object behavior and stimulus values to test script | |
US6895577B1 (en) | Risk metric for testing software | |
US20030046029A1 (en) | Method for merging white box and black box testing | |
Laukkanen | Data-driven and keyword-driven test automation frameworks | |
Costa et al. | Pattern based GUI testing for mobile applications | |
EP1236104A4 (en) | METHOD FOR COMPUTER-ASSISTED TESTING OF SOFTWARE APPLICATION COMPONENTS | |
AU4732299A (en) | Method for defining durable data for regression testing | |
US11138097B2 (en) | Automated web testing framework for generating and maintaining test scripts | |
US10445225B2 (en) | Command coverage analyzer | |
Zhu et al. | A test automation solution on gui functional test | |
CN111444109B (zh) | 一种移动端ui自动化测试方法及系统 | |
Naslavsky et al. | Towards traceability of model-based testing artifacts | |
Jain et al. | Comparative study of software automation testing tools: OpenScript and selenium | |
Shugurov et al. | Iskra: a tool for process model repair | |
Kent | Test automation: From record/playback to frameworks | |
CN116932414B (zh) | 界面测试用例的生成方法、设备及计算机可读存储介质 | |
Gunawan | Keyword Recorder for Robot Framework | |
Elssamadisy et al. | Functional testing: a pattern to follow and the smells to avoid | |
Saddler | EventFlowSlicer: A Goal-based Test Case Generation Strategy for Graphical User Interfaces | |
Sneed | Source Animation as a means of Program Comprehension for object-oriented Systems | |
Khatak | Test case selection and prioritzation for object-oriented software based on slicing and coupling |
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 |