用于软件应用组件测试的方法和系统与流程

文档序号:30493192发布日期:2022-06-22 02:38阅读:184来源:国知局
用于软件应用组件测试的方法和系统与流程

1.本发明一般涉及集成测试领域,尤其涉及测试软件应用的组件。


背景技术:

2.软件测试是一种调查,其被执行以向利益相关者提供关于被测软件产品或服务的质量的信息。软件测试还可以提供软件的客观、独立的视图,以允许企业理解和了解软件实现的风险。测试技术包括执行程序或应用以便发现软件错误(错误或其他缺陷)、验证软件产品适合使用的过程以及其他技术。软件测试涉及执行软件组件或系统组件以评估一个或多个感兴趣的属性。通常,这些性质指示被测组件或系统的以下程度:满足指导其设计和开发的要求;对各种输入正确地响应;在可接受的时间内执行其功能;可充分利用;可以在其预期环境中安装和运行;以及达到其利益相关者所期望的总体结果。
3.集成测试(有时称为集成和测试,缩写为i&t)是软件测试中的阶段,其中单个软件模块被组合并作为一个组被测试。进行集成测试以评估系统或组件与指定功能要求的符合性。集成测试发生在单元测试之后和验证测试之前。集成测试采用已被单元测试的模块的输入,将模块分组为更大的聚合体(aggregates),将在集成测试计划中定义的测试应用于该聚合体,以及作为集成系统的输出来交付以准备用于系统测试。
4.连续交付(cd)是一种软件工程方法,其中团队在短周期内制作软件,确保软件可以在任何时间被可靠地发布,并且当发布软件时,手动地执行此操作。连续交付的目的在于以更快的速度和频率来建立、测试和发布软件。该方法通过允许对生产中的应用的更加递增的更新来帮助降低成本、时间和交付改变的风险。对于连续交付,简单且可重复的部署过程是重要的。连续交付与连续部署形成对比,连续部署是一种类似的方法,其中软件也在短周期内制作,但通过自动部署而不是手动部署。


技术实现要素:

5.本发明的各方面公开了一种用于对应用的一部分执行测试的方法、计算机程序产品、以及系统。所述方法包括:一个或多个处理器识别用于测试应用的测试配置。所述应用包括多个组件。所述测试配置包括测试所述应用的至少一个组件的指示。所述方法还包括:一个或多个处理器测试所述应用的所指示的至少一个组件。所述方法还包括:一个或多个处理器确定测试所述应用的所指示的至少一个组件的验证结果。
附图说明
6.图1是根据本发明实施例的数据处理环境的功能框图;
7.图2a描绘了根据本发明实施例的包括多个软件组件的示例应用;
8.图2b描绘了根据本发明实施例的包括多个软件组件的示例应用;
9.图3是描绘根据本发明实施例的用于对应用的一部分执行测试的程序的操作步骤的流程图;以及
10.图4描绘了根据本发明实施例的代表图1的计算设备和测试管理系统的计算系统的组件的框图。
具体实施方式
11.本发明的实施例用于提供软件集成测试框架,该框架与软件更改管理和连续交付系统一起工作,以自动检测、测试和验证对软件组件的更改,从而减少重复运行完整的端到端集成测试的需要。本发明的实施例认识到相应过程的优点,特别是当端到端集成测试很长时,花费几个小时或者甚至更长时间(例如,对于机器学习训练任务)。
12.本发明的一些实施例认识到,使用涉及机器学习模型的分析需要涉及特征生成、特征选择、模型训练和其他步骤的多个步骤。整个过程可能是高度复杂的,并且需要很长的持续时间来完全完成。另外,虽然所讨论的示例是机器学习,但是本发明的实施例认识到许多不同的实现和功能利用了长期运行的测试,该测试要求在已经更改的步骤可以被验证之前执行多个先前步骤。本发明的实施例认识到,解决过程的后面部分中的问题依赖于执行所有较早步骤以便构建用于验证的必要信息。
13.因此,本发明的实施例认识到,在可以验证对应用的(甚至相对简单的)更改以确定更改是否正确并且对应用的下游处理没有不利影响之前,可能需要执行可能长达数小时的过程。这样的限制通常可能导致对修复或更新的延迟验证,因为过程或应用内的步骤(在更改部分之前和之后)必须完成以确保该过程或应用不是回归的。
14.在各个方面,本发明的实施例提供了一种测试/执行应用的一组操作(例如,软件组件)的过程,而不必重新运行所有先前的操作(例如,软件组件),以便在稍后的步骤/操作验证该更改。以下示例中的一些涉及集成测试,但是对应的概念和模式也可以延伸到任何多步骤测试场景。
15.本发明的实施例用于对系统(例如,包括多个软件组件的应用)执行完整且经验证的端到端测试,其包括捕获系统的每个步骤(例如,软件组件)的状态(例如,元数据和数据),包括输入和输出。存储经验证的端到端测试。然后,当系统需要重新验证时(例如,响应于对应用的一个或多个软件组件的更改),本发明的实施例能够将系统重新加载到来自有效的端到端测试的状态,并且执行受导致重新验证的更改影响的步骤。本发明的实施例然后能够验证从执行步骤(一个或多个)得到的元数据和数据与从经验证的端到端测试得到的元数据和数据相同。
16.因此,本发明的实施例认识到,现有解决方案能够提供在故障点处重新开始系统运行(设置检查点)的能力。此外,本发明的实施例认识到,其他替代解决方案能够提供捕获状态且接着在对应于该状态的时间点重新开始的能力。然而,本发明的实施例认识到,这样的解决方案未与源系统相集成以理解需要被重新测试的步骤(和对应的组件),而是将确定/识别留作人工练习。此外,本发明的实施例认识到,其他解决方案能够提供以下能力:使用组件的先前输出状态作为一种验证更改尚未发生的方式。然而,本发明的实施例认识到,这样的当前解决方案未提供用于解决问题的完整的端到端过程。
17.本发明的实施例的实现可以采取各种形式,并且随后参考附图讨论示例性实现细节。
18.现在将参考附图详细描述本发明。图1是示出根据本发明一个实施例的分布式数
据处理环境(总体指定为100)的功能框图。图1仅提供了一种实现的图示,并且不暗示对其中可实现不同实施例的环境的任何限制。本领域技术人员可以对所描绘的环境进行许多修改,而不偏离权利要求所述的本发明的范围。
19.数据处理环境100的实施例包括计算设备110和测试管理系统120,它们都通过网络105互连。在示例实施例中,测试管理系统120代表可以提供软件集成测试框架的计算设备(例如,一个或多个管理服务器),该软件集成测试框架与软件更改管理和连续交付系统一起工作以自动地检测、测试和验证对(例如,诸如计算设备110上的应用200之类的应用的)软件组件的更改,从而减少重复运行完整的端到端集成测试的需要。在其他实施例中,根据本发明的各种实施例,数据处理环境100可以包括可与测试管理系统120对接的计算设备(未示出)的附加实例。
20.网络105可以是例如局域网(lan)、电信网络、诸如因特网的广域网(wan)或这三者的任何组合,以及包括有线、无线或光纤连接。通常,根据本发明的实施例,网络105可以是支持计算设备110与测试管理系统120之间的通信的连接和协议的任何组合。在各种实施例中,网络105促进多个联网计算设备(例如,计算设备110和测试管理系统120,以及未示出的其他设备)、对应用户(例如,与计算设备110和测试管理系统120相关联的用户等)、以及对应管理服务(例如,测试管理系统120)之间的通信。
21.在本发明的各种实施例中,根据本发明的实施例,计算设备110可以是工作站、个人计算机、个人数字助理、移动电话或能够执行计算机可读程序指令的任何其他设备。通常,计算设备110表示能够执行计算机可读程序指令的任何电子设备或电子设备的组合。根据本发明的实施例,计算设备110可以包括关于图4进一步详细描绘和描述的组件。
22.计算设备110包括应用200。在示例实施例中,计算设备110是包括包含多个软件组件的应用的个人工作站或移动设备。在各种实施例中,计算设备110表示托管应用200(即,应用200被安装在计算设备110上)以及接收用于应用200的更新的设备。在一个示例中,根据本发明的各种实施例,计算设备110托管被更新和测试的应用200的实例(例如,在部署到其他设备之前,未示出)。在一个示例场景中,计算设备110可以是托管应用200并且是软件更改管理系统的组件的设备。在另一示例场景中,计算设备110可以是托管应用200并且是连续交付系统的组件的设备。
23.图2a描绘了根据本发明的各种实施例的应用200,其代表包含多个软件组件的应用。在图2a的所示示例中,应用200包括数据输入202、软件组件204、软件组件206、软件组件208、软件组件210、输出212、软件组件214、软件组件216、以及输出218。在各种实施例中,应用200的软件组件代表构成应用200的过程、功能、步骤、模块等。根据本发明的各种实施例,应用200的软件组件被更新(例如,作为连续交付过程的一部分),而测试管理系统120操作以验证更新。
24.另外,图2a中的应用200的示例描绘包括测试机器人(bot)220、测试机器人221、测试机器人222、测试机器人223、测试机器人224、测试机器人225、测试机器人226和测试机器人227。在各种实施例中,应用200的测试机器人捕获应用200的相应软件组件的输入和输出。在示例实施例中,测试机器人是负责与应用组件对接的测试集成系统(例如,与测试管理系统120相关联的测试集成系统)的组件。在另外的实施例中,测试机器人还可操作以使用所捕获的数据来执行测试片段(例如,根据测试管理系统120和片段测试程序300的操
作)。在其他实施例中,基于应用200和测试管理系统120的特定操作,应用200可包括比图2a中所描绘的更多或更少的测试机器人。
25.在示例实施例中,测试管理系统120可以是台式计算机、计算机服务器或本领域已知的任何其他计算机系统。在某些实施例中,测试管理系统120表示利用集群计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算机系统,当被数据处理环境100的单元(例如,计算设备110和未示出的其他设备)访问时,这些集群计算机和组件充当单个无缝资源池。通常,测试管理系统120代表能够执行计算机可读程序指令的任何电子设备或电子设备的组合。根据本发明的实施例,测试管理系统120可包括关于图4更详细地描绘和描述的组件。
26.测试管理系统120包括片段测试程序300和存储设备122,存储设备122包括测试数据集124和完整的端到端测试126。在本发明的各种实施例中,测试管理系统120作为根据本发明的实施例提供应用测试服务(用于一个或多个部署和/或企业)的计算系统来操作。在示例实施例中,测试管理系统120代表计算设备(例如,一个或多个管理服务器),其可以提供与软件更改管理和连续交付系统一起工作的软件集成测试框架,以自动地检测、测试和验证对(例如,诸如计算设备110上的应用200之类的应用的)软件组件的更改,从而减少重复运行完整的端到端集成测试的需要。
27.在示例实施例中,根据本发明的各种实施例,片段测试程序300对应用的一部分执行测试。片段测试程序300可确定应用的组件(例如,应用200的软件组件)已被更改,并且作为响应,片段测试程序300可识别要测试的应用的组件以及要测试已更改组件的对应配置。在示例实施例中,根据本发明的各种实施例,片段测试程序300可操作以测试已更改的软件组件,而不必运行应用的所有先前组件,从而减少处理资源和执行时间/复杂度。
28.存储设备122可以用任何类型的存储设备来实现,例如,能够存储可由测试管理系统120访问和利用的数据的永久性存储装置405,诸如数据库服务器、硬盘驱动器或闪存。在其他实施例中,存储设备122可以表示测试管理系统120内的多个存储设备和数据集合。在各种实施例中,测试管理系统120可利用存储设备122来存储与测试软件产品(诸如计算设备110的应用200)相关联的数据。
29.根据本发明的实施例,测试数据集124代表测试管理系统120用于测试应用200的数据集合。在各种实施例中,测试数据集124包括已定义的和已知的数据集(例如,到应用的样本数据输入),测试管理系统120(和片段测试程序200)利用该数据集来测试应用200。在一个示例中,测试数据集124被输入到图2a中的应用200的示例描绘的数据输入202中。在示例实施例中,根据本发明的实施例,测试管理系统120利用测试数据集124来生成对应于应用200的完整的端到端测试126,以便与片段测试程序300一起使用。
30.完整的端到端测试126代表利用测试数据集124(即,完整的和经验证的端到端数据集)的应用的完整的和经验证的测试的结果。在各种实施例中,测试管理系统120对片段测试程序200的执行利用了完整的端到端测试126(其是利用已知数据集(例如,测试数据集124)的应用200的初始端到端测试的结果),以捕获构成应用200的软件组件(例如,图2a中所描绘的软件组件)之间的所有输入和输出。在附加的实施例中,在生成完整的端到端测试126时,测试管理系统120利用片段测试机器人(即,图2a中描绘的测试机器人)来捕获来自应用200的软件组件的输入和输出。
31.在用于建立完整的端到端测试126的测试运行期间,测试管理系统120将已知数据集(例如,测试数据集124)馈送到应用200中。当所馈送的数据流过应用200(即,是利用相应软件组件的过程)时,测试机器人捕获输入和输出数据,并捕获对应于应用200的每个相应组件的信息。测试管理系统120然后可以将所捕获的输入/输出数据和信息作为与应用200相对应的完整的端到端测试126存储在存储设备122中。在各种实施例中,根据本发明的各种实施例,测试管理系统120(和片段测试程序200)能够利用完整的端到端测试126和应用200的测试机器人的数据来测试片段或部分(例如,个别软件组件或模块)。
32.在一些实施例中,测试管理系统120的测试框架可以与软件更改管理系统相集成以记录在软件开发过程期间对应用的软件组件的更改。例如,根据本发明的各种实施例,响应于检测到更改,测试管理系统120的测试框架可以存储更改的细节以用于测试验证。
33.在示例实施例中,测试管理系统120的测试框架可以利用测试片段插件(未示出)与软件更改管理系统相集成。例如,计算设备110上的插件,其向测试管理系统120通知对应用200的更改。在示例场景中,当对应用200(例如,源文件)的更改被提交给软件更改管理系统时,测试片段插件检测该更改并且向测试管理系统120发送组件更改包(packet)和指示何时做出更改的对应时间戳。在附加实施例中,根据本发明的实施例,测试管理系统120可将所接收的更改指示映射到集成测试套件(例如,并存储在存储设备122中),以用于测试应用的已更改的组件(利用片段测试程序300)。
34.在其他实施例中,测试管理系统120的测试框架可以与连续交付系统相集成,以在应用的自应用的先前构建以来已经更改的软件组件上运行集成测试片段。在示例实施例中,测试片段是完整集成测试套件(例如,完整端到端测试126)的子集,以测试应用的一个或多个软件组件。
35.在示例性实施例中,测试管理系统120的测试框架可以与连续交付系统相集成,以在连续交付系统构建和部署应用时运行一个或多个集成测试套件。例如,测试管理系统120的测试框架可以利用测试片段插件(如上所述)与连续交付系统相集成。在其他实施例中,当应用被构建和部署时,连续交付系统(和测试管理系统120)可以利用测试片段插件来促进执行对应用的测试。例如,根据本发明的实施例,测试管理系统120可与测试片段插件交互以确定/提供所需的测试套件配置,并实例化测试片段机器人以测试该应用。
36.在另一实施例中,测试管理系统120的测试框架可以是手动的或半手动的,具有由软件集成测试框架扩充的软件更改管理系统,以允许在执行应用的端到端测试时测试应用以跳过一个或多个步骤(例如,软件组件)。
37.图2a描绘了根据本发明的各种实施例的应用200,其代表包括多个软件组件的应用。在图2a的所示示例中,应用200包括数据输入202、软件组件204、软件组件206、软件组件208、软件组件210、输出212、软件组件214、软件组件216、以及输出218。在各种实施例中,应用200的软件组件代表构成应用200的过程、功能、步骤、模块等。另外,图2a中的应用200的示例描绘包括测试机器人220、测试机器人221、测试机器人222、测试机器人223、测试机器人224、测试机器人225、测试机器人226、以及测试机器人227。在各种实施例中,应用200的测试机器人捕获应用200的相应软件组件的输入和输出。
38.图2b描绘了根据本发明的各种实施例的应用250,其代表包括多个软件组件的应用。在示例实施例中,应用250表示具有对构成应用200的软件组件的至少一个更改或更新
(例如,对软件组件210的更改)的应用200(图2a中描绘的)。在图2a的所示示例中,应用250包括数据输入202、软件组件204、软件组件206、软件组件208、软件组件210、输出212、软件组件214、软件组件216、以及输出218。在各种实施例中,应用250的软件组件代表构成应用250的过程、功能、步骤、模块等。另外,图2b中的应用250的示例描述包括测试机器人223和测试机器人224。在各种实施例中,根据本发明的示例实施例,应用250的测试机器人捕获应用250的相应软件组件的输入和输出,片段测试程序300可以利用该输入和输出来测试软件组件210。
39.图3是示出根据本发明实施例的片段测试程序300(用于对应用的一部分执行测试的程序)的操作步骤的流程图。在一个实施例中,片段测试程序300启动并操作以测试应用(例如,应用200)或软件产品。在一个示例实施例中,片段测试程序300响应于识别或接收对应用的一个或多个组件的更改的指示而启动。在各种实施例中,片段测试程序300操作以测试应用的一部分(片段)。因此,片段测试程序300可操作以自动地检测、测试和验证对软件组件的更改,从而减少重复运行针对应用(例如,应用200)的完整(可能冗长且资源密集)的端到端集成测试的需要。
40.在步骤302中,片段测试程序300识别测试配置。在一个实施例中,片段测试程序300提取测试配置,该测试配置包括要测试的应用200的一个或多个组件(例如,自先前测试以来已更改的软件组件)的指示。在示例实施例中,更改管理系统可以跟踪对应用200的组件的更改并将更改聚合到测试套件或测试配置中。一旦生成并存储了测试套件或测试配置,片段测试程序300就可操作以在应用200上执行一个或多个测试片段,而无需执行完整的端到端集成测试。在各种实施例中,测试配置可以包括运行所有测试片段、所有测试片段的子集、或仅运行与应用200的自应用200的最近测试以来已经更改的软件组件相对应的测试片段的配置。
41.在示例场景中,测试管理系统120(例如,从计算设备110上的插件)接收对应用200的软件组件210已经做出更改的指示。因此,测试管理系统120生成包括测试应用200的软件组件210的测试配置的测试套件。在该示例中,响应于启动测试应用200,片段测试程序300识别包括对测试应用200的软件组件210的指示的测试配置。在各种实施例中,片段测试程序300可有利地操作以测试应用200的已更改部分,因此通过不运行应用200的完整端到端测试来减少测试管理系统120的资源使用。
42.在步骤304中,片段测试程序300识别要测试的组件。在一个实施例中,片段测试程序300解析所识别的测试配置(来自步骤302)以识别要测试的应用200的组件。在另一实施例中,片段测试程序300可基于测试配置的测试套件(即,对应于对应用200的更改量)来识别要测试的应用200的多个组件。片段测试程序300可以执行以并发地测试多个组件,或者执行片段测试程序300的单独实例以测试多个组件(例如,基于客户端/客户规范)。
43.在之前讨论的示例场景中,片段测试程序300识别包括对测试应用200的软件组件210的指示的测试配置(在步骤302中)。因此,片段测试程序300识别出软件组件210是应用200的要测试的组件。在另一实施例中,片段测试程序300可操作以自动分析应用200(例如,以自动间隔、响应于接收到请求等)以确定何时对应用200进行更改。然后,根据本发明的实施例,片段测试程序300可以识别对组件(例如,对软件组件210)的更改,以及确定测试应用200的更改后的软件组件。
44.在步骤306中,片段测试程序300启动对所识别的组件的片段测试。在一个实施例中,片段测试程序300启动对应用200的所识别的组件(来自步骤304)的片段测试。在一个示例实施例中,片段测试程序300实例化并启动用于该组件的片段测试机器人。片段测试程序300可利用片段测试机器人将适当的输入数据(来自完整的端到端测试126)发送到所识别的组件中。在另一示例实施例中,片段测试程序300可直接与应用200交互以测试已更改的所识别的组件。
45.在另一实施例中,片段测试程序300识别完整的端到端测试126中的数据,该数据与到要测试的所识别的组件的输入相对应。在各种实施例中,完整的端到端测试126包括与应用200的组件相对应的经验证的输入和输出(利用测试数据集124)。因此,片段测试程序300识别完整的端到端测试126中与应用200的所识别的组件的输入相对应的数据(例如,元数据、信息等)。
46.在之前讨论的示例情形中,片段测试程序300启动对应用200的软件组件210的片段测试。在该示例场景中,片段测试程序300识别完整的端到端测试126中与到软件组件210的输入相对应的数据。如图2b的示例中所描绘的,片段测试程序300可以利用测试机器人223来向软件组件210发送相应的输入数据(来自完整的端到端测试126)以用于处理(应用200的每个操作)软件组件210的测试。
47.在步骤308中,片段测试程序300接收片段测试结果。在一个实施例中,片段测试程序300接收对要测试的应用200的所识别组件(来自步骤304)的片段测试(来自步骤306)的结果。在示例实施例中,片段测试程序300接收从执行(例如,测试)应用200的组件中输出的数据。在另一实施例中,片段测试程序300利用片段测试机器人来接收从组件输出的数据。
48.在之前讨论的示例场景中,片段测试程序300接收从软件组件210输出的数据。如图2b的示例中所描绘的,片段测试程序300可以利用测试机器人224来接收从执行(例如,测试)应用200的软件组件210中输出的数据。
49.在步骤310中,片段测试程序300确定测试片段的验证结果。在一个实施例中,片段测试程序300验证所接收的来自测试应用200的(步骤304的)所识别组件的输出(来自步骤308)。在各种实施例中,片段测试程序300确定针对在应用200的组件上执行的测试片段的接收结果是否与被包括在完整的端到端测试126中的预期(即,经验证的)输出结果(其对应于来自软件组件210的输出)相匹配。在示例实施例中,片段测试程序300可以确定输出数据是否对应于(例如,在定义的阈值内匹配)被包括在完整的端到端测试126中的对应输出结果。因此,片段测试程序300可确定并生成验证结果的测试/可视指示(例如,“是”或“否”、“通过”或“失败”等)。
50.在另一实施例中,片段测试程序300可利用测试片段机器人来接收输出并执行验证结果。在图2b的示例中,片段测试程序300可以利用测试机器人224来接收来自执行(例如,测试)应用200的软件组件210的数据输出,并执行所接收的输出的验证。在该示例中,片段测试程序300可以从测试机器人224接收验证结果的指示。
51.在步骤312中,片段测试程序300输出验证结果。在一个实施例中,片段测试程序300将所确定的验证结果(来自步骤310)发送到与应用200相关联的一个或多个用户,或者发送到应用200的关联测试。在另一实施例中,片段测试程序300可将所确定的片段测试的验证结果存储在与应用200相关联的存储设备122中。
52.在附加实施例中,测试管理系统120的测试框架可被配置为处置和处理由一个或多个代码更改导致的对输出的预期更改。在示例性场景中,测试管理系统120可以验证对应用200做出的更改,该更改改变了被包括在完整的端到端测试126中的输入和输出值。例如,与应用200相关联的用户可以接收验证结果,并且授权测试管理系统120更新完整的端到端测试126以对应于应用200的更新后的实例。在这种情况下,测试管理系统120可以在应用200上运行完整的端到端集成测试的子集,从第一个已更改的组件开始,在整个剩余测试流程中捕获所有输入和输出数据。相应地,测试管理系统120可以用新捕获的(并且经验证的数据)来更新完整的端到端测试126的实例,以便在应用200的片段测试的未来操作(即,片段测试程序300的执行)中使用。
53.图4示出了根据本发明的示例性实施例的计算机系统400,其代表计算设备110和测试管理系统120。应当理解,图4仅提供了一种实现的说明,而不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。计算机系统400包括处理器401、高速缓存403、存储器402、永久性存储装置405、通信单元407、(多个)输入/输出(i/o)接口406和通信结构404。通信结构404提供高速缓存403、存储器402、永久性存储装置405、通信单元407和输入/输出(i/o)接口406之间的通信。通信结构404可以用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何体系结构来实现。例如,通信结构404可以用一个或多个总线或纵横开关来实现。
54.存储器402和永久性存储装置405是计算机可读存储介质。在该实施例中,存储器402包括随机存取存储器(ram)。通常,存储器402可以包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存403是通过保存来自存储器402的最近访问的数据和最近访问的数据附近的数据来增强处理器401的性能的快速存储器。
55.用于实践本发明的实施例的程序指令和数据(例如,软件和数据410)可以存储在永久性存储装置405和存储器402中,以便由一个或多个相应的处理器401经由高速缓存403来执行。在一个实施例中,永久性存储装置405包括磁硬盘驱动器。作为磁硬盘驱动器的替代或补充,永久性存储405可包括固态硬盘驱动器、半导体存储设备、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
56.永久性存储装置405所使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储装置405。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传送到也是永久性存储装置405的一部分的另一计算机可读存储介质上。软件和数据410可以存储在永久性存储装置405中,以便由一个或多个相应的处理器401经由高速缓存403访问和/或执行。关于计算设备110,软件和数据310包括应用200。关于测试管理系统120,软件和数据410包括测试数据集124、完整的端到端测试126、以及片段测试程序300。
57.在这些示例中,通信单元407提供与其他数据处理系统或设备的通信。在这些示例中,通信单元407包括一个或多个网络接口卡。通信单元407可以通过使用物理和无线通信链路中的一种或两种来提供通信。用于实施本发明的实施例的程序指令和数据(例如,软件和数据410)可以通过通信单元407被下载到永久性存储装置405。
58.i/o接口406允许与可连接到每个计算机系统的其他设备输入和输出数据。例如,i/o接口406可以提供到外部设备408(诸如键盘、小键盘、触摸屏和/或一些其他合适的输入设备)的连接。外部设备408还可以包括便携式计算机可读存储介质,例如,拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实践本发明的实施例的程序指令和数据(例如,软件和数据410)可以存储在这样的便携式计算机可读存储介质上,并且可以经由i/o接口406被加载到永久性存储装置405上。i/o接口(多个)406还连接到显示器409。
59.显示器409提供向用户显示数据的机制,并且可以是例如计算机监视器。
60.本文描述的程序是基于在本发明的特定实施例中实现它们的应用来标识的。然而,应当理解,本文的任何特定程序术语仅是为了方便而使用,因此本发明不应当限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
61.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
62.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及前述的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
63.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
64.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c++等,以及过程编程语言,例如”c“编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利
用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
65.在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
66.这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
67.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
68.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
69.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说是显而易见的。选择本文所使用的术语是为了最好地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或为了使本领域的其他普通技术人员能够理解本文所公开的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1