测试脚本生成系统的制作方法

文档序号:6540743阅读:143来源:国知局
测试脚本生成系统的制作方法
【专利摘要】本发明的各实施例涉及测试脚本生成系统。测试脚本生成系统可以生成端到端测试脚本以测试软件应用的。工作流生成器可以生成关于对应于域特定参考应用映射的、将包括在工作流中的建议的模块的推荐。可以生成工作流的视觉表示并且其提供对尚未被包括在工作流中的建议的模块的指示。脚本生成器可以基于工作流来生成端到端测试脚本。
【专利说明】测试脚本生成系统

【技术领域】
[0001]本发明的各实施例总体上涉及测试脚本,并且更具体地涉及测试脚本生成系统。

【背景技术】
[0002]测试脚本编写是软件测试中的主要的、努力密集型(effort-1ntensive)阶段。这一阶段最主导的是人工的、易出错的过程,该过程经常导致除脚本编写之外的高返工和维护努力。在一些实例中,创建测试脚本所花费的时间可以等于或超过测试被测试软件所花费的时间。此外,在许多情况下,测试者不具有在其中使用软件的特定域(domain)中的专业知识,这进一步恶化了测试脚本编写阶段的低效性和易错性。


【发明内容】

[0003]本发明的各实施例涉及测试脚本生成系统。
[0004]本发明的一个实施例涉及一种测试脚本生成系统,包括:
[0005]数据储存库,用于存储多个域特定参考应用映射,其中每个映射包括多个模块以及用于该模块的多个测试脚本;
[0006]映射管理模块,用于从用户接收标识域的第一输入,并且从该数据储存库取回该多个域特定参考应用映射中用于该域的一个域特定参考应用映射;
[0007]工作流生成器,由处理器可执行以
[0008]生成对应于取回的该映射的、将包括在工作流中的建议的模块的推荐,
[0009]从该用户接收对将包括在该工作流中的建议的模块的选择,
[0010]确定该用户是否尚未选择该建议的模块中的一个建议的模块,
[0011]如果该用户尚未选择该建议的模块中的一个建议的模块,则在该工作流的视觉表示上显示未被选择的模块,并且显示该模块是相对于该工作流的未被选择的模块的指示,并且
[0012]根据选择的该模块和由该用户选择的用于工作流的任何其它模块确定该工作流;以及
[0013]脚本生成器,用于基于该工作流来生成端到端测试脚本。
[0014]本发明的另一实施例涉及一种用于创建测试脚本的方法,包括:
[0015]在数据储存库中存储多个域特定参考应用映射,每个映射包括多个模块;
[0016]在该数据储存库中存储用于该模块的多个测试脚本;
[0017]从用户接收标识域的第一输入;
[0018]从该数据储存库取回该多个域特定参考应用映射中的用于该域的一个域特定参考应用映射;
[0019]生成对应于从该数据储存库取回的该映射的、将包括在工作流中的建议的模块的推荐;
[0020]从该用户接收对将包括在该工作流中的建议的模块的选择;
[0021]确定该用户是否尚未选择该建议的模块中的一个建议的模块;
[0022]如果该用户尚未选择该建议的模块中的一个建议的模块,则在该工作流的视觉表示上显示未被选择的模块以及该模块是相对于该工作流的未被选择的模块的指示;并且
[0023]根据选择的该模块和由该用户选择的用于工作流的任何其它模块确定该工作流;以及
[0024]基于该工作流来生成端到端测试脚本。
[0025]本发明的又一实施例涉及一种非瞬态计算机可读介质,包括由处理器可执行用于以下各项的机器可读指令:
[0026]在数据储存库中存储多个域特定参考应用映射,每个映射包括多个模块;
[0027]在该数据储存库中存储用于该模块的多个测试脚本;
[0028]从用户接收标识域的第一输入;
[0029]从该数据储存库取回该多个域特定参考应用映射中的用于该域的一个域特定参考应用映射;
[0030]生成对应于从该数据储存库取回的该映射的、将包括在工作流中的建议的模块的推荐;
[0031]从该用户接收对将包括在该工作流中的建议的模块的选择;
[0032]确定该用户是否尚未选择该建议的模块中的一个建议的模块;
[0033]如果该用户尚未选择该建议的模块中的一个建议的模块,则在该工作流的视觉表示上显示未被选择的模块以及该模块是相对于该工作流的未被选择的模块的指示;并且
[0034]根据选择的该模块和由该用户选择的用于工作流的任何其它模块确定该工作流;以及
[0035]基于该工作流来生成端到端测试脚本。

【专利附图】

【附图说明】
[0036]在以下描述中参考在附图中示出的示例详细描述实施例。
[0037]图1图示了用于测试脚本生成系统的数据流图的示例。
[0038]图2图示了根据示例的测试脚本生成系统。
[0039]图3至图9图示了用于生成端到端测试脚本的屏幕截图的示例。
[0040]图10图示了用于建立参考应用映射的方法的示例。
[0041]图11图示了用于创建和存储测试脚本的方法的示例。
[0042]图12图示了样本测试脚本模板的示例。
[0043]图13图示了用于基于工作流生成端到端测试脚本的方法的示例。
[0044]图14图示了可以用于在此描述的方法和系统的计算机系统的示例。

【具体实施方式】
[0045]出于简化和例示性的目的,通过主要参照本发明的实施例的示例来描述实施例的原理。在以下说明中,阐述了大量具体细节以便提供对实施例的透彻理解。显然,可以在不受限于所有的具体细节的情况下实践实施例。同样,实施例可以按照各种组合被一起使用。
[0046]根据一个实施例,测试脚本生成系统自动生成工作流和端到端测试脚本。该系统支持软件设计和测试并且在软件测试中有效地使测试脚本编写过程自动化。该系统可以使用可以描述在被测试应用中的过程以及该过程如何彼此链接的参考应用映射。此外,该系统可以生成用于测试脚本生成的建议,该建议用于可能需要被包括在端到端测试脚本中以测试被测试应用(AUT)的对应的测试脚本和相关过程。因此,可能不具有对AUT领域(field)或域的深入了解的软件测试者不易于遗漏测试由AUT执行的重要过程。而且,该系统可以生成指示为了 AUT而被测试的过程以及每个过程在AUT的整个工作流中位于何处的端到端工作流图。
[0047]图1图示了根据实施例的包括测试脚本生成系统100的数据流图。测试脚本生成系统100可以从测试脚本储存库102接收测试脚本模块110并且从参考应用映射储存库103接收参考应用映射111 (也被称作映射111)。测试脚本模块110是可以被组合以形成端到端测试脚本的测试脚本。根据输入,测试脚本生成系统100可以生成可以是跨AUT的端到端测试脚本的测试脚本105和工作流104。
[0048]测试脚本储存库102存储用于测试软件的测试脚本模块110。测试脚本110可以是包括用于测试软件的指令的人工测试脚本或者可以包括被执行以测试软件的自动化测试脚本。人工测试脚本被用于说明将由软件测试者执行以测试软件的人工步骤,并且可以例如被提供在文本文档或电子表格中。自动化测试脚本可以被用于向基于现有测试自动化工具建立的兼容的测试提供自动化框架提供输入以自动化地执行用于测试软件的步骤。测试脚本储存库102可以包括数据库或者另一类型的数据存储系统。
[0049]参考应用映射111为商务过程或用于应用的任何类型的过程如何被映射在一起提供文档。映射可以包括描述被编码以创建应用的商务过程或其他类型的过程的模块。模块可以包括按照XML或其他另一格式的描述,并且该描述对在应用中编码的过程进行描述。映射还可以包括对如何基于执行模块的序列来连接模块的描述。例如,如果模块表示将以1-3的顺序执行商务过程1-3,则用于应用的映射包括用于商务过程1-3的模块以及指示模块被按照这一顺序映射在一起的描述以便表示商务过程1-3的执行顺序。
[0050]由测试脚本生成系统100生成的工作流104可以包括用于由脚本测试对应用进行测试的模块。可以基于由测试脚本生成系统100根据映射111提供的建议来形成工作流104。测试脚本生成系统100可以例如在图形用户界面上生成工作流的示图,该图形用户界面允许用户从工作流添加或移除模块以及基于用于应用的参考应用映射和已经被包括在工作流中的模块呈现对于将包括在工作流中的模块建议。工作流还包括用于表示在工作流中模块如何连接以及测试每个模块的执行顺序的链接。模块可以具有相关性,其可以包括接收预定输入。这些相关性可以通过链接被捕获并且被以文档形式记录在用于每个模块的测试脚本中并且由该测试脚本测试。测试脚本105可以各自包括测试例如在对应工作流中的所有模块的端到端脚本。
[0051]图2示出测试脚本生成系统100的框图。测试脚本生成系统100可以包括脚本生成器101、工作流生成器202、映射管理模块203、脚本管理模块204和用户界面205。测试脚本生成系统100可以包括硬件和/或在硬件上执行的机器可读指令。
[0052]脚本生成器101例如基于在工作流104中的模块来生成端到端测试脚本105。工作流生成器202例如基于用户对将包括在工作流中的模块的选择以及由工作流生成器202根据对应映射确定的建议来生成工作流104。用户界面205可以包括可以呈现用于用户选择模块的选项并且可以接收用户对模块的选择以生成工作流的图形用户界面。
[0053]映射管理模块203可以创建参考应用映射111。例如,映射管理模块203允许用户创建用于不同域的映射以及包括用于在映射中的可应用过程的模块。域可以包括其中使用应用的特定领域或范围(area)。域可以标识具体的行业,或者更具体地比如行业内的特定范围。例如,可以创建用于电信行业的域,或者可以创建用于宽带、无线、卫星等的、用于在行业内的这些范围的域。映射管理模块203还允许用户根据需要来添加、删除和修改映射。
[0054]脚本管理模块204可以向每个模块指派测试脚本,并且这些指派可以被用于创建端到端测试脚本。例如,数据储存库211可以存储可以用于模块113的测试脚本110。脚本管理模块204可以创建并维护标识用于每个模块的测试脚本的索引,其可以被脚本生成器101用于标识并组合用于在工作流中的每个模块的测试脚本以创建端到端测试脚本。例如,索引包括模块ID和用于每个模块的测试脚本的关联。可以在索引上用模块ID执行查找以从数据储存库211取回对应测试脚本。脚本管理模块204还可以接收测试脚本并且在数据储存库211中存储测试脚本,比如测试脚本110。
[0055]数据储存器211可以包括数据库或另一类型的存储系统。数据储存库211可以包括单个储存库,该单个储存库包括在图1中示出的储存库102和103,或者数据储存库211可以包括多个储存库,比如在图1中所示出的。数据储存库211可以存储由测试脚本生成系统100所使用的任何数据,比如端到端测试脚本105、可以用于个体模块的测试脚本110、模块113、工作流104以及参考应用映射111。
[0056]测试脚本生成系统100可以基于建议的模块生成工作流。图3-图9图示了可以由测试脚本生成系统200生成的、用于创建工作流程以及从工作流生成端到端测试脚本的屏幕截图的示例。在图3-图9中示出的屏幕截图以及以下描述的其他屏幕截图可以被呈现于用户界面205中或者被呈现于另一应用的用户界面中。系统100的工作流生成器202可以执行与屏幕截图关联的功能以创建工作流,并且脚本生成器101可以生成测试脚本。
[0057]图3示出可以从域下拉菜单选择域。该选择被接收并被存储。在这一示例中在下拉菜单中示出的域用于不同通信域,比如宽带、电缆、固定(fixed)和无线。在这一示例中,针对固定选择域。固定可以指各种类型的固定线路产品,包括固定电话线路或陆上通信线。
[0058]每个域可以具有与其关联的一个或多个映射。域名称及它们的关联的映射可以被存储在数据储存器211中并且被呈现以供选择。图4示出与固定域关联的映射,其可以响应于对固定域的选择经由列表菜单被呈现。每个映射可以与特定应用或特定过程(或过程集合)关联,比如客户界面管理、销售、订单处理、问题处理、保持力和忠诚度、记账和收集管理等,这些都是用于固定有线产品的之后的电信过程。在图4中示出的映射示例通常涉及创建并管理用于固定域中的电信业务的客户合同。用户可以选择显示的映射并且该选择被接收和存储。
[0059]图5示出在建议的组件列表框中显示用于选择的映射的模块。例如,选择销售映射并且在建议的组件列表框中显示用于销售映射的模块。用户可以选择建议的模块中的一个建议的模块并且将其添加到添加的组件列表框中以在工作流中包括模块。图6示出通过在添加的组件列表框中包括管理前景-前景创建(manage prospect-prospect creation)模块来将其添加到工作流。同样,响应于添加前景-前景创建模块,系统100确定在映射中的下一个预期的模块是管理前景-报价创建(manage prospect-quote creation),其独自被显示在建议的组件列表框中。用户可以然后选择这一模块以用于工作流。图7示出添加模块的过程持续,直到用户所期望的。然后,用户可以点击保存流按钮以将工作流保存到数据储存库211。然后,可以通过使用加载保存的流按钮来重新加载这一保存的流而在日后将该保存的流程用作快速参考。这可以避免用户必须从头开始重新创建工作流。
[0060]用户可以通过点击生成脚本按钮来提示生成用于工作流的端对到脚本。系统100例如从数据储存库211顺序地将在工作流中用于模块的所有测试脚本复制到单个脚本以生成端到端脚本。
[0061]图8示出用于管理前景-创建前景(manage prospect-create prospect)的模块并且示出用于该模块的人工测试脚本,在该示例中其包括:转到联系人部分、选择选项以创建联系人、将其填入、保存以及检查联系人类型等。示出了用于管理前景-报价创建以及协商销售 _ 服务配置-数据(negotiate sales-service configuration-data)的人工测试脚本的示例。
[0062]用户还可以选择查看流按钮以在图形表示中查看在工作流中的模块并且示出在总过程中每个模块的位置。图9在图形表示中示出了来自工作流的模块中的一些模块。系统100根据所选择的映射来确定在过程中的建议的模块中的哪个建议的模块还没有被包括在工作流中,并且在当前工作流中包括这些模块与其他们被建议但未被包括的指示。在这一示例中,示出了两个这样的模块:协商销售-联系人和SLA-用户不同意(negotiatesales-contracts and SLAs-User Disagrees)以及协商销售-报价批准(NegotiateSales-Quote (s) Approval)。例如,工作流生成器202根据在模块在映射中的关联来确定模块协商销售-服务配置的输出可以潜在地在两个不同路径上连接到两个模块。当前被包括在工作流中的一个路径表示如果用户同意协商的服务配置;并且第二路径是如果用户不同意则继续协商。第二路径当前未被包括在工作流中但是表示备选路径,该备选路径可以由软件测试者测试。第二路径例如是来自主路径的分支。因此,用于第二路径的模块被示出,所以用户可以选择其以用于工作流。类似地,包括用于协商销售-报价批准的模块的路径当前不在工作流中而是被示出具有用户可以识别作为如下备选路径的指示,该备选路径基于映射被建议包括在工作流中但是当前不在工作流中。
[0063]系统100可以被用于建立参考应用映射111,其可以被用于如上所述在各种域中为工作流进行建议。图10描述了一种用于建立参考应用映射的方法1000。在系统100中的映射管理模块204可以有助于建立和修改映射,但方法1000可以由其他系统执行。而且,可以经由用户界面205来提供用于创建映射的用户输入。
[0064]在1001,映射管理模块203为将创建的新映射确定域。域集合可以被存储在数据储存库中。可以经由用户界面205来提供列出所存储的域的下拉菜单,并且映射管理模块203接收用户经由下拉菜单做出的对域的选择。如果映射用于新域,则用户还可以创建新域。
[0065]在1002,映射管理模块203确定用于映射的模块。例如,用户确定由应用或由总过程执行的所有过程。过程可以是商务过程或者由应用执行的或用于总过程的任何功能或动作。这些过程可以是模块,并且用户可以将模块输入系统100中。
[0066]在1003,映射管理模块203确定在模块之间的、指示模块的执行顺序的关联。执行顺序可以包括多于一个路径,比如在图9中的示例中所示出的。
[0067]在1004,映射管理模块203存储映射及其模块和关联。例如,下表1示出包括所有可能模块的列表的用户输入,其可以被用于样本映射。表1可以由用户经由用户界面205来填充。假设用于映射的所可能模块包括在表1的列A中示出的组件1-5。
[0068]表1
[0069]

【权利要求】
1.一种测试脚本生成系统,包括: 数据储存库,用于存储多个域特定参考应用映射,其中每个映射包括多个模块以及用于所述模块的多个测试脚本; 映射管理模块,用于从用户接收标识域的第一输入,并且从所述数据储存库取回所述多个域特定参考应用映射中用于所述域的一个域特定参考应用映射; 工作流生成器,由处理器可执行以 生成对应于取回的所述映射的、将包括在工作流中的建议的模块的推荐, 从所述用户接收对将包括在所述工作流中的建议的模块的选择, 确定所述用户是否尚未选择所述建议的模块中的一个建议的模块, 如果所述用户尚未选择所述建议的模块中的一个建议的模块,则在所述工作流的视觉表示上显示未被选择的模块,并且显示所述模块是相对于所述工作流的未被选择的模块的指示,并且 根据选择的所述模块和由所述用户选择的用于工作流的任何其它模块确定所述工作流;以及 脚本生成器,用于基于所述工作流来生成端到端测试脚本。
2.根据权利要求1 所述的系统,其中所述脚本生成器用于从所述工作流标识模块,从所述数据储存库取回所述测试脚本中的用于每个模块的一个测试脚本,以及组合取回的所述测试脚本以生成所述端到端测试脚本。
3.根据权利要求2所述的系统,其中所述工作流生成器用于生成模块以及用于每个模块的测试脚本的索引,以及在所述索引上使用模块ID执行查找以标识用于所述模块的所述测试脚本并且从所述数据储存库取回标识的所述测试脚本。
4.根据权利要求1所述的系统,其中所述工作流生成器用于在用户界面中生成所述工作流的所述视觉表示,并且可视化包括针对所述工作流选择的模块以及未选择的所述模块,并且可视化包括在所述工作流中的多个路径,并且在所述多个路径中的一个路径上示出未被选择的所述模块。
5.根据权利要求1所述的系统,包括脚本管理模块,用于: 确定用于生成测试脚本的模板, 经由所述模板接收用户输入,其中所述用户输入包括模块ID和对应于所述模块ID的测试脚本,以及 将所述测试脚本和所述模块ID存储在所述数据储存库中。
6.根据权利要求5所述的系统,其中所述测试脚本包括人工测试脚本,并且在用户经由所述模板输入时接收用于所述人工测试脚本的步骤。
7.根据权利要求5所述的系统,其中所述测试脚本是由所述处理器可执行的自动化测试脚本,其中所述自动化测试脚本被上传到所述测试脚本生成系统。
8.根据权利要求1所述的系统,其中所述域特定参考应用映射中的每个域特定参考应用映射包括模块以及在所述模块之间的、描述所述模块的执行顺序的关联。
9.根据权利要求8所述的系统,其中所述执行顺序包括多个路径,所述多个路径包括来自所述执行顺序中的主路径的至少一个分支。
10.根据权利要求1所述的系统,其中每个域是行业特定的,并且用于每个域的所述映射描述针对对应的所述域内的所述行业被执行的过程。
11.一种用于创建测试脚本的方法,包括: 在数据储存库中存储多个域特定参考应用映射,每个映射包括多个模块; 在所述数据储存库中存储用于所述模块的多个测试脚本; 从用户接收标识域的第一输入; 从所述数据储存库取回所述多个域特定参考应用映射中的用于所述域的一个域特定参考应用映射; 生成对应于从所述数据储存库取回的所述映射的、将包括在工作流中的建议的模块的推荐; 从所述用户接收对将包括在所述工作流中的建议的模块的选择; 确定所述用户是否尚未选择所述建议的模块中的一个建议的模块; 如果所述用户尚未选择所述建议的模块中的一个建议的模块,则在所述工作流的视觉表示上显示未被选择的模块以及所述模块是相对于所述工作流的未被选择的模块的指示;并且 根据选择的所述模块和由所述用户选择的用于工作流的任何其它模块确定所述工作流;以及 基于所述工作流来生成端到端测试脚本。
12.根据权利要求11所述的方法,其中基于所述工作流来生成端到端测试脚本包括: 从所述工作流标识模块; 从所述数据储存库取回所述测试脚本中用于每个模块的一个测试脚本;以及 组合取回的所述测试脚本以生成所述端到端测试脚本。
13.根据权利要求12所述的方法,包括: 生成模块以及用于每个模块的测试脚本的索引;并且 从所述数据储存库取回用于每个模块的所述测试脚本包括在所述索引上使用模块ID执行查找以标识用于所述模块的所述测试脚本以及从所述数据储存库取回标识的所述测试脚本。
14.根据权利要求11所述的方法,其中所述未选择的模块的所述显示包括: 在用户界面中生成所述工作流的所述视觉表示,其中可视化包括针对所述工作流选择的模块以及未选择并且与在所述工作流中的所述模块相关的所述模块。
15.根据权利要求14所述的方法,其中所述可视化包括在所述工作流中的多个路径以及在所述多个路径中的一个路径上示出的未被选择的所述模块。
16.根据权利要求11所述的方法,其中所述域特定的参考应用映射中的每个域特定的参考应用映射包括模块以及在所述模块之间的描述所述模块的执行顺序的关联。
17.根据权利要求16所述的方法,其中所述执行顺序包括多个路径,所述多个路径包括来自所述执行顺序中的主路径的至少一个分支。
18.根据权利要求11所述的方法,其中每个域是行业特定的,并且用于每个域的所述映射描述针对对应的所述域内的所述行业被执行的过程。
19.一种非瞬态计算机可读介质,包括由处理器可执行用于以下各项的机器可读指令:在数据储存库中存储多个域特定参考应用映射,每个映射包括多个模块; 在所述数据储存库中存储用于所述模块的多个测试脚本; 从用户接收标识域的第一输入; 从所述数据储存库取回所述多个域特定参考应用映射中的用于所述域的一个域特定参考应用映射; 生成对应于从所述数据储存库取回的所述映射的、将包括在工作流中的建议的模块的推荐; 从所述用户接收对将包括在所述工作流中的建议的模块的选择; 确定所述用户是否尚未选择所述建议的模块中的一个建议的模块; 如果所述用户尚未选择所述建议的模块中的一个建议的模块,则在所述工作流的视觉表示上显示未被选择的模块以及所述模块是相对于所述工作流的未被选择的模块的指示;并且 根据选择的所述模块和由所述用户选择的用于工作流的任何其它模块确定所述工作流;以及 基于所述工作流来生成端到端测试脚本。
20.根据权利要求19所述的非瞬态计算机可读介质,其中用于基于所述工作流生成端到端测试脚本的所述指令包括用于以下各项的指令: 从所述工作流标识模块; 从所述数据储存库取回所述测试脚本中用于每个模块的一个测试脚本;并且 组合取回的所述测试脚本以生成所述端到端测试脚本。
【文档编号】G06F11/36GK104050078SQ201410097674
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月14日
【发明者】S·钱那姆赛蒂, R·S·科姆努里, A·R·马汉蒂 申请人:埃森哲环球服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1