CN104185840A - 持续部署流水线测试的优先化 - Google Patents

持续部署流水线测试的优先化 Download PDF

Info

Publication number
CN104185840A
CN104185840A CN201280068787.4A CN201280068787A CN104185840A CN 104185840 A CN104185840 A CN 104185840A CN 201280068787 A CN201280068787 A CN 201280068787A CN 104185840 A CN104185840 A CN 104185840A
Authority
CN
China
Prior art keywords
test
streamline
testing
dispose
multiple tests
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.)
Granted
Application number
CN201280068787.4A
Other languages
English (en)
Other versions
CN104185840B (zh
Inventor
I·莎妮
A·尼桑
S·毛恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weifosi Co., Ltd
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN104185840A publication Critical patent/CN104185840A/zh
Application granted granted Critical
Publication of CN104185840B publication Critical patent/CN104185840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)
  • Investigating Strength Of Materials By Application Of Mechanical Stress (AREA)

Abstract

一种用于优先化持续部署流水线中多个测试的方法。该方法基于测试属性和测试环境对多个测试进行分级从而为多个测试中的每一个提供测试等级。该方法使用该测试等级设置用于持续部署流水线中的测试集。该方法在持续部署流水线中执行该测试集。

Description

持续部署流水线测试的优先化
背景技术
软件开发生命周期使用持续集成(CI)和持续部署(CD)来减少花费在生产线上的代码更改的时间。持续集成可以将接收来自特定的源配置管理(SCM)工具的代码更改、构建具有该代码更改的可交付组件以及测试该组件的过程自动化。
附图说明
参考所附的附图,在下面的说明中描述了本公开的非限制性示例,并且对权利要求的范围没有限制。在附图中,出现在多于一幅附图中的相同和相似的结构、元件或它们的部件一般在它们出现的附图中都标有相同或相似的参考标记。在附图中示出的部件和特征的尺寸主要是出于描述的方便和清楚来选择,而不一定是按比例绘制的。参照附图:
图1图示了根据一个示例的用来优先化持续部署流水线中多个测试的网络环境;
图2图示了根据一个示例的用来优先化持续部署流水线中多个测试的装置的框图;
图3图示了根据一个示例的图1的系统的框图;
图4图示了根据一个示例的可用在系统的一种计算机可读介质的框图;
图5图示了根据一个示例的优先化持续部署流水线中多个测试的过程的示意图;以及
图6-7图示了根据示例的用来优先化持续部署流水线中多个测试的方法流程图。
具体实施方式
在下面的详细描述中,参考构成为本文一部分的附图,并且在其中以本公开可以被实施的具体示例的方式加以图示。可以理解的是,在不脱离本公开的范围的情况下,也可利用其他示例,并且可以做出结构或逻辑的改变。
持续集成(CI)和持续部署(CD)采用代码更改使代码组件的构建、测试和部署自动化。持续集成使以下过程自动化:从SCM工具检索代码更改、构建交付组件,诸如执行构建和单元测试组件。在代码更改交付给源配置管理(SCM)工具之后开始该自动化。当代码更改交付给SCM工具时,代码更改被分配到一个特定的持续部署流水线(CD流水线或部署流水线)。随着代码更改作为代码组件的一部分被测试,该代码更改通过持续部署流水线。
持续部署通过将组件自动部署到测试环境中并在组件上执行测试来扩展持续集成。测试的量由持续部署流水线确定。用于持续部署流水线的测试集通常是基于持续部署流水线、诸如低优先级或高优先级的分类而分配的静态测试集。典型的测试集包括单元测试和应用程序编程接口测试。用户接口自动化测试由于执行时间比单元测试和应用程序编程接口的测试长,因此很少被包括在测试集中。其结果是,由于测试集不包括用户接口的测试,因此测试集缺少质量保证。此外,测试集可以被手动设置为包括用户接口的测试;然而,手动更改测试集并不能保证其一致性,并且需要手动操作。
在示例中,提供了一种用来优先化持续部署流水线中多个测试的方法。该方法基于测试属性和测试环境(text context)将多个测试分级从而为多个测试中的每一个提供测试等级。该方法使用该测试等级来为持续部署流水线设置测试集。该方法在持续部署流水线中执行测试集。
短语“代码更改”指的是用于任何软件应用的源代码的更改。短语代码更改也可指构建为持续集成过程一部分的代码组件的一部分的代码更改。
短语“持续部署流水线”或“部署流水线”是指一组对代码更改队列进行串行和/或并行执行的动作。例如,持续部署流水线可包括构建代码、执行单元测试、部署代码、运行自动测试、代码分段、运行端对端测试以及部署代码至成品(production)。每个持续部署流水线可以被分类以接收与定义的一组标准相匹配的代码更改,例如,特定的持续部署流水线可以用于低风险和高优先级的代码更改。用于测试流水线的测试集可以类似的与用于代码更改的定义的该组标准相一致。
短语“测试集”是指在仿真环境中在持续部署流水线上运行的测试。该测试集测试被测应用程序(AUT)的功能和/或确定被测应用程序(AUT)的不足之处。测试集可包括用于测试代码更改的集成的单元测试和/或具有代码更改的功能测试,诸如应用程序编程接口(API)或用户接口(UI)测试。
短语“测试属性”指的是与测试和测试的之前执行相关联的数据。
短语“测试环境”包括代码更改、业务优先级以及测试值中的至少一个。测试值可包括测试的检测缺陷的能力、在测试中发现的缺陷的重要性、以及该测试对其他测试的依赖性。
短语“测试等级””或“测试分级”指的是基于一个或多个标准分配给测试的等级或值。该标准可以基于代码更改、测试特性、业务优先级、和/或与来自测试集之前执行的测试相关联的持续部署流水线来定义。
图1图示了根据一个示例的网络环境100。网络环境100包括连接测试设备12、部署设备14、客户端设备16以及数据存储18的链路10。测试设备12代表了通常的测试来自部署设备14的多个代码更改的任何计算设备或计算设备的组合。部署设备14代表了接收代码更改并且在持续部署流水线中部署代码更改的计算设备。
客户端设备16代表了配置为经由链路10与测试设备12和部署设备14进行交互的计算设备和/或计算设备的组合。该交互可以包括发送和/或传送代表用户的数据,诸如代码更改。该交互还可以包括接收数据,诸如具有代码更改的软件应用程序。客户端设备16可以是,例如,包括使用户能够创建和/或编辑软件应用程序代码的软件的个人计算设备。
该测试设备12代表了配置以优先化持续部署流水线中多个测试的计算设备和/或计算设备的组合。该测试设备12还配置为在测试环境下在一个应用程序中持续部署流水线上执行一组测试或测试集从而集成多个代码更改以供在软件应用程序中使用。
测试集和/或代码更改可被存储在数据存储18中。数据存储18通常代表了被配置为储存能够由测试设备12和部署设备14在其功能的执行中进行访问的数据的任何存储器。测试设备12的功能可经由将测试设备12连接到部署设备14、客户端设备16和数据存储18的链路10来实现。
链路10通常代表了一个或多个电缆、无线、光纤或经由电信链路、红外链路、射频链路或可提供电子通信的任何其它连接器或系统的远程连接。链路10可至少部分地包括内联网、互联网或两者的组合。链路10还可以包括中间代理、路由器、交换机、负载均衡器等。
图1进一步图示了用来优先化持续部署流水线中多个测试的测试设备12的框图。测试设备12包括测试引擎22和决策引擎24。测试引擎22通常代表了执行持续部署流水线中测试集的硬件和/或编程的组合。决策引擎24一般代表了基于测试属性和测试环境对多个测试进行分级,来为多个测试中的每一个提供测试等级的硬件和/或编程的组合。决策引擎24还设置了用于使用了测试等级的持续部署流水线中的测试集。
图2图示了根据示例的用来优先化持续部署流水线中多个测试的装置200的框图。该装置200可用在持续部署流水线并且包括测试设备12、存储器26和处理器28。测试设备12优先化持续部署流水线中多个测试。存储器26存储一组指令。处理器28耦合到存储器26以执行该组指令。该组指令基于多个测试中的每一个的等级来设置用于持续部署流水线的测试集。该等级是使用测试属性和测试环境来确定的。该组指令还执行持续部署流水线中的测试集并且基于来自测试执行的测试结果更新测试属性和测试环境。测试结果包括对应于测试属性和测试环境中的至少一个的数据。
根据进一步的示例,图3图示了图1的系统100的框图。该系统100包括测试设备12、部署设备14和数据存储18。如图1中所示,测试设备12、部署设备14以及数据存储18经由链路10连接。
数据存储18可存储可由测试设备12和/或部署设备14进行访问的数据。数据存储18是,例如,存储代码更改31、测试32(或多个测试)、测试等级33(或测试分级)、测试集35、测试属性36、测试环境37、权重值38以及测试结果39的数据库。
该测试设备12被示为包括测试引擎22和决策引擎24。测试设备12被连接到部署设备14,其从客户端设备16接收代码更改31。代码更改31使用具有测试等级33的测试32在测试设备12中进行测试。测试设备12确定一组测试或测试集35以在测试过程中在持续部署流水线中使用。
测试引擎22通常代表了在持续部署流水线中执行测试集35的硬件和/或编程的组合。测试引擎22接收来自决策引擎24的指令和/或测试集35从而执行测试集35。
该决策引擎24通常代表了对多个测试32进行分级并且设置用于持续部署流水线的测试集35的硬件和/或编程的组合。决策引擎24基于测试属性36和测试环境37对多个测试32进行分级从而为多个测试32中的每一个提供测试等级33。决策引擎24还为测试属性36和测试环境37分配权重值38。权重值38是基于与之相关的持续部署流水线来确定。测试属性36和测试环境37作为来自多个源的数据输入被收集,并且随着测试32的性能的要求,与针对每个持续部署流水线的权重值38相结合。
该测试属性36包括与多个测试32以及多个测试32的之前执行相关联的数据。测试属性36的示例包括以下测试类型,诸如系统、功能或性能测试。该测试类型对等级的影响将取决于持续部署流水线而变化。例如综合持续部署流水线可以为每个测试类型选择单个的测试,而快速持续部署流水线可排除一个或多个类型的测试32,诸如性能测试。另一种类型的测试属性36是被测应用程序(AUT)区域的覆盖范围。当测试产生更大的覆盖范围时,AUT区域的覆盖范围对测试等级33具有积极影响或导致更高的测试等级33。测试的修正(fixing)频率是另一个测试属性36。测试的修正频率可以对测试等级33产生负面影响,因为测试32需要被修正的越频繁,测试32越不稳定并且价值越低。另一个测试属性36是测试成本,诸如资源成本,例如CPU、存储器、网络和储存器。资源和/或实际价格的测试成本越高,诸如针对基于云的部署,测试等级33越低。测试的上次执行时间是另一种类型的测试属性36。例如,上次执行时间越早,测试等级33越高。测试属性36的最后一个示例是平均执行时间,由于其需要更多的时间来执行并在流水线中使用更多的时间,这可能导致在测试32中具有较低的测试等级33,这可减少测试32执行的总数。
测试环境37包括代码更改31、业务优先级以及测试值中的至少一个。测试值可包括,例如,与测试检测缺陷的能力、测试所发现缺陷的重要性、以及测试32对其他测试32的依赖性相对应的值。应用程序生命周期管理测试环境37的示例被提供如下。测试环境37包括经由需求和缺陷链接到测试的最近的代码更改31。当测试证实最近交付了大量的代码更改31时,该测试环境37接收到更高的测试等级33。另一个测试环境37是经由需求链接到测试的业务优先级的平均值或总和。业务优先级越高,测试等级33越高。此外,在这种情况下,测试环境37可以用来在特定的关键业务持续部署流水线中过滤掉非关键的业务需要。另一个测试环境37是测试发现缺陷的能力或每次测试执行中测试发现的缺陷平均数的评估。测试32发现的缺陷越多,测试等级33越高。同样,测试发现的缺陷的平均严重度和/或重要性也导致更高的测试等级33。测试环境37的最后一个示例为测试32对其他测试32的依赖性。例如,综合持续部署流水线可以选择相互依赖的测试32作为测试组,而快速持续部署流水线则可避免相互依赖的测试,以最小化测试部署下的执行和应用。
该决策引擎24还使用测试等级33为持续部署流水线设置测试集35。决策引擎24使用与多个测试32相关的下列标准的至少一个来设置测试集35:执行时间,业务价值,以及综合性价值。附加标准可用于确定测试等级33和/或由部署设备14定义的测试集35,诸如成本和资源。对于每个持续部署流水线,为所有的测试32计算测试等级33并且权重可以基于持续部署流水线的特性与测试等级33相关联。然后测试32可以被分类并且与测试等级33和权重值38一起储存,当持续部署流水线被执行以及测试集35被测试设备12和/或部署设备14要求时,其可由决策引擎24容易地访问。
在持续部署流水线建立后,决策引擎24设置测试集35以满足被执行的特定持续部署流水线的标准,并提供测试集35给测试引擎22。测试集35可以满足特定持续部署流水线的标准,诸如时间、成本和/或应用覆盖范围水平标准,其包括获得测试32的最佳或最大总计等级。在满足该标准时,为了包括提供了期望的总计等级的较低等级测试(测试等级33),测试集35可不包括高等级测试(测试等级33)。
此外,决策引擎24从执行的测试集35收集测试结果39。测试结果39包括对应于测试属性36和测试环境37中的至少一个的数据。例如,测试结果39可包括新发现的缺陷和测试32的执行时间。决策引擎24基于来自测试集35的执行得到的测试结果39更新测试属性36和测试环境37。此外,基于测试集35的执行,该决策动态地收集和自动更新测试属性36和测试环境37。测试引擎22可以在执行测试集35时同时地收集测试结果39。基于处理器和/或计算资源的能力,同时进行测试集35的执行和包括测试属性36和测试环境37数据的测试结果39的收集以确定可被实行的测试等级33以及权重值38。而且,测试等级33和权重值38也可以与测试集35的执行同时地更新。
部署设备14包括部署引擎34。部署引擎34通常代表了在测试环境下应用程序测试之后部署代码更改31的硬件和/或编程的组合。部署设备14经由部署引擎34部署测试过的代码更改31。部署引擎34可以与测试引擎22以及决策引擎24共同工作来执行测试集35。此外,部署引擎34在具有代码更改31的代码组件通过测试集35之后控制持续部署流水线。
根据一个示例,图4图示了可用在图1的系统100的计算机可读介质的框图。在图4中,测试设备12被示为包括存储器26、处理器28和接口43。处理器28通常表示被配置为执行存储在存储器26中来实行各种特定功能的程序指令的任何处理器。接口43通常表示使测试设备12能够经由链路10与部署设备14进行通讯的任何接口,如图1和图3中所示。
存储器26被示为包括操作系统44和应用程序45。操作系统44代表了程序的集合,当由处理器28执行时,其作为在其上可以运行应用程序45的平台。操作系统43的示例包括各种版本的微软的应用程序45代表了程序指令,当由处理器28执行时,其作为优先化持续部署流水线中多个测试32的应用程序。例如,图4图示了作为存储在测试设备12的存储器26中的可执行程序指令的测试模块46和决策模块47。
返回参照附图1-3,测试引擎22和决策引擎24被描述为硬件和/或编程的组合。如图4中所示,该硬件部分可以包括处理器28。编程部分可包括操作系统44,应用程序45,和/或它们的组合。例如,测试模块46表示程序指令,当由处理器28执行时,其导致图1-3的测试引擎22的实施。决策模块47表示程序指令,当由处理器28执行时,其导致图1-3的决策引擎24的实施。
该测试模块46和决策模块47的编程可以是存储在存储器26中的处理器可执行指令,其包括有形的存储介质和可包括用于执行指令的处理器28的硬件。存储器26可以存储程序指令,当由处理器28执行时,其导致处理器28来执行该程序指令。存储器26可以集成在与处理器28一样的设备中,或者它也可以是单独的,但可以由该设备和处理器28访问。
在一些示例中,程序指令可为可由处理器28执行以实行使用系统100的方法的安装包的一部分。存储器26可以是便携式介质,例如CD,DVD或闪存驱动器或可从其下载和安装该安装包的由服务器维护的存储器。在一些示例中,程序指令可以是已经安装在服务器上的一个或多个应用程序的一部分。在另外的示例中,存储器26可包括集成的存储器,诸如硬盘驱动器。
根据一个示例,图5图示了优先化持续部署流水线中多个测试32的过程的示意图500。图5图示了测试设备12和部署设备14的功能。
部署设备14从源配置管理(SCM)工具52中接收代码更改31以及从应用程序生命周期管理(ALM)工具54中接收业务标准53。业务标准53指的是使用例如过滤规则将代码更改分配至持续部署流水线的业务因数。业务标准53可对应于与该被修改的应用程序和/或代码更改相关的数据,诸如代码更改的作者,代码更改中代码的行数,和/或改变的文件数。部署设备14分配代码更改31至持续部署流水线50,诸如CD流水线A 50A或CD流水线B 50B。例如CD流水线50A可以是用于由部署设备14确定的代码更改31的高优先级流水线50A,其可被快速测试和部署。同样,CD流水线50B可为正常或低优先级的流水线。部署设备14提供了一种到测试设备12的测试55指令的部署以启动测试56的实行。
测试设备12使用决策引擎24来对多个测试32分级,并设置用于持续部署流水线50的测试集35。决策引擎24使用测试属性36和测试环境37来对多个测试32进行分级。决策引擎24可以使用多种测试属性36和测试环境37数据对测试32进行分级并且确定测试集35。也可以考虑附加数据来确定测试等级33,该附加数据包括例如代码更改31,多个测试32,权重值38和测试结果39。每个流水线的测试32的分级以及甚至每个具有代码更改31的代码组件的分级都是自动的,并且可随着流水线、应用程序和代码更改31的类型的特定等级而变化。而且,测试集35可以由决策引擎24来确定,以基于测试等级33优化实行的测试32。
在测试集35被确定之后,测试集35被提供到测试引擎22,其在仿真或AUT环境中在持续部署测试流水线50中执行测试集35。例如,CD流水线A50A使用测试集A 57,而CD流水线B 50B使用测试集B 57。根据持续部署流水线50,测试集可以是相同的或不同的。在持续部署流水线50中执行测试56的部分中图示了测试集35的执行。代码更改31保留在相应的持续部署流水线50中直到具有该代码更改31的组件通过由测试设备12确定的测试集35。当所有测试完成和/或同时地在测试过程中时,测试结果59被发送到决策引擎24。测试结果59可包括测试属性36和测试环境37数据,其由决策引擎24动态地并且自动地收集和遵从(complied)。测试结果59然后自动地用于确定未来的测试等级33和测试集35。
在代码更改31通过性能测试56(包括测试集35的执行)之后,部署设备14可将具有代码更改31的组件部署至成品58和/或发布的具有代码更改31的软件应用程序。
图6图示了方法的流程图600,诸如用来优先化持续部署流水线中多个测试的由处理器实现的方法。在方框62中,多个测试基于测试属性和测试环境37分级从而为该多个测试中的每一个提供测试等级。测试属性包括与该多个测试32和多个测试的之前执行相关联的数据。测试属性的示例包括诸如测试类型,AUT区域覆盖范围,前次执行时间,测试修正频率,测试成本和/或平均执行时间。测试环境37包括代码更改、业务优先级和测试值中的至少一个。测试值可包括,例如,对应于测试来检测缺陷的能力、测试发现的缺陷的重要性以及测试对其他测试依赖性的值。应用程序生命周期管理的测试环境的其他示例包括以下方面:经由需求和缺陷链接到(linked to)该测试的最近的代码更改,链接到该测试的业务优先级的平均值或总和,缺陷细化评估,缺陷的平均严重度或重要性,和/或测试对其他测试32的依赖性。
在方框64中,用于持续部署流水线的测试集使用测试等级加以设置。测试属性和测试环境也可以被分配权重值。权重值是基于与其相关联的持续部署流水线来确定。而且,基于测试集的执行,测试属性和测试环境被动态地收集并自动地更新。
在方框66中,测试集在持续部署流水线中执行。基于测试集的执行,测试结果被收集。测试结果包括对应于测试属性和测试环境中的至少一个的数据。测试结果可在测试集的执行过程中被同时的收集。然后基于来自测试集执行的测试结果,将测试结果用于更新测试属性和测试环境。
图7图示了方法的流程图700,诸如由处理器实现的用来优先化持续部署流水线中多个测试的方法。在方框72中,基于多个测试中的每一个的等级设置用于持续部署流水线的测试集。该等级使用测试属性和测试环境来确定。在方框74中,在持续部署流水线中执行该测试集。在方框76中,更新测试属性和测试环境。该更新是基于来自测试执行的测试结果。测试结果包括对应于测试属性和测试环境中的至少一个的数据。
图1-7用于辅助图示根据示例的架构、功能和操作。该示例图示了各种物理和逻辑部件。示出的各种部件的至少部分地被定义为程序、编程、或程序指令。每一个这样的部件、其一部分或者其各种组合可代表全部或部分的模块、段或包括一个或多个可执行指令来实现任何特定逻辑功能的部分代码。每个部件或它们的各种组合可代表电路或多个互连电路以实现(一个或多个)特定的逻辑功能。
示例可以实现在任何计算机可读介质中,其可由指令执行系统使用或与指令执行系统结合,指令执行系统为诸如基于系统或ASIC(特定应用集成电路)的计算机/处理器或可以提取或获得来自计算机可读介质中的逻辑并执行包含在其中的指令的其它系统。“计算机可读介质”可以是包含、存储或保持程序和数据的任何介质,该程序和数据可由指令执行系统使用或与指令执行系统结合。计算机可读介质可以包括多个物理介质中的任何一个,例如,电子、磁、光、电磁或半导体介质。适合的计算机可读介质的更多的特定实例包括,但不限于,便携式磁计算机磁盘,诸如软盘或硬盘驱动器,随机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器,或便携式光盘。
虽然图6-7的流程图图示了执行的特定顺序,但是执行顺序可以不同于所图示的顺序。例如,方框中的执行顺序可相对于所示出的顺序被打乱。同样,连续示出的方框可以并行执行或者部分并行执行。所有这些变化都包括在本发明的范围之内。
本公开内容已使用非限制性的详细描述的示例进行描述,并且不意图限制本发明的范围。应当理解的是,相对于一个示例所描述的特征和/或操作可以在其他示例中使用,并且,不是本发明的所有示例都具有在一个特定的附图中或在相对于示例中的一个的描述中所图示的所有特征和/或操作。对于本领域技术人员来说,所描述的示例的变体将可能会产生。此外,在本公开和/或权利要求中使用时,术语“包含”、“包括”、“具有”以及它们的结合物,将意指“包含但不一定限于”。
应当注意,上述示例中的一些可以包括结构、行为或结构和行为的细节,这些可能对于本公开来说不是必要的,而仅是为了示例的目的。这里所描述的结构和行为是可由等效物进行替代的,该等效物即使在结构或行为方面是不同的但是如本领域已知的那样其能执行相同的功能。因此,本发明的范围仅由权利要求中所使用的元素和限制条件所限制。

Claims (15)

1.一种在持续部署流水线中用来优先化多个测试的计算机实现方法,所述方法包括:
基于测试属性和测试环境采用决策引擎对所述多个测试进行分级,从而为所述多个测试中的每一个提供测试等级;
使用所述测试等级采用所述决策引擎设置用于所述持续部署流水线的测试集;
采用测试引擎在持续部署流水线中执行所述测试集。
2.如权利要求1所述的方法,进一步包括:
收集来自执行过的测试集的测试结果,所述测试结果包括对应于测试属性和测试环境中的至少一个的数据;以及
基于来自测试集执行的测试结果更新测试属性和测试环境。
3.如权利要求2所述的方法,进一步包括同时地收集所述测试结果以及执行所述测试集。
4.如权利要求1所述的方法,其中所述测试属性包括与所述多个测试以及所述多个测试的之前执行相关的数据。
5.如权利要求1所述的方法,其中所述测试环境包括代码更改、业务优先级以及测试值中的至少一个。
6.如权利要求1所述的方法,其中所述测试属性和所述测试环境基于所述测试集的执行来动态地收集并且自动地更新。
7.如权利要求1所述的方法,其中所述测试属性和所述测试环境每一个都被分配了权重值,所述权重值基于与之相关的持续部署流水线来确定。
8.一种用于优先化持续部署流水线中多个测试的系统,所述系统包括:
决策引擎,其用以:
基于测试属性和测试环境对多个测试进行分级从而为所述多个测试中的每一个提供测试等级;以及
使用所述测试等级设置用于所述持续部署流水线的测试集;以及
测试引擎,用于在所述持续部署流水线中执行所述测试集。
9.如权利要求8的系统,其中所述决策引擎
收集来自执行过的测试集的测试结果,所述测试结果包括对应于所述测试属性和所述测试环境中的至少一个的数据;以及
基于来自测试集执行的测试结果更新所述测试属性和所述测试环境。
10.如权利要求8所述的系统,其中所述测试属性包括与所述多个测试以及所述多个测试的之前执行相关的数据。
11.如权利要求8所述的系统,其中所述测试环境包括代码更改、业务优先级以及测试值中的至少一个。
12.如权利要求8所述的系统,其中所述决策引擎基于测试集的执行来动态地收集并且自动地更新测试属性和测试环境。
13.如权利要求8所述的系统,其中所述决策引擎为所述测试属性和所述测试环境分配了权重值,所述权重值基于与之相关的持续部署流水线来确定。
14.如权利要求8所述的系统,其中所述决策引擎使用下列与多个测试相关的标准中的至少一个来设置测试集,下列标准为:执行时间、业务价值以及综合性价值。
15.一种可用于持续部署流水线的装置,所述装置包括:
测试设备,用于优先化持续部署流水线中的多个测试;
存储器,用于存储指令集;以及
耦合至存储器的处理器,用于执行所述指令集来:
基于多个测试中的每一个的测试等级设置用于持续部署流水线中的测试集,所述测试等级使用测试属性和测试环境来确定;
在持续部署流水线中执行所述测试集;以及
基于来自测试执行的测试结果更新所述测试属性和所述测试环境,所述测试结果包括对应于所述测试属性和所述测试环境中的至少一个的数据。
CN201280068787.4A 2012-04-30 2012-04-30 在持续部署流水线中用来优先化多个测试的方法、系统和装置 Active CN104185840B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/035874 WO2013165367A1 (en) 2012-04-30 2012-04-30 Prioritization of continuous deployment pipeline tests

Publications (2)

Publication Number Publication Date
CN104185840A true CN104185840A (zh) 2014-12-03
CN104185840B CN104185840B (zh) 2018-01-16

Family

ID=49514634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068787.4A Active CN104185840B (zh) 2012-04-30 2012-04-30 在持续部署流水线中用来优先化多个测试的方法、系统和装置

Country Status (4)

Country Link
US (2) US9652509B2 (zh)
EP (1) EP2845095A4 (zh)
CN (1) CN104185840B (zh)
WO (1) WO2013165367A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399082A (zh) * 2017-02-08 2018-08-14 中兴通讯股份有限公司 一种持续集成流水线的生成方法和系统
CN109814914A (zh) * 2018-12-27 2019-05-28 网联清算有限公司 持续集成方法、装置和电子设备
CN111382082A (zh) * 2020-04-01 2020-07-07 中国建设银行股份有限公司 持续集成测试方法及装置
CN111737118A (zh) * 2020-06-11 2020-10-02 百度在线网络技术(北京)有限公司 一种流水线测试方法、装置、电子设备及存储介质

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778032A (zh) * 2014-01-09 2015-07-15 阿尔卡特朗讯 一种用于进行持续集成的方法和设备
US10671381B2 (en) * 2014-01-27 2020-06-02 Micro Focus Llc Continuous integration with reusable context aware jobs
US9489289B2 (en) * 2014-12-09 2016-11-08 Sap Se Adaptive framework automatically prioritizing software test cases
US10489282B2 (en) 2015-04-30 2019-11-26 Micro Focus Llc Application testing
US10452508B2 (en) * 2015-06-15 2019-10-22 International Business Machines Corporation Managing a set of tests based on other test failures
WO2017030542A1 (en) * 2015-08-14 2017-02-23 Hewlett Packard Enterprise Development Lp Dynamic build pipeline execution
US20180285182A1 (en) * 2015-09-25 2018-10-04 Entit Software Llc Defect assessment
US10157044B2 (en) * 2015-12-04 2018-12-18 Vmware, Inc. Automated application-release-management subsystem
US9787779B2 (en) * 2015-12-21 2017-10-10 Amazon Technologies, Inc. Analyzing deployment pipelines used to update production computing services using a live pipeline template process
US9760366B2 (en) 2015-12-21 2017-09-12 Amazon Technologies, Inc. Maintaining deployment pipelines for a production computing service using live pipeline templates
US10193961B2 (en) 2015-12-21 2019-01-29 Amazon Technologies, Inc. Building deployment pipelines for a production computing service using live pipeline templates
US10334058B2 (en) 2015-12-21 2019-06-25 Amazon Technologies, Inc. Matching and enforcing deployment pipeline configurations with live pipeline templates
US10216509B2 (en) * 2016-03-18 2019-02-26 TUPL, Inc. Continuous and automatic application development and deployment
WO2017201478A1 (en) * 2016-05-19 2017-11-23 Integnology Corporation Continuous delivery pipeline segment models
US11531528B2 (en) 2016-05-19 2022-12-20 Cloudbees, Inc. Systems and methods for non-disruptive continuous software delivery
US20190235988A1 (en) * 2016-05-19 2019-08-01 Integnology Corporation Parallel execution of continuous delivery pipeline segment models
WO2017201479A1 (en) * 2016-05-19 2017-11-23 Integnology Corporation On-demand execution of continuous delivery pipeline segment models
US9569341B1 (en) * 2016-05-25 2017-02-14 Semmle Limited Function execution prioritization
US10223245B1 (en) 2016-05-27 2019-03-05 Amdocs Development Limited System, method, and computer program for identifying tests to automate in a software testing project
US11093374B2 (en) * 2016-08-09 2021-08-17 SeaLights Technologies LTD System and method for continuous testing and delivery of software
US10860464B2 (en) 2017-03-10 2020-12-08 Micro Focus Llc Test selection for application commit
US10635577B2 (en) 2017-04-07 2020-04-28 International Business Machines Corporation Integration times in a continuous integration environment based on statistical modeling
US10310969B2 (en) 2017-05-31 2019-06-04 Oracle International Corporation Systems and methods for test prediction in continuous integration environments
US10678224B2 (en) * 2017-06-21 2020-06-09 Fisher-Rosemount Systems, Inc. Loop interface
US10437710B2 (en) 2017-10-17 2019-10-08 Entit Software Llc Code coverage testing utilizing test-to-file maps
US10732962B1 (en) * 2018-04-12 2020-08-04 Amazon Technologies, Inc. End-to-end deployment infrastructure
US10866792B1 (en) * 2018-04-17 2020-12-15 Palantir Technologies Inc. System and methods for rules-based cleaning of deployment pipelines
US10892973B2 (en) 2018-04-27 2021-01-12 Hewlett Packard Enterprise Development Lp Network health monitoring
US10303586B1 (en) * 2018-07-02 2019-05-28 Salesforce.Com, Inc. Systems and methods of integrated testing and deployment in a continuous integration continuous deployment (CICD) system
US10698793B2 (en) 2018-08-23 2020-06-30 International Business Machines Corporation Function-message oriented test case generation for supporting continuous globalization verification testing
US11086759B2 (en) 2018-09-27 2021-08-10 SeaLights Technologies LTD System and method for probe injection for code coverage
US10733087B2 (en) * 2018-10-17 2020-08-04 Servicenow, Inc. Environment for continuous testing and integration of software
US11119901B2 (en) * 2019-02-01 2021-09-14 Micro Focus Llc Time-limited dynamic testing pipelines
US11347381B2 (en) 2019-06-13 2022-05-31 International Business Machines Corporation Dynamic synchronized image text localization
US11216303B1 (en) * 2019-07-29 2022-01-04 Intuit Inc. Integrated task registration and execution system
US11573885B1 (en) 2019-09-26 2023-02-07 SeaLights Technologies LTD System and method for test selection according to test impact analytics
US11301246B2 (en) * 2020-08-18 2022-04-12 Red Hat, Inc. Automatically generating continuous integration pipelines
CN112596854A (zh) * 2020-12-15 2021-04-02 中国建设银行股份有限公司 一种持续集成流水线运行的方法和装置
US11841791B2 (en) 2021-06-07 2023-12-12 International Business Machines Corporation Code change request aggregation for a continuous integration pipeline
US11842188B2 (en) 2021-10-29 2023-12-12 Red Hat, Inc. Continuous integration and deployment pipeline selection based on dynamic mapping
US11989539B2 (en) 2022-06-21 2024-05-21 Red Hat, Inc. Continuous integration and deployment system time-based management
WO2024073261A1 (en) * 2022-09-27 2024-04-04 Bluevoyant Llc Devices, systems, and methods for continuously enhancing the implementation of code changes via enriched pipelines

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1051800A (zh) * 1989-11-17 1991-05-29 西屋电气公司 专家系统测试器
US20080256392A1 (en) * 2007-04-16 2008-10-16 Microsoft Corporation Techniques for prioritizing test dependencies
CN101515232A (zh) * 2008-02-21 2009-08-26 卓望数码技术(深圳)有限公司 一种软件持续集成系统及方法
US20090265693A1 (en) * 2008-04-18 2009-10-22 International Business Machines Corporation Method and system for test run prioritization for software code testing in automated test execution
US20090265681A1 (en) * 2008-04-21 2009-10-22 Microsoft Corporation Ranking and optimizing automated test scripts

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028290B2 (en) * 2002-04-29 2006-04-11 Microsoft Corporation Method and apparatus for prioritizing software tests
US7496904B2 (en) * 2003-06-26 2009-02-24 Microsoft Corporation Mining dependencies for testing and risk management
US9542175B2 (en) 2005-06-24 2017-01-10 Oracle International Corporation Continuous deployment
US8171459B2 (en) * 2007-11-16 2012-05-01 Oracle International Corporation System and method for software performance testing and determining a frustration index
US8997061B1 (en) * 2007-12-31 2015-03-31 Teradata Us, Inc. Test scheduling based on historical test information
US9348725B1 (en) * 2010-08-22 2016-05-24 Panaya Ltd. Method and system for handling failed test scenarios
AU2012202053B2 (en) * 2011-04-12 2013-10-17 Accenture Global Services Limited Prioritization and assignment manager for an integrated testing platform
US20130104105A1 (en) * 2011-04-18 2013-04-25 Julian M. Brown Test data supply chain manager for an integrated testing platform
US20130055028A1 (en) * 2011-08-31 2013-02-28 Ebay Inc. Methods and systems for creating software tests as executable resources
US8677315B1 (en) * 2011-09-26 2014-03-18 Amazon Technologies, Inc. Continuous deployment system for software development
WO2013078269A1 (en) * 2011-11-22 2013-05-30 Solano Labs, Inc. System of distributed software quality improvement
EP2810166A4 (en) * 2012-01-31 2016-04-20 Hewlett Packard Development Co IDENTIFY A FAILED CODE CHANGE
CN104067226A (zh) * 2012-01-31 2014-09-24 惠普发展公司,有限责任合伙企业 代码变化的持续部署
US9032369B2 (en) * 2012-03-26 2015-05-12 Software Ag Systems and/or methods for executing appropriate tests based on code modifications using live, distributed, real-time cache and feedback loop

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1051800A (zh) * 1989-11-17 1991-05-29 西屋电气公司 专家系统测试器
US20080256392A1 (en) * 2007-04-16 2008-10-16 Microsoft Corporation Techniques for prioritizing test dependencies
CN101515232A (zh) * 2008-02-21 2009-08-26 卓望数码技术(深圳)有限公司 一种软件持续集成系统及方法
US20090265693A1 (en) * 2008-04-18 2009-10-22 International Business Machines Corporation Method and system for test run prioritization for software code testing in automated test execution
US20090265681A1 (en) * 2008-04-21 2009-10-22 Microsoft Corporation Ranking and optimizing automated test scripts

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399082A (zh) * 2017-02-08 2018-08-14 中兴通讯股份有限公司 一种持续集成流水线的生成方法和系统
WO2018145559A1 (zh) * 2017-02-08 2018-08-16 中兴通讯股份有限公司 持续集成流水线的生成方法和系统
CN108399082B (zh) * 2017-02-08 2022-11-15 中兴通讯股份有限公司 一种持续集成流水线的生成方法和系统
CN109814914A (zh) * 2018-12-27 2019-05-28 网联清算有限公司 持续集成方法、装置和电子设备
CN111382082A (zh) * 2020-04-01 2020-07-07 中国建设银行股份有限公司 持续集成测试方法及装置
CN111737118A (zh) * 2020-06-11 2020-10-02 百度在线网络技术(北京)有限公司 一种流水线测试方法、装置、电子设备及存储介质
CN111737118B (zh) * 2020-06-11 2024-02-20 百度在线网络技术(北京)有限公司 一种流水线测试方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2013165367A8 (en) 2014-09-04
EP2845095A1 (en) 2015-03-11
EP2845095A4 (en) 2015-12-23
US20170228312A1 (en) 2017-08-10
CN104185840B (zh) 2018-01-16
US20150026121A1 (en) 2015-01-22
WO2013165367A1 (en) 2013-11-07
US9652509B2 (en) 2017-05-16

Similar Documents

Publication Publication Date Title
CN104185840A (zh) 持续部署流水线测试的优先化
KR101980286B1 (ko) 애플리케이션별 자원 사용량 정보의 제공 기법
US20150052501A1 (en) Continuous deployment of code changes
CN102708050B (zh) 移动应用测试方法和系统
CN111178380B (zh) 数据分类方法、装置及电子设备
EP3031216A1 (en) Dynamic collection analysis and reporting of telemetry data
CN105117544A (zh) 基于移动云计算的Android平台App风险评估方法与装置
CN104506522A (zh) 漏洞扫描方法及装置
CN109543891B (zh) 容量预测模型的建立方法、设备及计算机可读存储介质
US20160253172A1 (en) Indicating a trait of a continuous delivery pipeline
CN106708738B (zh) 一种软件测试缺陷预测方法及系统
CN105338082A (zh) 基于应用代理服务器的负载均衡方法及装置
CN109828750B (zh) 自动配置数据埋点的方法、装置、电子设备及存储介质
CN104572085A (zh) 应用程序的分析方法及装置
CN104657437A (zh) 推广情况数据的监测方法及装置
CN111859139A (zh) 应用程序推荐方法、装置、计算设备和介质
CN115237804A (zh) 性能瓶颈的评估方法、装置、电子设备、介质和程序产品
CN104022899A (zh) 一种网络管理系统的三维评估方法及系统
WO2013191807A1 (en) Efficient evaluation of network robustness with a graph
CN104573864A (zh) 一种基于自回归预测的数据分析报警方法
CN117310500A (zh) 电池状态分类模型构建方法及电池状态分类方法
CN114911615B (zh) 微服务运行时智能预测调度的方法及应用
CN103746870A (zh) Cdn分发网络的分析方法、文件分发控制中心及系统
CN109194703A (zh) 云平台主机间通信负载的处理方法、电子装置及介质
CN111885159B (zh) 数据采集方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170208

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: HP Development Co., Ltd

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180608

Address after: American California

Patentee after: Antite Software Co., Ltd.

Address before: American Texas

Patentee before: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: Utah, USA

Patentee after: Weifosi Co., Ltd

Address before: California, USA

Patentee before: Antiy Software Co.,Ltd.

CP03 Change of name, title or address