失败代码变化的识别制造技术

技术编号:10493312 阅读:142 留言:0更新日期:2014-10-03 20:18
公开了识别在具有多个代码变化的部署管线中的失败代码变化的方法。通过对多个代码变化运行一组测试来测试多个代码变化,直到多个代码变化的子集通过这组测试为止。每当子集未能通过这组测试时,多个代码变化中的至少一个从子集移除。基于通过这组测试的子集来确定失败代码变化。

【技术实现步骤摘要】
【国外来华专利技术】失败代码变化的识别
技术介绍
软件开发生命周期使用持续集成(CI)和持续部署(DC)来减少在生产线中花费的时间代码变化。持续集成使从特定的源配置管理(SCM)工具接收代码变化、构造具有代码变化的可交付使用组件并测试组件的过程自动化。附图说明本公开的非限制性例子在参考附于其的附图阅读的下面描述中被描述,且并不限制权利要求的范围。在附图中,出现在多于一个附图中的其相同和相似的结构、元件或部分在它们出现所在的附图中通常用相同或相似的参考符号来标记。在附图中示出的部件和特征的尺寸主要为了陈述的方便和清楚而被选择,且不一定是按比例的。参考以下附图:图1示出根据例子的网络环境;图2-3示出根据例子的识别在部署管线中的失败代码变化的系统的方框图;图4示出根据例子的可以与系统一起使用的计算机可读介质的方框图;图5示出根据例子的识别在部署管线中的失败代码变化的过程的示意图;以及图6-7示出根据例子的识别在部署管线中的失败代码变化的方法的流程图。具体实施方式在下面的详细描述中,参考形成其一部分的附图,且其中通过特定例子的方式进行示出,本公开可被实施在所述特定例子中。应理解,其它例子可被利用,且结构或逻辑变化可被做出而不偏离本公开的范围。因此下面的详细描述不应在限制性的意义上被理解,且本公开的范围由所附权利要求限定。持续集成(CI)和持续部署(CD)使具有代码变化的代码组件的构造、测试和部署自动化。自动化在代码变化被交付到源配置管理(SCM)工具之后开始。持续集成使从SCM工具获取代码变化、构造可交付使用组件、例如执行对组件的构建和单元测试的过程自动化。持续部署通过将组件自动部署到测试环境中并对组件执行测试来扩展持续集成。持续集成促进由不同开发者进行的代码变化的进行中集成,并减小由于代码合并而引起的在测试环境中的失败的风险。在例子中,提供了识别在具有多个代码变化的部署管线中的失败代码变化的方法。通过对多个代码变化运行一组测试来测试多个代码变化,直到多个代码变化的子集通过这组测试为止。每当子集未能通过这组测试时,多个代码变化中的至少一个从该子集被移除。基于通过这组测试的子集来确定失败代码变化。短语“代码变化”指在软件应用的源代码中的变化。短语代码变化也可以指作为代码组件的部分的代码变化,代码组件被构造为持续集成过程的部分。短语“部署管线”指在代码变化的队列上串行和/或并行地执行的一组动作。例如,部署管线可包括构建代码、执行单元测试、部署代码、运行自动化测试、对代码分级、运行端对端测试并部署代码以生产。短语“一组测试”指在模拟环境中使用代码变化运行的测试。这组测试可包括测试代码变化的集成的单元测试和/或具有代码变化的功能测试。短语“失败代码变化”指在测试期间的至少一个代码变化的失败。例如,多个代码变化可被组装或构建成组件,且单元测试可对代码变化被执行。如果一个代码变化具有错误和/或如果代码变化的组合不一起正确地工作,则单元测试可能失败。图1示出根据例子的网络环境100。网络环境100包括连接测试设备12、部署设备14、客户端设备16和数据储存器18的链路10。测试设备12总地代表测试来自部署设备14的多个代码变化的任何计算设备或计算设备的组合。部署设备14代表接收代码变化并在部署管线中部署代码变化的计算设备。客户端设备16代表配置成经由链路10与测试设备12和部署设备14交互的计算设备和/或计算设备的组合。交互可包括代表用户发送和/或传输数据,例如代码变化。交互还可包括接收数据,例如具有代码变化的软件应用。客户端设备16可以例如是包括使用户能够创建和/或编辑软件应用的代码的软件的个人计算设备。测试设备12可在测试环境下对应用中的多个代码变化运行一组测试以集成多个代码变化来在软件应用中使用。这组测试和/或代码变化可存储在数据储存器18中。数据储存器18总地代表配置成存储在其功能的执行中可由测试设备12和部署设备14访问的数据的任何存储器。测试设备12的功能可经由链路10实现,链路10将测试设备12连接到部署设备14、客户端设备16和数据储存器18。链路10总地代表经由电信链路、红外链路、射频链路或提供电子通信的任何其它连接器或系统的电缆、无线、光纤或远程连接中的一个或多个。链路10可至少部分地包括内联网、因特网或这两者的组合。链路10还可包括中间代理、路由器、交换机、负载平衡器等。图2示出识别在具有多个代码变化的部署管线中的失败代码变化的系统100的方框图。参考图2,系统200包括测试引擎22和决策引擎24。测试引擎22总地代表对部署管线中的多个代码变化的子集执行一组测试的硬件和/或编程的组合。决策引擎24总地代表确定失败代码变化的硬件和/或编程的组合。决策引擎24还指示测试引擎22执行这组测试并从该子集移除多个代码变化中的至少一个,直到子集通过这组测试为止。决策引擎24基于从通过这组测试的子集移除的至少一个代码变化来确定失败代码变化。图3示出根据进一步例子的在网络环境100中的系统200的方框图。图3所示的系统200包括测试设备12、部署设备14和数据储存器18。测试设备12被示为包括测试引擎22和决策引擎24。测试设备12连接到从客户端设备16接收代码变化36的部署设备14。使用来自数据储存器18的测试或一组测试38在测试设备12中测试代码变化36。在代码变化通过这组测试38之后,部署设备14经由部署管线部署经测试的代码变化36。测试引擎22对部署管线中的多个代码变化36的子集执行一组测试38。决策引擎24指示测试引擎22执行这组测试38。决策引擎24还从多个代码变化36的子集移除多个代码变化36中的至少一个,直到该子集通过这组测试38为止。决策引擎24可具有移除代码变化36的能力和/或可指示例如管线引擎32(下面讨论)的单独的引擎移除代码变化36。此外,决策引擎24基于从通过这组测试38的子集移除的至少一个代码变化36确定失败代码变化。例如,决策引擎24可识别从子集移除的多个代码变化36中的至少一个以确定失败代码变化。而且,决策引擎24可执行比较。例如,当子集在通过这组测试38之前未能通过这组测试38时,决策引擎24可通过比较包含在通过这组测试38的子集中的至少一个代码变化36与包含在未能通过这组测试38的子集中的至少一个代码变化36来确定失败代码。决策引擎24还可自动传输识别失败代码变化的消息。测试设备12还被示为包括管线引擎32。管线引擎32总地代表创建在部署管线中的多个代码变化36的子集和/或从该子集移除多个代码变化中的至少一个的硬件和/或编程的组合。例如,管线引擎32可从决策引擎24接收指令以移除多个代码变化36中的至少一个。管线引擎32也可从多个代码变化36创建多个并行测试子集。多个并行测试子集中的每个包括多个代码变化36的不同排列。测试引擎22可同时测试多个并行测试子集中的每个以确定多个并行测试子集中的哪个通过这组测试38。可基于处理器和/或计算资源的能力来执行同时测试。部署设备14包括部署引擎34。部署引擎34总地代表在测试环境下在应用中测试之后部署代码变化36的硬件和/或编程的组合。部署设备14连接到数据储存器18。数据储存器18例如是存储代码变化36和这组测试38的数据库。部署引擎34可与测试本文档来自技高网...
失败代码变化的识别

【技术保护点】
一种识别在具有多个代码变化的部署管线中的失败代码变化的计算机实现的方法,所述方法包括:在测试环境下在应用中测试在所述部署管线中的所述多个代码变化,测试包括:    对所述多个代码变化运行一组测试,直到所述多个代码变化的子集通过所述一组测试为止,以及    每当子集未能通过所述一组测试时,从子集移除所述多个代码变化中的至少一个;以及基于通过所述一组测试的子集来确定失败代码变化。

【技术特征摘要】
【国外来华专利技术】1.一种识别在具有多个代码变化的部署管线中的失败代码变化的计算机实现的方法,所述方法包括:在测试环境下在应用中测试在所述部署管线中的所述多个代码变化,测试包括:对所述多个代码变化运行一组测试,直到所述多个代码变化的子集通过所述一组测试为止,以及每当子集未能通过所述一组测试时,从子集移除所述多个代码变化中的至少一个;以及基于通过所述一组测试的子集来确定失败代码变化;其中,所述部署管线是在所述多个代码变化的队列上串行和/或并行地执行的一组动作。2.如权利要求1所述的方法,其中确定失败代码变化包括识别从子集移除的所述多个代码变化中的至少一个。3.如权利要求1所述的方法,其中确定失败代码变化包括比较通过所述一组测试的子集中的所述多个代码变化中的至少一个与未能通过所述一组测试的子集中的所述多个代码变化中的至少一个。4.如权利要求1所述的方法,其中移除所述多个代码变化中的至少一个还包括基于所述多个代码变化中的至少一个放置在源配置管理工具中时的时间来选择要移除的所述多个代码变化中的至少一个。5.如权利要求1所述的方法,其中移除所述多个代码变化中的至少一个还包括从子集移除预定百分比的所述多个代码变化,直到子集通过所述一组测试为止。6.如权利要求1所述的方法,还包括复制在所述部署管线中的所述多个代码变化中的至少一个以创建子集。7.如权利要求1所述的方法,还包括从所述部署管线中的所述多个代码变化创建多个并行测试子集,所述多个并行测试子集中的每个包括所述多个代码变化的不同排列。8.如权利要求7所述的方法,其中测试所述多个代码变化还包括:同时测试所述多个并行测试子集中的每个以确定所述多个并行测试子集中的哪个通过所述一组测试;以及比较通过所述一组测试的多个并行测试子集以确定失败代码变化。9.一种识别在...

【专利技术属性】
技术研发人员:I莎妮A尼桑I舒弗
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1