CN112703486A - 经由对跨内部验证环的遥测数据的分析来检测代码缺陷 - Google Patents

经由对跨内部验证环的遥测数据的分析来检测代码缺陷 Download PDF

Info

Publication number
CN112703486A
CN112703486A CN201980059635.XA CN201980059635A CN112703486A CN 112703486 A CN112703486 A CN 112703486A CN 201980059635 A CN201980059635 A CN 201980059635A CN 112703486 A CN112703486 A CN 112703486A
Authority
CN
China
Prior art keywords
development
failure
loop
spike
software build
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.)
Pending
Application number
CN201980059635.XA
Other languages
English (en)
Inventor
D·A·伊萨克
D·V·克洛德科夫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112703486A publication Critical patent/CN112703486A/zh
Pending legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在本公开的非限制性示例中,提出了用于检测与基于云的服务相关联的代码缺陷的系统、方法和设备。可以识别在当前软件构建的生产环境之前的最外开发环中的操作失败尖峰与当前软件构建的最外开发环之前的开发环中的操作失败尖峰之间的相关性。可以确定不存在与先前软件构建中的最外开发环中的尖峰相对应的操作失败尖峰。可以确定不存在与先前软件构建的最外开发环之前的开发环相对应的操作失败尖峰。基于发现,可以将与失败尖峰相关联的操作标记为与代码缺陷有关。

Description

经由对跨内部验证环的遥测数据的分析来检测代码缺陷
背景技术
随着计算已经越来越多地移向云,在不断地修改支持大量用户的系统以及其利用的基于云的应用。基于云的系统的基础设施需要不断的监视才能维护,更不用说更新和添加额外的特征和功能。随着新的软件构建通过开发环以及最终的生产环境被添加到基于云的系统的基础设施中,可能难以确定操作失败是否与新软件构建中的代码缺陷有关,或者其是否简单地表示可能与在那些构建中的代码缺陷完全无关的噪声。
相对于该一般技术环境,已经设想到了在本文中所公开的本技术的各方面。此外,尽管已经讨论了一般环境,但是应当理解,在本文中所描述的示例不应当限于在背景中标识的一般环境。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下文的“具体实施方式”部分中进一步描述。该发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也并不旨在用于辅助确定所要求保护的主题的范围。示例的额外方面、特征和/或优点将在下文的描述中部分地阐述,并且将部分地从描述中变得显而易见,或者可以通过实践本公开而获知。
本公开的非限制性示例描述了用于基于从软件构建的当前版本和先前版本接收到的遥测数据来识别针对软件构建的代码缺陷的系统、方法和设备。所述遥测数据可以包括描述与软件构建相关联的基于云的应用的操作失败的信息。可以在生产环境环之前在最外开发环中识别出操作失败尖峰(spike),并且针对软件构建的先前版本在最外开发环中的对应的操作失败尖峰可以被验证为在其中没有发生。还可以在最外开发环之前的当前软件构建的环中识别出操作失败尖峰。在其中识别出该尖峰的先前的环可以是工程环或内部测试环。可以在软件构建的先前版本中将对应的操作失败尖峰识别为没有在其中发生。基于以上识别/确定,可以识别针对当前软件构建的代码缺陷。系统监视器可以标记代码缺陷,并且将通知发送给IT人员进行调试。所述通知可以包括检测和/或识别操作失败尖峰的环中的操作失败尖峰的图形表示。
附图说明
参考以下附图描述了非限制性和非穷举性示例:
图1是图示了用于检测与基于云的应用服务相关联的代码缺陷的示例性分布式计算环境的示意图。
图2图示了可以作为在基于云的应用服务中实现的软件构建的一部分来监视的环。
图3图示了示例性用户界面,其用于指示在外部开发环和工程开发环中的操作失败尖峰彼此相关,并且指示代码缺陷。
图4是用于检测与基于云的应用服务相关联的代码缺陷的示例性方法。
图5是用于检测与基于云的应用服务相关联的代码缺陷的另一示例性方法。
图6和图7是可以实践本公开的各方面的移动计算设备的简化图。
图8是图示了可以实践本发明的各方面的计算设备的示例性物理组件的框图。
图9是在其中可以实践本公开的各方面的分布式计算系统的简化框图。
具体实施方式
将参考附图详细描述各种实施例,其中,贯穿若干视图,相似的附图标记表示相似的部件和组件。参考各种实施例不限制随附的权利要求的范围。另外,在本说明书中阐述的任何示例都不意图是限制性的,而仅仅阐述了针对随附的权利要求的许多可能的实施例中的一些。
上文所述的各种实施例和示例仅以例示说明的方式来提供,并且不应当被解释为限制随附的权利要求。本领域技术人员将容易认识到,在不遵循在本文中所图示和描述的示例性实施例和应用的情况下,并且在不背离权利要求的真实主旨和范围的情况下,可以做出各种修改和改变。
本公开的示例提供了用于检测与基于云的应用服务相关联的代码缺陷的系统、方法和设备。例如,所述代码缺陷可以被包含在新的软件封装、更新和/或补丁中。在一些示例中,所述代码缺陷可能与一个或多个基于云的应用相关联,诸如基于云的文档处理应用、电子表格应用、日历应用、演示应用、存储应用、视频应用、实时电子消息传递应用、语音消息传递应用、视频通信应用、和/或电子邮件应用。在一些示例中,系统监视器可以监视与涉及一个或多个基于云的应用的操作失败相关联的信号。例如,当针对基于云的应用的操作失败,和/或针对基于云的应用的操作在其被执行时导致应用崩溃或失败时,指示存在操作事件或操作失败的信号可以被报告给系统监视器。所述系统监视器可以监视与基于云的应用相关联的一个或多个操作。例如,所述系统监视器可以监视“保存”操作、“发送”操作、“新文档”操作、“复制”操作、“粘贴”操作以及可以由基于云的应用执行的任何其他操作。
根据示例,所述系统监视器可以监视来自用于软件构建的最外部开发环(即,生产环境之前的开发环)的操作失败信号。在一些示例中,当系统监视器在阈值持续时间内已经接收到和/或检测到针对操作的阈值数量的操作失败信号时,所述系统监视器可以确定在用于软件构建的先前开发环中是否已经发生了类似的操作失败尖峰。亦即,所述系统监视器可以确定在用于软件构建的阈值持续时间期间,在先前的开发环中是否也接收、报告和/或以其他方式能够识别针对所述操作的阈值数量的操作失败信号。在一些示例中,由于在外部开发环中由较大的用户基数执行更多数量的操作,因此在最外开发环中识别操作尖峰所需的操作失败的数量可能高于在先前开发环中识别操作尖峰所需的操作失败的数量。另外,在一些示例中,不是简单地利用绝对数量来识别操作失败尖峰,而是可以在确定操作失败尖峰是否已经发生时利用针对给定操作的失败操作与没有失败操作的比率和/或百分比。
如果已经识别出软件构建的最外开发环中的特定操作的操作失败尖峰,并且在所述软件构建的先前的开发环中也已经识别出该特定操作的对应操作失败尖峰,则系统监视器随后可以识别该特定操作的操作尖峰是否也存在于该软件构建的先前版本中。亦即,系统监视器可以识别与在新的软件构建中识别出的那些操作失败尖峰相对应的操作失败尖峰是否也出现在所述软件构建的先前版本中的一个或多个环和/或环境中。在一些示例中,系统监视器可以分析所述软件构建的一个或多个先前版本的过去的操作失败数据以做出该确定。根据一些示例,如果系统监视器将在软件构建的先前版本中的对应操作失败尖峰识别为没有在每个对应的开发环(例如,最外开发环和先前开发环)中发生,则系统监视器可以将操作失败以及其在当前软件构建中的对应尖峰标记为与代码缺陷有关(而不是与系统噪声有关)。
在另外的示例中,可以在将操作失败和/或其对应尖峰标记为与代码缺陷有关之前执行进一步的验证。亦即,在一些示例中,系统监视器可以另外地确定针对当前软件构建和/或软件构建的先前版本的生产环境中是否发生了针对特定操作的升高级别的操作错误。在这样的示例中,如果系统监视器确定针对特定操作的操作错误的升高级别没有在生产环境中针对软件构建的先前版本发生,和/或针对特定操作的操作错误的升高级别确实存在于在当前软件构建的生产环境中,则系统监视器随后可以将操作失败以及其在当前软件构建中的对应尖峰标记为与代码缺陷有关。在一些示例中,升高级别必须在阈值持续时间内满足阈值数量的操作失败,以使系统监视器将当前软件构建中的操作失败标记为与代码缺陷有关。在其他示例中,升高级别必须满足失败操作与成功操作的阈值比率和/或百分比,以使系统监视器将当前软件构建中的操作失败标记为与代码缺陷有关。
在本文中所描述的系统、方法和设备提供了用于检测与基于云的应用服务相关联的代码缺陷的技术优势。由于可以根据在本文中的描述接近实时地执行操作失败尖峰分析的自动化,因此减少了与存储当前的构建操作失败以供以后执行手动代码诊断工作相关联的存储器成本。例如,在当前解决方案之前,通常将存储操作错误和报告以供人类工程师进行分析,当操作错误发生时,无法使用所述报告进行这样的分析。通过利用在本文中所描述的系统、方法和设备,也减少了与新软件构建的发布相关联的处理成本。例如,在当前解决方案之前,当工程师确定操作失败可能与当前软件构建中的代码缺陷有关时,与根据当前描述所能实现的相比,那些确定中的错误率相对较高。因此,当做出这样的确定时,通常至少一部分新软件构建代码从新软件构建中回滚来确定所述代码是否确实有缺陷并且引起操作错误、和/或代码中的哪些部分有缺陷并且导致操作错误。由于根据在本文中所描述的系统、方法和设备实现的较低的错误率,极大地减少了移除代码和替换代码的需要,由此显著减少了与此相关联的处理、存储和人工成本。
图1是图示了用于检测与基于云的应用服务相关联的代码缺陷的示例性分布式计算环境100的示意图。分布式计算环境100包括第一开发环102,其是在生产环境之前的用于当前软件构建的最外开发环;第二开发环104,其是在第一开发环102之前的开发环(例如,第二开发环104可以包括与针对软件构建的用户的工程组进行的第一级测试,并且第一开发环102可以包括与针对软件构建的较大内部测试用户组进行的第二级测试);以及生产环境106,其是与向开发当前软件构建的组织外部的用户发布当前软件构建相对应的环。分布式计算环境100还包括开发环108,其是在生产环境之前的用于当前软件构建的先前版本的最外开发环;开发环110,其是在软件构建的先前版本中的开发环108之前的开发环;以及生产环境112,其是与向开发先前软件构建的组织外部的用户发布先前软件构建相对应的环。亦即,开发环108对应于第一开发环102的先前软件构建版本,开发环110对应于第二开发环104的先前软件构建版本,并且生产环境112对应于生产环境106的先前软件构建版本。
分布式计算环境100还包括网络和处理子环境114,其包括网络116,分布式计算环境100中的任何计算设备都可以经由网络116彼此通信;服务器计算设备118;以及先前部署数据存储装置120。监视来自一个或多个基于云的应用的操作数据的监视服务可以驻留在网络和处理子环境114中的一个或多个计算设备上。例如,一个或多个基于云的应用可以向监视服务报告操作错误。操作错误可能与部署到一个或多个环和部署环境的基于云的应用的软件构建相关联。在其他示例中,监视服务可以检测与针对部署到一个或多个环和部署环境的基于云的应用的软件构建相关联的操作错误。监视服务可以确定与一个或多个基于云的应用相关联的服务质量下降是否对应于与针对一个或多个应用操作的新软件构建中与一个或多个操作相关联的代码缺陷,或者服务质量下降是否为与系统中的噪声有关。
系统监视器可以从用户以及其执行第一开发环102中当前软件构建的应用软件的设备中检测和/或接收与当前软件构建的操作错误相关联的信息。在一些示例中,当发生操作错误时,基于云的应用可以自动地将操作错误报告给系统监视器。在其他示例中,可以存在选择加入系统,使得至少在生产环境中,用户必须选择加入,以允许将操作错误自动报告给系统监视器。在又其他示例中,除了或替代接收操作错误通知,系统监视器可以检测操作错误。
系统监视器还从用户以及其执行第二开发环104中当前软件构建的应用软件的设备中检测和/或接收与当前软件构建的与操作错误相关联的通知。在一些示例中,在第二开发环104中的当前软件构建可以与在第一开发环104中的当前软件构建同时地执行(即,当前软件构建可以同时部署在两个环/环境中)。在其他示例中,在第一开发环104中已经测试了当前软件构建之后,可以执行第二开发环104中的当前软件构建。
系统监视器可以分析来自从第一开发环102检测到和/或接收到的操作错误的数据,并且确定与第一开发环102相关联的操作尖峰是否发生和/或满足阈值。在一些示例中,阈值可以包括在指定的持续时间内针对特定操作的操作失败的数量。在其他示例中,阈值可以包括在第一开发环102中在指定的持续时间内具有特定操作失败的用户的百分比。在又其他示例中,阈值可以包括特定操作的操作失败数量与特定操作的操作成功数量相比的百分比。
无论如何,在确定已经发生与第一开发环102相关联的操作尖峰后,系统监视器可以分析来自从第二开发环104检测到和/或接收到的操作错误的数据,并且基于该分析来确定针对相同特定操作与第二开发环104相关联的操作尖峰是否发生在与第一开发环102中出现尖峰的时间相对应的时间。亦即,系统监视器可以:针对近似时间窗口分析来自第二开发环104的操作失败信息,其中在所述近似时间窗口中针对第一开发环102发生操作失败;并且确定:在关于第一开发环102的时间窗口期间在相同或相似的持续时间内,是否报告了相同或相似百分比的操作错误;和/或在关于第一开发环102的时间窗口期间在相同或相似的持续时间内,是否报告了相同或相似数量的操作错误;和/或关于第一开发环102的时间窗口期间在相同或相似的持续时间内,对应于与第一开发环102中较大数量的测试用户相比的第二开发环104中较小数量的测试用户,是否报告了较小数量的操作错误。在一些示例中,系统监视器可以在第一开发环102中寻找操作失败尖峰,该尖峰在时间上滞后于第二开发环104中发生操作失败尖峰的时间窗口。亦即,基于第一开发环102、第二开发环104中的每个中的用户数量和/或在第二开发环104与第一开发环102之间的延迟发布,系统监视器可以考虑操作尖峰之间的一定滞后时间。
根据一些示例,在报告在持续时间内特定操作的操作尖峰与当前软件构建的代码错误相对应之前,对应于在针对当前软件构建的第一开发环102和第二开发环104的每个中检测到针对特定操作的操作失败尖峰,系统监视器可以验证操作失败尖峰不存在于针对先前软件构建的对应环中(例如,先前软件构建中的开发环108对应于当前软件构建中的第一开发环102;并且先前软件构建中的开发环110对应于当前软件构建中的第二开发环104)。亦即,系统监视器可以分析来自先前软件构建中的开发环110的操作错误数据,以验证没有发生与当前软件构建中的第二开发环104中检测到的失败尖峰相对应的失败尖峰;并且系统监视器可以分析来自先前软件构建中的开发环108的操作错误数据,以验证没有发生与当前软件构建中的第一开发环102中检测到的失败尖峰相对应的失败尖峰。在一些示例中,用于先前软件构建的操作数据可以被存储在先前部署数据存储装置120中,以供系统监视器稍后分析。例如,用于开发环108、开发环110和/或生产环境112中的每一个的操作数据(包括操作失败数据)可以被存储在先前部署数据存储装置120中。在额外的示例中,用于当前软件构建的操作数据也可以被存储在先前部署数据存储装置120中,或者被存储在当前软件部署数据存储装置中。在其他示例中,可以实时地或接近实时地分析来自当前软件构建和/或先前软件构建的操作数据。
根据一些示例,如果系统监视器确定在第一开发环102的时间窗口中发生了针对特定操作的操作尖峰,并且在第二开发环104的相同时间窗口中发生了针对特定操作的对应尖峰104,或者如上文所描述的基于滞后时间使两个操作尖峰相关,则系统监视器可以确定当前软件构建中已经发生与特定操作相关联的代码错误。在一些示例中,系统监视器必须首先验证与在第一开发环102和第二开发环104中识别/确定出的尖峰相对应的操作尖峰在确定当前软件构建中已经发生与特定操作相关联的代码错误之前没有在先前的软件构建中的对应生产环(即,开发环108和开发环110)中发生。一旦已经做出该确定,系统监视器就可以标记所述错误,并且在失败操作标记环境122中通知用户进行诊断和/或修复。该用户可以是与基于云的应用服务相关联的IT支持用户。对错误的标记可以包括在失败操作标记环境122中从第一开发环102和第二开发环104向用户发送操作失败尖峰的报告。在一些示例中,所述报告可以包括针对第一开发环102和第二开发环104中的每一个在持续时间内特定操作的操作失败的数量和/或百分比的图形表示。在本文中相对于图3图示和描述了报告的示例。
根据一些示例,在确定当前软件构建中已经发生与特定操作相关联的代码错误时,系统监视器可以通过执行额外步骤来确认代码错误,所述额外步骤为:确定在生产软件环境106中针对当前软件构建发生了特定操作的操作尖峰,和/或在生产环境112中的软件构建的先前版本没有发生特定操作的对应操作尖峰。亦即,在一些示例中,除了确定在第一开发环102和第二开发环104中发生了特定操作的失败尖峰,以及确定在软件构建的先前版本的对应开发环(例如,开发环108和开发环110)中没有发生特定操作的对应的失败尖峰,系统监视器可以额外地验证针对软件构建的先前版本在生产环境112中没有发生对应的操作尖峰,和/或针对软件构建的当前版本在生产环境106中没有发生对应的操作尖峰。在系统监视器验证在当前软件构建的生产环境106中确实发生了对应的操作尖峰的示例中,该失败尖峰的图形表示可以作为失败操作标记环境122中发送的报告的一部分提供给IT用户。
图2图示了可以作为在基于云的应用服务中实现的软件构建的一部分而被监视的软件开发环200。软件开发环200包括工程构建环202、内部验证环一204、内部验证环二206以及生产环境环208。通常,软件开发环将包括至少一个工程环,诸如工程构建202,其中软件构建被发布给创建所述软件构建的组织中相对小数量的软件工程师;至少一个内部验证环,诸如内部验证环一204和内部验证环二206,其中软件构建被发布给组织中相对更大量的用户;以及至少一个生产环境环,诸如生产环境环208,其中,软件构建被发布供开发该软件构建的组织外部的用户消费。尽管在生产环境环208之前在图2的示例中存在三个环(即,工程构建环202、内部验证环一204、内部验证环二206),但是应当理解,在生产环境环之前可以存在更多或更少的环。例如,如果不存在内部验证环一204,则仍可以利用内部验证环二206(因为其是生产环境之前的最后一个环)结合工程构建环202来实现本发明。
工程构建环202包括用于软件构建的第一测试环。例如,当首次创建软件构建时,可以将其发送给开发该软件构建的软件工程组中的一小组用户。该组用户可以包括工程构建环202。参考图1,工程构建环202可以对应于当前软件构建中的第二开发环104和/或先前软件构建中的开发环110。
内部验证环一204包括用于软件构建的第二测试环。例如,当已经在第一组用户(例如,工程构建环202中的用户)中已经验证了软件构建时,可以将所述软件构建发布给作为开发所述软件构建的组织的一部分的相对更大的一组用户。该组用户可以包括内部验证环一204。内部验证环一204在图2中没有对应的环,因为在图1中没有两个内部测试环。而是,图1图示了单个内部测试环(例如,软件构建的当前版本中的第一开发环102和软件构建的先前版本中的对应开发环108),并且该环是在生产环境环之前的最外的开发环。
内部验证环二206包括用于软件构建的第三测试环。例如,当已经在第一组用户(例如,工程构建环202中的用户)和第二组用户(例如,内部验证环一204中的用户)之间验证了软件构建时,所述软件构建可以被发布给更大的一组用户,所述用户是开发软件构建的组织的一部分。该组用户可以包括内部验证环206。参考图1,内部验证环二206可以对应于当前软件构建中的第一开发环102和/或软件构建的先前版本中的开发环108。
生产环境环208包括向开发当前软件构建的组织外部的用户发布当前软件构建。例如,当在一个或多个内部和/或工程环中的用户之间已经验证软件构建时,所述软件构建可以作为标准产品发布的一部分或消费者的测试组的一部分发布,以供组织外部的用户消费。该组用户可以包括生产环境环208。
图3图示了计算设备302上的示例性用户界面,其用于指示在外部开发环和工程开发环中的操作失败尖峰彼此相关,并且指示代码缺陷。尽管图示了用于外部开发环和工程开发环中的操作失败尖峰的图形,但是应当理解,可以类似地使针对生产环境随时间显示操作失败尖峰的图形类似地被显示在计算设备302上。
计算设备302上的用户界面包括针对当前软件构建在外部开发环中的特定操作的操作错误的图形表示304,以及针对当前软件构建在工程开发环中的特定操作的操作错误的图形表示306。图形表示304和图形表示306中的每个的Y轴表示由系统监视器针对特定操作接收/确定的多个操作错误,并且图形表示304和图形表示306的每个的X轴表示时间。图形表示304和图形表示306的X轴表示的时间和比例是相同的。
在一些示例中,针对外部开发环和工程开发环,Y轴的比例可以是相同的。在外部开发环和工程开发环中的用户数量相同或相似时,可能出现这种情况。在其他示例中,针对外部开发环和工程开发环,Y轴的比例可以是不同的。在外部开发环和工程开发环中的用户数量不同时,可能出现这种情况。例如,在大多数情况下,工程开发环中的用户数量将小于外部开发环中的用户数量。因此,针对外部开发环的比例(例如,图形表示304中的每个水平线可以表示一千个用户,图形表示304中的每个水平线可以表示一万个用户)可能比针对工程开发环的比例(例如,图形表示306中的每个水平线可以表示十个用户,图形表示306中的每个水平线可以表示一百个用户)更大。因此,为了使系统监视器检测在外部开发环与工程开发环之间的对应的操作失败尖峰,与外部开发环相比,在工程开发环中的持续时间的操作失败可能明显更少。
在额外的示例中,针对外部开发环图形(图形表示304)和工程开发环图形(图形表示306)的Y轴可以表示在每个相应环中在任意给定时间针对特定操作经历错误的用户与在任意给定时间针对特定操作未经历错误的用户相比的百分比。在其他示例中,针对外部开发环图形和工程开发环图形的Y轴可以表示包括针对给定操作的失败操作的数量与针对给定操作的成功执行操作的数量相比的百分比。在这样的示例中,图形表示304和图形表示306中的每一个中的Y轴的比例可以是相同的(例如,针对外部开发环图形和工程开发环图形中的每一个中的水平线为25%、50%、75%)。
在该示例中,在图形表示306的部分310处,示出了在工程开发环中已经发生了针对特定操作的操作错误的尖峰。在图形表示304的部分308处,示出了在外部开发环中已经发生了针对特定操作的操作错误的对应尖峰。在该示例中,在外部开发环中发生的操作失败尖峰晚于在工程开发环中的操作失败尖峰(即,在尖峰之间存在滞后)。在一些示例中,所述滞后可能是由于软件构建首先在工程开发环中发布给用户,并且随后被发布到外部开发环。在其他示例中,滞后可能是由于初始在外部开发环中将软件构建发布给与工程开发环相比较少数量的用户,并且随后随着时间将软件构建发布给外部开发环中的额外用户。
图4是用于检测与基于云的应用服务相关联的代码缺陷的示例性方法400。所述方法开始于开始操作,并且流程继续到操作402。
在操作402处,系统监视器监视与基于云的应用服务相关联的多个操作。所述基于云的应用服务可以托管一个或多个应用,包括生产力应用,诸如文字处理应用、电子表格应用、电子邮件应用、演示应用、视频应用、呼叫应用、即时消息传递应用等。与那些应用和/或基于云的服务相关联的新版本、补丁和其他更新可以作为新软件构建推出,所述新软件构建在被发布给针对那些软件构建的生成环境中的开发组织外部的用户之前在多个开发环中进行测试。根据一些示例,当与基于云的应用相关联的操作失败和/或导致应用的一个或多个元素失败时,监视服务可以接收通知。在其他示例中,监视服务本身可以检测与基于云的应用相关联的操作何时失败和/或导致该应用的一个或多个元素失败。可以由系统监视器监视的操作的示例包括但不限于:保存操作、新文档操作、复制操作、粘贴操作等。
流程从操作402继续进行到操作404,其中在与基于云的应用服务相关联的软件构建的第一开发环(即,在生产环境之前的最外开发环)中识别多个操作中的特定操作的失败尖峰。在一些示例中,失败尖峰包括在阈值持续时间内任何给定类型的失败操作的阈值数量(例如,在二十分钟内发生一百次保存操作失败、在三十分钟内发生五十次创建新文档操作失败)。在其他示例中,失败尖峰包括在阈值持续时间内针对任何给定操作类型经历失败操作的用户的阈值百分比(例如,在二十分钟的持续时间内尝试保存操作的用户中有10%经历了失败、在三十分钟的持续时间内所有用户中有5%经历了保存操作失败)。在一些示例中,最外开发环是在将软件发布给组织外部的用户之前用于测试新软件构建的多个内部开发环之一。在生产环境之前的该最后一个开发环之前,可能存在一个或多个级别的内部测试。通常,这些内部测试环包括至少一个工程用户环,这比为开发新软件构建的组织工作的至少一个后续用户环的用户数量少。然而,本发明可以被应用在内部环中仅具有工程环和/或仅工程部门外部的组织用户对新软件构建进行测试的测试环境中。
流程从操作404继续进行到操作406,其中在第一开发环之前的第二开发环中针对软件构建识别了多个操作中的特定操作的失败尖峰。如同在操作404处识别失败尖峰,在操作406处识别的失败尖峰可以包括在阈值持续时间内的操作失败的阈值数量和/或在阈值持续时间内的经历操作失败的用户的阈值百分比。在一些示例中,在操作406处识别出的失败尖峰可以在时间上至少部分地与在操作404处识别出的失败尖峰重叠。在一些示例中,在操作406处识别的失败尖峰可以在操作404处识别的尖峰之前开始。例如,在第二开发环包括一组工程用户的情况下,那些用户可以在开发测试的接下来的环的时间之前开始测试新的软件构建,并且因此,工程环中将可能在工程级别的外部的环中的尖峰之前发生失败尖峰。
流程从操作406继续进行到操作408,其中对于软件构建的先前版本,确定针对多个操作中的特定操作的失败尖峰没有在与第一开发环相对应的开发环中发生。在一些示例中,系统监视器可以针对与先前软件构建中的第一开发环相对应的环来分析软件构建的先前版本的存储的操作数据。在其他示例中,软件构建的先前版本可以由用户与软件构建的当前版本同时地执行,并且系统监视器可以实时地或接近实时地分析该软件构建的先前版本和/或软件构建的当前版本的数据。系统监视器可以针对该环(即,与当前软件构建中的生产环境之前的最外的第一开发环相对应的软件构建的先前版本中的环)和正在查看的特定操作,来确定对应于在操作404处识别出的失败尖峰的尖峰(例如,在阈值持续时间内针对操作的操作失败的阈值数量、在阈值持续时间内经历操作的操作失败的用户的阈值百分比、在阈值持续时间内针对操作的失败操作与操作的成功操作相比的阈值百分比)没有在软件构建的先前版本中发生。
流程从操作408继续进行到操作410,其中针对软件构建的先前版本,确定多个操作中的特定操作的失败尖峰没有出现在与第二开发环相对应的开发环中。在一些示例中,系统监视器可以针对与先前软件构建中的第一开发环相对应的环来分析软件构建的先前版本的存储的操作数据。在其他示例中,软件构建的先前版本可以由用户与软件构建的当前版本同时地执行,并且系统监视器可以实时地或接近实时地分析软件构建的先前版本和/或软件构建的当前版本的数据。系统监视器可以针对该环(即,与当前软件构建中的第二开发环相对应的软件构建的先前版本中的环—在生产环境之前在最外开发环之前的环)和正在查看的特定操作,确定与在操作406处识别出的失败尖峰相对应的尖峰(例如,在阈值持续时间内针对操作的操作失败的阈值数量、在阈值持续时间内经历操作的操作失败的用户的阈值百分比、在阈值持续时间内针对操作的失败操作与针对操作的成功操作相比的阈值百分比)没有在软件构建的先前版本中没有发生。
在一些示例中,必须在阈值持续时间内发生的操作错误的阈值数量可能与构成在第一环和第二环中的操作失败尖峰的错误数量不同。例如,开发环越靠近中心(第一级测试),数量和/或百分比越低,这可能由于在那些内部环中的用户数量较少(例如,工程环通常比包括对组织中更宽泛组的用户进行测试的环具有较少数量的测试用户)。
流程从操作410继续进行到操作412,其中将操作中的特定操作标记为与代码缺陷有关。在一些示例中,在将操作标记为与代码缺陷有关之前,系统监视器可以针对软件构建的先前版本来验证在生产环境环中的特定操作没有操作失败尖峰。在其他示例中,在将操作标记为与代码缺陷有关之前,系统监视器可以针对软件构建的当前版本来识别在生产环境环中的特定操作存在操作失败尖峰。对特定操作的标记可以包括向与当前软件构建相关联的一个或多个IT用户发送通知。所述通知可以包括或提供对在当前和/或先前的软件构建中识别/检测到的操作失败尖峰的一个或多个图形表示的访问。在额外示例中,系统监视器可以生成实时图形,所述实时图形包括随着时间一个或多个操作的操作失败,并且可以提供与代码缺陷和识别出的尖峰相对应的操作失败的快照作为标记过程的一部分。
流程从操作412继续进行到结束操作,并且方法400结束。
图5是用于检测与基于云的应用服务相关联的代码缺陷的另一示例性方法500。方法500开始于开始操作,并且流程继续进行到操作502。
在操作502处,识别在用于软件构建的第一开发环中的操作失败尖峰与在用于软件构建的第二开发环中的操作失败尖峰之间的相关性。用于软件构建的第一开发环是在生产环境环之前的最外开发环。在一些示例中,操作失败尖峰可以包括在阈值持续时间内针对给定操作的操作失败的阈值数量。在其他示例中,操作失败尖峰可以包括在阈值持续时间内经历了针对操作的操作失败的用户的阈值百分比。在又其他示例中,操作失败尖峰可以包括在阈值持续时间内针对特定操作的操作失败与针对特定操作的成功操作相比的阈值百分比。
流程从操作502继续进行到操作504,其中确定对于软件构建的先前版本,不存在与第一失败尖峰相对应的操作失败尖峰。所述确定可以基于由系统监视器对软件构建的先前版本所存储的数据的分析,或者基于对软件构建的先前版本的实时或接近实时的数据的分析。
流程从操作504继续进行到操作506,其中确定对于软件构建的先前版本,不存在与第二失败尖峰相对应的操作失败尖峰。如同在操作504处做出的确定,可以由软件监视器基于所存储的数据和/或基于针对软件构建的先前版本的实时或接近实时数据来确定针对软件构建的先前版本不存在与第二失败尖峰相对应的操作失败尖峰。
在阈值持续时间内的操作错误的阈值数量指示操作失败尖峰的示例中,在生产环境环之前的最外开发环中操作错误的阈值数量可能高于在生产环境环之前在最外开发环之前的环,这是因为生产环境环之前的最外开发环可能具有更大的测试用户组。
流程从操作506继续进行到操作508,其中与失败尖峰相关联的操作被标记为与当前软件构建中的代码缺陷有关。标记可以包括向一个或多个用户发送电子邮件或其他电子消息,其指示由系统监视器已经检测到与当前软件构建和/或当前软件构建的操作相关联的代码缺陷。在示例中,可以包括与在一个或多个开发环和/或生产环中的操作失败尖峰相关联的时间线的图与所标记操作的标识。
流程从操作508继续进行到结束操作,并且方法500结束。
图6和图7图示了移动计算设备600,例如,移动电话、智能电话、可穿戴计算机、平板计算机、电子阅读器、膝上型计算机、AR兼容计算设备或VR计算设备,利用其可以实践本公开的实施例。参考图6,图示了用于实现各方面的移动计算设备600的一个方面。在基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持式计算机。移动计算设备600通常包括显示器605以及一个或多个输入按钮610,其允许用户将信息输入到移动计算设备600中。移动计算设备600的显示器605还可以用作输入设备(例如,触摸屏显示器)。如果被包含,则可选的侧输入元件615允许进一步的用户输入。侧输入元件615可以是旋转开关、按钮或者任何其他类型的手动输入元件。在替代方面,移动计算设备600可以并入更多或更少的输入元件。例如,在一些实施例中,显示器605可以不是触摸屏。在又一替代实施例中,移动计算设备600是便携式电话系统,诸如蜂窝电话。移动计算设备600还可以包括可选的小键盘635。可选的小键盘635可以是在触摸屏显示器上生成的物理小键盘或“软”小键盘。在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器605、视觉指示器620(例如,发光二极管)、和/或音频换能器625(例如,扬声器)。在一些方面中,移动计算设备600并入了振动换能器,其用于向用户提供触觉反馈。在又一方面中,移动计算设备600并入输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、以及视频输出(例如,HDMI端口),其用于向外部设备发送信号或者从外部设备接收信号。
图7是图示了移动计算设备的一个方面的架构的框图。亦即,移动计算设备700可以并入系统(例如,架构)702以实现一些方面。在一个实施例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面在,系统702被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
可以将一个或多个应用程序766加载到存储器762中,并且在操作系统864上或者与操作系统864相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传递程序等。系统702还包括存储器762内的非易失性存储区域768。非易失性存储区域768可以被用于存储在系统702断电时不应当丢失的持久性信息。应用程序766可以使用信息并且将其存储在非易失性存储区域768中,诸如电子邮件或者由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统702上,并且被编程为与驻留在主机计算机上的对应同步应用进行交互,以使存储在非易失性存储区域768中的信息与存储在主机计算机上的对应信息保持同步。应当理解,其他应用可以被加载到存储器762中并且在移动计算设备700上运行,包括用于提供和操作数字助理计算平台的指令。
系统702具有电源770,其可以被实现为一个或多个电池。电源770还可以包括外部电源,诸如AC适配器或者对电池进行补充或充电的供电对接支架。
系统702还可以包括执行发送和接收射频通信的功能的无线电接口层772。无线电接口层772经由通信运营商或服务提供商促进在系统702与“外部世界”之间的无线连接。朝向和来自无线电接口层772的传输是在操作系统764的控制下进行的。换言之,由无线电接口层772接收到的通信可以经由操作系统764散布到应用程序766,并且反之亦然。
视觉指示器620可以被用于提供视觉通知,和/或音频接口774可以被用于经由音频换能器625产生听觉通知。在所图示的实施例中,视觉指示器620是发光二极管(LED),并且音频换能器625是扬声器。这些设备可以被直接耦合到电源770,使得当被激活时,即使处理器760和其他组件可能为了节省电池电力而关闭,其也仍然在通知机制指定的持续时间内保持开启。可以将LED编程为无限期保持开启,直到用户采取措施指示设备的上电状态。音频接口774被用于向用户提供听觉信号并且从用户接收听觉信号。例如,除了被耦合到音频换能器625之外,音频接口774还可以被耦合到麦克风以接收可听输入,诸如以促进电话会话。根据本公开的实施例,麦克风也可以用作音频传感器以促进对通知的控制,如将在下文描述的。系统702还可以包括视频接口776,其使得板载相机630的操作能够记录静止图像、视频流等。
实现系统702的移动计算设备700可以具有额外的特征或功能。例如,移动计算设备700还可以包括额外数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或磁带。这样的额外存储装置在图7中通过非易失性存储区域768来图示。
如上文所描述的,可以将由移动计算设备700生成或捕获并且经由系统702存储的数据/信息本地存储在移动计算设备700上,或者可以将数据存储在由设备经由无线电接口层722或者经由在移动计算设备700和与移动计算设备700相关联的单独计算设备(例如,在诸如互联网的分布式计算网络中的服务器计算机)之间的有线连接访问的任意数量的存储介质上。应当意识到,可以经由移动计算设备700、经由无线电接口层772或者经由分布式计算网络来访问这样的数据/信息。类似地,可以根据包括电子邮件和协作数据/信息共享系统的公知的数据/信息传输和存储单元,在计算设备之间容易地传输这样的数据/信息以用于存储和使用。
图8是图示了可以实践本公开的各方面的计算设备800的物理组件(例如,硬件)的框图。下文所描述的计算设备组件可以具有用于检测与基于云的应用服务相关联的代码缺陷的计算机可执行指令。在基本配置中,计算设备800可以包括至少一个处理单元802和系统存储器804。取决于计算设备的配置和类型,系统存储器804可以包括但不限于:易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪存、或者这样的存储器的任意组合。系统存储器804可以包括适合于运行一个或多个代码缺陷系统监视程序的操作系统805。操作系统805例如可以适合于控制计算设备800的操作。此外,可以结合图形库、其他操作系统或者任何其他应用程序来实践本公开的实施例,并且本公开的实施例并不限于任何特定的应用或系统。该基本配置在图8中通过虚线808内的那些组件示出。计算设备800可以具有额外的特征或功能。例如,计算设备800还可以包括额外数据存储设备(可移动和/或不可移动),诸如,例如磁盘、光盘或磁带。这样的额外存储装置在图8中通过可移动存储设备809和不可移动存储设备810来实现。
如上所述,多个程序模块和数据文件可以被存储在系统存储器804中。在处理单元802上执行时,程序模块806(例如,实时代码缺陷遥测应用820)可以执行包括但不限于在本文中所描述的各方面的过程。根据示例,当与被执行的软件构建相关联的一个或多个操作发生时,操作失败监视器引擎811可以向系统监视器提供通知。所述通知可以包括关于失败的额外信息,诸如哪个用户经历了失败、哪个操作失败、系统崩溃还是以其他方式失败等等。尖峰识别引擎813可以确定针对给定操作在给定环中在阈值持续时间内是否发生了阈值数量的操作,和/或在给定环中在阈值持续时间内针对给定操作是否阈值百分比的用户经历了操作失败。尖峰相关引擎815可以针对相同和不同的开发和生产环来比较来自当前和先前软件构建的尖峰数据。操作缺陷标记引擎817可以执行与通知一个或多个用户何时已经将代码缺陷识别为与针对软件构建的一个或多个开发环中的操作失败有关相关联的一个或多个操作。
此外,本公开的实施例可以在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路,或者在包含电子元件或微处理器的单个芯片上实践。例如,可以经由片上系统(SOC)来实践本公开的实施例,其中,在图8中图示的每个或许多组件可以被集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都作为单个集成电路被集成(或“烧制”)到芯片基底上。当经由SOC操作时,关于客户端切换协议的能力的在本文中所描述的功能可以经由与单个集成电路(芯片)上的计算设备800的其他组件集成的专用逻辑来操作。还可以使用能够执行逻辑运算的其他技术来实践本公开的实施例,诸如,例如AND、OR和NOT,包括但不限于:机械、光学、流体和量子技术。另外,可以在通用计算机内或者在任何其他电路或系统中实践本公开的实施例。
计算设备800还可以具有一个或多个输入设备812,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。还可以包括(一个或多个)输出设备814,诸如显示器、扬声器、打印机等。前述设备是示例,并且可以使用其他设备。计算设备800可以包括允许与其他计算设备850进行通信的一个或多个通信连接816。合适的通信连接816的示例包括但不限于:射频(RF)发射器、接收器和/或收发器电路;通用串行总线(USB),并行和/或串行端口。
在本文中所使用的术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构或程序模块)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器804、可移动存储设备809和不可移动存储设备810都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储技术、CD-ROM、数字多功能磁盘(DVD)或其他光学存储设备、盒式磁带、磁带、磁盘存储或其他磁性存储设备、或者能够被用于存储信息并且能够由计算设备800访问的任何其他制品。任何这样的计算机存储介质都可以是计算设备800的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块或者在诸如载波或其他传输机制的经调制的数据信号中的其他数据来体现,并且包括任何信息传递介质。术语“经调制的数据信号”可以描述以对信号中的信息编码的这样的方式设置或改变一个或多个特性的信号。通过示例而非限制,通信介质可以包括诸如有线网络或直接连接的有线介质,以及诸如声学、射频(RF)、红外和其他无线介质的无线介质。
图9图示了用于处理在计算系统上从远程源(诸如,如上文所描述的个人/通用计算机904、平板计算设备906或移动计算设备908)接收到的数据的系统的架构的一个方面。在服务器设备902处显示的内容可以被存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务922、web门户924、邮箱服务926、即时消息传递存储928或社交网站930来存储各种文档。程序模块806可以由与服务器设备902通信的客户端采用,和/或程序模块806可以由服务器设备902采用。服务器设备902可以通过网络915向客户端计算设备(诸如个人/通用计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话))提供数据或者从客户端计算设备提供数据。例如,上文参考图6-8所描述的计算机系统可以被体现在个人/通用计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)中。除了接收可用于在图形起源系统处进行预处理或者在接收计算系统处进行后处理的图形数据之外,计算设备的这些实施例中的任何一个实施例都可以从存储916获得内容。
例如,上文参考根据本公开的各方面的方法、系统和计算机程序产品的框图和/或操作说明来描述本公开的各方面。框中指出的功能/动作可能不按任何流程图所示的次序发生。例如,取决于所涉及的功能/动作,实际上可以基本上同时地执行连续示出的两个框,或者有时可以以相反的次序执行这些框。
本申请中提供的一个或多个方面的描述和说明无意于以任何方式限制或约束所要求保护的本公开的范围。在本申请中提供的各方面、示例和细节被认为足以传达所有物并且使得他人能够制造和使用所要求保护的公开内容的最佳模式。所要求保护的公开内容不应当被解释为限于本申请中提供的任何方面、示例或细节。不管是组合地还是单独地进行显示和描述,(结构和方法上的)各种特征都应当选择性地被包含或省略,以产生具有特定特征集的实施例。在已经提供了本公开内容的描述和说明后,本领域的技术人员可以设想到落入在本申请中所体现的本发明总体构思的更宽泛方面的精神之内的各种变型、修改和替换方面,这些方面不背离所要求保护的公开内容的更广范围。
上述各种实施例仅以说明的方式提供,并且不应当被解释为限制所附权利要求。本领域技术人员将容易认识到,在不遵循本文中图示和描述的示例性实施例和应用并且不背离所附权利要求的真实主旨和范围的情况下,可以进行各种修改和改变。

Claims (15)

1.一种用于检测与基于云的应用服务相关联的代码缺陷的方法,所述方法包括:
监视与所述基于云的应用服务相关联的多个操作;
在针对与所述基于云的应用服务相关联的软件构建的第一开发环中,识别针对所述多个操作中的特定操作的失败尖峰;
在针对所述软件构建的第二开发环中,识别针对所述多个操作中的所述特定操作的失败尖峰;
针对所述软件构建的先前版本,确定在与所述第一开发环相对应的开发环中不存在针对所述多个操作中的所述特定操作的失败尖峰;
针对所述软件构建的所述先前版本,确定在与所述第二开发环相对应的开发环中不存在针对所述多个操作中的所述特定操作的失败尖峰;以及
将所述多个操作中的所述特定操作标记为与所述代码缺陷有关。
2.根据权利要求1所述的方法,其中,在所述第一开发环中识别所述失败尖峰包括:确定已经发生与所述多个操作中的所述特定操作的执行有关的阈值百分比的错误。
3.根据权利要求1所述的方法,其中,在所述第一开发环中识别所述失败尖峰包括:确定在阈值时间量内已经发生与所述多个操作中的所述特定操作的执行有关的阈值数量的错误。
4.根据权利要求1所述的方法,其中,在所述第一开发环中识别出的失败尖峰和在所述第二开发环中识别出的失败尖峰是基于针对所述多个操作中的所述特定操作的阈值错误率百分比来相关的。
5.一种用于检测与基于云的应用服务相关联的代码缺陷的系统,包括:
用于存储可执行程序代码的存储器;以及
一个或多个处理器,其在功能上被耦合到所述存储器,所述一个或多个处理器对包含在所述程序代码中的计算机可执行指令做出响应,并且操作用于:
识别在针对软件构建的第一开发环中的操作失败尖峰与在针对所述软件构建的第二开发环中的操作失败尖峰之间的相关性;
确定针对所述软件构建的先前版本不存在与所述第一失败尖峰相对应的操作失败尖峰;
确定针对所述软件构建的先前版本不存在与所述第二失败尖峰相对应的操作失败尖峰;以及
将与所述失败尖峰相关联的操作标记为与所述代码缺陷有关。
6.根据权利要求5所述的系统,其中,所述操作失败尖峰中的每个操作失败尖峰包括在指定的持续时间内针对所述操作的多个操作失败。
7.根据权利要求5所述的系统,其中,在针对所述软件构建的所述第一开发环中的操作失败尖峰与在针对所述软件构建的所述第二开发环中的操作失败尖峰之间的可识别的相关性包括:在所述第一开发环中在指定的持续时间内针对所述操作的操作失败的数量与在所述第二开发环中在指定的持续时间内针对所述操作的操作失败的数量的比率。
8.根据权利要求5所述的系统,其中,所述第一开发环是最外开发环。
9.根据权利要求8所述的系统,其中,所述最外开发环是在生产环境中发布所述软件构建之前针对所述软件构建进行测试的最后的环。
10.根据权利要求5所述的系统,其中,所述第二开发环是在所述第一开发环之前的开发环。
11.根据权利要求5所述的系统,其中,所述第二开发环是紧接在所述第一开发环之前的开发环。
12.一种包括可执行指令的计算机可读存储设备,所述可执行指令当由一个或多个处理器执行时,辅助检测与基于云的应用服务相关联的代码缺陷,所述计算机可读存储设备包括由所述一个或多个处理器可执行以用于以下操作的指令:
监视与所述基于云的应用服务相关联的多个操作;
在针对与所述基于云的应用服务相关联的软件构建的第一开发环中,识别针对所述多个操作中的特定操作的失败尖峰;
在针对所述软件构建的第二开发环中,识别针对所述多个操作中的所述特定操作的失败尖峰;
针对所述软件构建的先前版本,确定在与所述第一开发环相对应的开发环中不存在针对所述多个操作中的所述特定操作的失败尖峰;
针对所述软件构建的所述先前版本,确定在与所述第二开发环相对应的开发环中不存在针对所述多个操作中的所述特定操作的失败尖峰;以及
将所述多个操作中的所述特定操作标记为与所述代码缺陷有关。
13.根据权利要求12所述的计算机可读存储设备,其中,所述第一开发环是最外开发环,所述最外开发环包括在生产环境中发布所述软件构建之前对所述软件构建进行测试的最后的环。
14.根据权利要求12所述的计算机可读存储设备,其中,所述第二开发环是紧接在所述第一开发环之前的开发环。
15.根据权利要求12所述的计算机可读存储设备,其中,在所述第一开发环中识别所述失败尖峰包括:确定在阈值持续时间内已经发生与所述多个操作中的所述特定操作的执行有关的阈值百分比的错误。
CN201980059635.XA 2018-09-12 2019-06-25 经由对跨内部验证环的遥测数据的分析来检测代码缺陷 Pending CN112703486A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/128,744 2018-09-12
US16/128,744 US10956307B2 (en) 2018-09-12 2018-09-12 Detection of code defects via analysis of telemetry data across internal validation rings
PCT/US2019/038829 WO2020055475A1 (en) 2018-09-12 2019-06-25 Detection of code defects via analysis of telemetry data across internal validation rings

Publications (1)

Publication Number Publication Date
CN112703486A true CN112703486A (zh) 2021-04-23

Family

ID=67297285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980059635.XA Pending CN112703486A (zh) 2018-09-12 2019-06-25 经由对跨内部验证环的遥测数据的分析来检测代码缺陷

Country Status (4)

Country Link
US (1) US10956307B2 (zh)
EP (1) EP3830695B1 (zh)
CN (1) CN112703486A (zh)
WO (1) WO2020055475A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240069999A1 (en) * 2022-08-31 2024-02-29 Microsoft Technology Licensing, Llc Detecting and mitigating cross-layer impact of change events on a cloud computing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279084A (zh) * 2014-06-24 2016-01-27 Sap欧洲公司 软件集成测试中的缺陷定位
WO2017044069A1 (en) * 2015-09-08 2017-03-16 Hewlett Packard Enterprise Development Lp Automatic regression identification
US9921952B2 (en) * 2015-06-02 2018-03-20 International Business Machines Corporation Early risk identification in DevOps environments

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168734A1 (en) 2005-11-17 2007-07-19 Phil Vasile Apparatus, system, and method for persistent testing with progressive environment sterilzation
US20070226546A1 (en) 2005-12-22 2007-09-27 Lucent Technologies Inc. Method for determining field software reliability metrics
US8151146B2 (en) 2008-06-11 2012-04-03 At&T Intellectual Property I, L.P. Tool for predicting fault-prone software files
US20110061041A1 (en) 2009-09-04 2011-03-10 International Business Machines Corporation Reliability and availability modeling of a software application
US9535818B2 (en) * 2012-10-16 2017-01-03 Microsoft Technology Licensing, Llc Identifying high impact bugs
US20140325480A1 (en) 2013-04-29 2014-10-30 SuccessFactors Software Regression Testing That Considers Historical Pass/Fail Events
US10289539B1 (en) 2013-09-18 2019-05-14 Amazon Technologies, Inc. Performance testing in a software deployment pipeline
US9400732B2 (en) * 2014-05-20 2016-07-26 Red Hat Israel, Ltd. Performance regression testing in presence of noise
US9396100B2 (en) * 2014-12-05 2016-07-19 International Business Machines Corporation Software testing optimizer
US9626277B2 (en) 2015-04-01 2017-04-18 Microsoft Technology Licensing, Llc Anomaly analysis for software distribution
US20170132057A1 (en) 2015-11-05 2017-05-11 Microsoft Technology Licensing, Llc Full duplex distributed telemetry system
US9760366B2 (en) 2015-12-21 2017-09-12 Amazon Technologies, Inc. Maintaining deployment pipelines for a production computing service using live pipeline templates
US9870307B2 (en) 2016-02-01 2018-01-16 Linkedin Corporation Regression testing of software services
US10169200B2 (en) * 2016-10-28 2019-01-01 International Business Machines Corporation Code component debugging in an application program
US10127017B2 (en) 2016-11-17 2018-11-13 Vmware, Inc. Devops management
US10102114B1 (en) * 2017-03-08 2018-10-16 Amazon Technologies, Inc. Code testing and approval for deployment to production environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279084A (zh) * 2014-06-24 2016-01-27 Sap欧洲公司 软件集成测试中的缺陷定位
US9921952B2 (en) * 2015-06-02 2018-03-20 International Business Machines Corporation Early risk identification in DevOps environments
WO2017044069A1 (en) * 2015-09-08 2017-03-16 Hewlett Packard Enterprise Development Lp Automatic regression identification

Also Published As

Publication number Publication date
US20200081824A1 (en) 2020-03-12
EP3830695B1 (en) 2023-08-16
US10956307B2 (en) 2021-03-23
WO2020055475A1 (en) 2020-03-19
EP3830695A1 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
US20180081784A1 (en) Method and system for managing code
US8904238B2 (en) System and method for capturing logging information
EP3938909B1 (en) Dynamic monitoring on cloud based application service
US9544207B2 (en) Using different connectivity checks to determine causes of connectivity issues
US10229034B2 (en) Probationary software tests
US20160070555A1 (en) Automated tenant upgrades for multi-tenant services
US11650805B2 (en) Reliable feature graduation
US9588874B2 (en) Remote device automation using a device services bridge
CN104809054B (zh) 实现程序测试的方法和系统
US10025697B2 (en) Generation of automated unit tests for a controller layer system and method
CN117296045A (zh) 用于数据警报抑制的系统和方法
EP3830695B1 (en) Detection of code defects via analysis of telemetry data across internal validation rings
EP4264461A1 (en) Systems and methods for visual anomaly detection in a multi-display system
US20180150286A1 (en) Cross-machine build scheduling system
US11093237B2 (en) Build isolation system in a multi-system environment
CN112965896A (zh) 基于动态字节码的测试环境故障检测方法及装置
CN112596750A (zh) 应用测试方法、装置、电子设备及计算机可读存储介质
CN110347584B (zh) 信用卡策略包的测试调整方法、装置、电子设备及介质
CN112882908A (zh) 用于生成信息的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination