CN104583947A - 预测软件构建错误 - Google Patents

预测软件构建错误 Download PDF

Info

Publication number
CN104583947A
CN104583947A CN201380044308.XA CN201380044308A CN104583947A CN 104583947 A CN104583947 A CN 104583947A CN 201380044308 A CN201380044308 A CN 201380044308A CN 104583947 A CN104583947 A CN 104583947A
Authority
CN
China
Prior art keywords
change
software
list
mistake
probability
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
CN201380044308.XA
Other languages
English (en)
Other versions
CN104583947B (zh
Inventor
C·伯德
T·齐默尔曼
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN104583947A publication Critical patent/CN104583947A/zh
Application granted granted Critical
Publication of CN104583947B publication Critical patent/CN104583947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本文描述了用于预测软件构建错误的系统和方法。在一个示例中,一种方法包括检测软件中的多个改变。该方法还包括标识多个改变列表,其中改变列表是针对该软件中的该多个改变中的每个改变来标识的。此外,该方法包括标识该多个改变列表中的每个改变列表的特性。而且,该方法包括至少部分基于该多个改变列表中的每个改变列表的特性计算多个概率,其中这些概率中的每个概率指示该多个改变列表中的一个改变列表制造该软件构建错误的可能性。该方法还包括报告该软件构建错误的该多个概率。

Description

预测软件构建错误
背景
软件开发可涉及开发要被翻译为机器可执行代码的软件代码。将由开发者编写的软件代码翻译为机器可执行代码可被称为软件构建。在软件开发期间,在软件构建期间遇到的错误可增加开发软件的时间量。例如,一些组织用开发者团队来开发软件。在一些情况下,一个开发者团队可等待构建软件应用的一部分,直到第二团队已构建了该软件应用的不同部分。如果第二开发者团队遇到软件构建错误,第一开发者团队可能被延迟构建该软件应用的一部分。因此,最小化软件构建代码可阻止软件开发过程中的延迟。
概述
以下提出了简化概述以便提供对在此描述的某些方面的基本理解。此概述不是所要求保护的主题的详尽的概述。此概述既不旨在指示标识所要求保护的主题的关键或重要的元素,也不旨在描绘所要求保护的主题的范围。此概述的唯一的目的是以简化形式呈现所要求保护的主题的某些概念,作为稍后呈现的比较详细的描述的前奏。
一个实施例提供了一种用于预测软件构建错误的方法。该方法包括检测软件中的多个改变。该方法还包括标识多个改变列表,其中改变列表是针对该软件中的该多个改变中的每一个改变来标识的。此外,该方法包括标识该多个改变列表中的每个改变列表的特性。而且,该方法包括至少部分基于该多个改变列表中的每个改变列表的特性来计算多个概率,其中所述概率中的每个概率指示所述多个改变列表之一创建所述软件构建错误的可能性。该方法还包括报告该软件构建错误的所述多个概率。
另一个实施例是一种用于预测软件构建错误的系统。该系统包括显示多个概率的显示器设备、执行处理器可执行代码的处理器、以及存储处理器可执行代码的存储设备。该系统检测软件中的多个改变。该系统还标识多个改变列表,其中改变列表是针对该软件中的该多个改变中的每一个改变来标识的。此外,该系统还标识该多个改变列表中的每个改变列表的特性。而且,该系统标识逻辑回归。该系统还是用该逻辑回归来至少部分基于该多个改变列表中的每个改变列表的特性来计算多个概率,其中所述概率中的每个概率指示所述多个改变列表之一创建所述软件构建错误的可能性。此外,该系统报告该软件构建错误的多个概率。
另一实施例提供包括多个指令的一个或多个有形的计算机可读存储介质。所述指令使得处理器检测软件中的多个改变并标识多个改变列表,其中改变列表是针对该软件中的该多个改变中的每一个改变来标识的。所述指令还使得处理器标识该多个改变列表中的每个改变列表的特性。而且,所述指令还使得处理器至少部分基于该多个改变列表中的每个改变列表的特性来计算多个概率,其中所述概率中的每个概率指示所述多个改变列表之一创建所述软件构建错误的可能性。所述指令还使得处理器报告该软件构建错误的所述多个概率。
附图简述
通过参考各个附图可以更好地理解下列详细描述,各个附图包含所公开的主题的众多特征的具体示例。
图1是预测软件构建错误的计算系统的示例的框图;
图2是解说用于预测软件构建错误的方法的示例的流程图;
图3是解说用于预测软件构建错误的预测分析模块的示例的框图;
图4是解说用于分析软件构建错误的构建中断模块的示例的框图;
图5是解说用于更新该预测分析模块的更新模型的示例的框图;以及
图6是解说预测软件构建错误的有形的计算机可读存储介质的示例的框图。
详细描述
已经开发出用于预测软件构建错误的各种方法来最小化与软件构建错误相关联的延迟。一些方法包括收集关于软件代码的某些方面的信息,诸如自上次软件构建以来被改变的软件代码的行数。这些方法可尝试基于所收集的信息来确定成功软件构建的可能性。然而,这些方法中的许多方法聚焦于从该软件代码导出的信息,而不是聚焦于构建软件的过程和已对该软件作出的实际改变。其他方法包括标识可标识软件构建错误的一组变量。然而,这些方法中的许多方法依赖于使用一组固定的变量来标识软件构建何时可能失败的决策树。
本文描述的技术可基于软件构建错误的任何适当数量的概率来预测软件构建错误。在一些实施例中,本文描述的技术可标识自上次软件构建以来的一系列改变并计算每个改变可能创建软件构建错误的概率。软件构建可以是指构建软件的状态,其包括将软件(在本文中也被称为软件代码)编译为机器可执行文件并链接这些机器可执行文件以形成应用。软件构建错误可包括该软件代码中阻止该软件代码被编译为可执行文件或阻止该软件代码被链接的错误。软件构建错误可阻止该软件代码被翻译为机器可执行代码,这可阻止该软件代码被并入到应用中。
作为预备,一些附图在一个或多个结构组件(被称为功能、模块、特征、元素等)的上下文中来描述概念。附图中示出的各种组件能够以任何方式来实现,例如,通过软件、硬件(例如,分立的逻辑组件等等)、固件等等,或这些实现的任何组合。在一个实施例中,各个组件可以反映对应的组件在实际实现中的使用。在其他实施例中,附图中所示出的任何单个组件可由多个实际组件来实现。对附图中的任何两个或更多单独的组件的描绘可以反映由单个实际组件所执行的不同的功能。以下讨论的图1提供了关于可用于实现附图中所示的各功能的一个系统的细节。
其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一顺序执行的不同的框。这样的实现是示例性的而非限制性的。此处描述的某些框可被分组在一起并在单个操作中执行,某些框可被分成多个组成框,并且某些框可以按与此处所示出的不同的次序来执行(包括以并行方式执行这些框)。流程图中示出的框可以通过软件、硬件、固件、手动处理等等或这些实现的任何组合来实现。如此处所使用的,硬件可以包括计算机系统、诸如专用集成电路(ASIC)这类的分立逻辑组件等以及它们的任意组合。
关于术语,短语“被配置成”涵盖可以构造任何类型的结构组件来执行所标识的操作的任何方式。结构组件可以被配置成使用,软件、硬件、固件等或其任意组合来执行操作。
术语“逻辑”涵盖用于执行任务的任何功能。例如,流程图中所示出的每一操作对应于用于执行该操作的逻辑。操作可以使用软件、硬件、固件等或其任意组合来执行。
如在此使用的,术语“组件”、“系统”、“客户机”等旨在指代计算机相关的实体,它们可以是硬件、(例如,执行中的)软件和/或固件、或其组合。例如,组件可以是,在处理器上运行的进程、对象、可执行码、程序、函数、库、子例程,和/或计算机或软件和硬件的组合。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程中,组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。如此处所使用的术语“制品”可以包含可以从任何有形的计算机可读设备或介质访问的计算机程序。
计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、以及磁带等等)、光盘(例如,紧致盘(CD)以及数字多功能盘(DVD)等等)、智能卡、以及闪存设备(例如,卡、棒、钥匙驱动器等等)。相比之下,计算机可读介质一般(即,不必需是存储介质)可附加地包括通信介质,诸如用于无线信号的传输介质等等。
图1是预测软件构建错误的计算系统的示例的框图。计算系统100可以例如是移动电话、膝上型计算机、台式计算机、或平板计算机等等。计算系统100可包括被配适成执行所存储的指令的处理器102,以及存储可由处理器102执行的指令的存储器设备104。处理器102可以是单核处理器、多核处理器、计算群集、或者任意数量的其他配置。存储器设备104可包括随机存取存储器(例如,SRAM、DRAM、零电容器RAM、SONOS、eDRAM、EDO RAM、DDR RAM、RRAM、PRAM,等等)、只读存储器(例如,Mask ROM、PROM、EPROM、EEPROM等等))、闪存、或任何其他合适的存储系统。由处理器102执行的指令可被用来预测软件构建错误。
处理器102还可通过系统总线106(例如,PCI、ISA、PCI-Express、NuBus,等等)连接至输入/输出(I/O)设备接口108,该接口108被配适为将计算系统100连接至一个或多个I/O设备110。I/O设备110可包括,例如,键盘、手势识别输入设备、语音识别设备、以及指向设备,其中指向设备可包括触摸板或触摸屏等等。I/O设备110可以是计算系统100的内置组件,或可以是从外部连接至计算系统100的设备。
处理器102还可通过系统总线106链接至显示器接口112,该接口112被配适为将计算系统100连接至显示器设备114。显示器设备114可包括显示屏,其为计算系统100的内置组件。显示器设备114还可包括从外部连接至计算系统100的计算机监视器、电视机或投影仪等等。网络接口卡(NIC)116还可以配适成通过系统总线106将计算系统100连接到网络(未示出)。网络(未示出)可以是广域网(WAN)、局域网(LAN)或因特网等等。
存储118可包括硬盘驱动器、光盘驱动器、USB闪存驱动器、驱动器阵列、或其任意组合。存储118可包括预测分析模块120、构建中断模块122、以及更新模块124。预测分析模块120可检测对软件代码的任何数量的改变并预测该软件代码包含软件构建错误的可能性。预测分析模块120可通过计算该软件代码的每个改变可能导致软件构建错误的概率来预测软件代码包含软件构建错误的可能性。构建中断模块122可构建该软件并检测软件构建错误。如果构建中断模块122检测到软件构建错误,则构建中断模块122还可检测导致软件构建错误的对该软件代码的改变。构建中断模块122可向更新模块124发送导致软件构建错误的改变。更新模块124可存储针对软件代码改变和相应的构建错误的历史信息。更新模块124可向预测分析模块120提供历史信息,这允许预测分析模块120计算软件构建错误的准确预测。
可以理解,图1的框图并不意在指示计算系统100将包括图1中所示的全部组件。相反,计算系统100可包括较少的或图1中未示出的额外的组件(例如,另外的应用、另外的存储器设备、另外的网络接口等等)。例如,计算系统100可包括报告模块,该报告模块可向用户、应用、或另一硬件设备等等报告软件构建信息。而且,预测分析模块120、构建中断模块122、或更新模块124的任何一个功能可以部分地或完全地以硬件和/或以处理器102来实现。例如,功能可以利用专用集成电路来实现、以在处理器102中实现的逻辑来实现、或以任何其他设备来实现。
图2是解说用于预测软件构建错误的方法的示例的流程图。方法200可用计算系统(诸如图1的计算系统100)来实现。计算系统100还可包括预测分析模块120,该预测分析模块可基于对软件代码的改变以及先前软件代码改变和先前软件构建结果的历史信息来预测软件构建错误。
在框202,预测分析模块120检测软件代码中的改变。在一个实施例中,预测分析模块120可通过将该软件代码与该软件代码的先前版本进行比较来检测对软件代码的改变。例如,预测分析模块120可通过标识软件代码中的差异来检测该软件代码的两个不同版本中的改变。在其他实施例中,预测分析模块120可通过标识软件代码中与对该软件代码的改变相对应的指示符来检测软件代码中的改变。例如,预测分析模块120可基于软件代码中包括的与该软件代码中的改变相对应的评论来检测该软件代码中的改变。
在框204,预测分析模块120针对对该软件代码的每个改变标识改变列表。在一些实施例中,预测分析模块120可在每个改变列表中包括多个改变。例如,开发者可改变软件代码的若干行,预测分析模块120可在一个改变列表中包括所述若干行。在其他实施例中,预测分析模块120可标识针对每个开发者或每个工作会话的改变列表。例如,预测分析模块120可标识特定开发者对软件代码作出的改变并且将所述改变存储在一改变列表中。在其他示例中,预测分析模块120可标识包括对该软件代码的改变的每个工作会话并标识针对每个开发者的每个工作日的改变列表。
在框206,预测分析模块120标识每个改变列表的特性。改变列表的特性可包括与软件代码中的改变相关联的任何信息。在一些实施例中,该特性可包括从该软件代码中导出的信息。例如,该改变列表的特性可包括经修改的软件代码文件的数量和经修改的软件代码行的数量等等。在一些实施例中,该特性还可包括从与该软件代码中的改变有关的因素导出的信息。例如,该改变列表的特性可包括对对该软件代码作出改变的开发者的确定、改变所影响的项目、对开发者用来编译该软件代码的计算系统的确定、审阅对软件代码的改变的个人的号码或名字(在本文中也被称为审阅确定)、提交该改变的时间(在本文中也被称为时间确定)、与软件代码中的改变相关的复杂性度量、以及基于所改变的软件代码的依赖性等等。复杂性度量可包括一行软件代码中的字符数、围绕该行软件代码的嵌套循环的数量、或指示软件代码的复杂度的任何其他因素。
改变列表的特性的附加示例可包括其他开发者对源代码文件执行的任何活动、或已被修改或与给定改变列表有关的源代码文件的行(在本文中也被称为活动确定)。改变列表的特性还可包括开发者所作的改变的表示。例如,开发者所作的改变可包括已被引入的源代码段、已被引用的标识符、或对源代码所作的改变的任何其他描述(在本文中也被称为改变确定)。附加的特性还可包括当在该开发者的计算系统上构建软件时开发者的计算系统被同步至的源代码储存库的状态(在本文中也被称为开发者构建确定)、在开发者的计算系统上执行的测试、以及作为软件构建的一部分来包括的项目。预测分析模块120可通过考虑与改变列表相对应的任何数量的特性来提供更准确的预测。
在框208,预测分析模块120计算针对该软件代码中的每个改变的概率。在一些实施例中,针对每个改变的概率可表示软件代码中的改变可能导致软件构建错误的可能性。该概率可使用回归(诸如逻辑回归)来计算。例如,预测分析模块120可生成针对与改变列表相关的每个特性的系数。预测分析模块120可基于历史数据来确定所述系数。例如,历史数据可指示特定软件开发者具有20%的概率导致软件构建错误。在此示例中,预测分析模块可将值20%作为系数分配给与该软件开发者有关的特性。
在一些实施例中,预测分析模块120可组合软件构建错误的概率。例如,预测分析模块120可计算每个改变列表导致软件构建错误的个体概率(P1,P2,…PN)。预测分析模块120可用等式1来组合这些概率。
1–(1-P1)(1-P2)…(1-PN)=P(错误)等式(1)
在等式1中,P1到PN代表改变列表可导致软件构建错误的概率。项P(错误)代表软件构建错误可基于对软件代码的N个改变发生的可能性。
在一些实施例中,预测分析模块120可聚集各个体改变列表的特性并针对多个改变列表计算软件构建错误的组合概率。例如,预测分析模块120可检测软件构建中改变列表的数量。预测分析模块120还可检测与这些改变列表相关联的任何适当数量的聚集值。例如,三个改变列表可指示100行源代码、150行源代码和200行源代码已被改变。该数量的已改变代码行可通过汇总为组合数量的已改变代码行,或先前示例中的450行已改变代码来聚集。如果具有超过400行已改变源代码的先前代码构建导致了软件构建错误,则该软件构建可被赋予导致软件构建错误的较高风险。在其他示例中,预测分析模块120可通过检测软件构建错误的聚集最大概率、软件构建错误的聚集最小概率、软件构建错误的聚集平均概率、软件构建错误的聚集中间值概率、软件构建错误的概率的总和、软件构建错误的聚集百分位数、或软件构建错误的概率的标准差等来聚集改变列表的特性。
在框210,预测分析模块120报告软件代码中的每个改变可能导致软件构建错误的概率。在一些实施例中,预测分析模块120可向用户、应用、或其他硬件设备等等报告软件构建错误的概率。例如,预测分析模块120可计算对软件代码的改变可能导致软件构建错误的概率为20%。在此示例中,预测分析模块120可向用户报告预测该改变可能导致软件构建错误的可能性为20%。该过程在框212处结束。
图2的流程图不旨在表示方法200的步骤将以任何特定顺序执行,或在任何情况下都包括方法200的全部步骤。在一些示例中,软件代码中的改变可递增地被检测到。例如,预测分析模块120可针对软件代码的每个改变生成新改变列表并重新计算软件构建错误的概率。在其他示例中,随着对软件代码的更多改变被检测到,特性可能会变化。例如,预测分析模块120可检测集成开发环境的各种特性,诸如复杂度度量、或改变确定等等。预测分析模块120随后在开发者已提交了对软件代码的改变之后可检测附加特性。进一步地,取决于特定的应用,任意数量的额外的步骤可以被包括在方法200内。在一些实施例中,预测分析模块120可向构建中断模块122发送改变列表,该构建中断模块122可确定对该软件代码的改变是否导致软件构建错误。下面联系图4更详细地讨论构建中断模块122。在其他实施例中,预测分析模块120可向更新模块124发送改变列表。更新模块124可更新与改变列表和软件构建错误相对应的历史数据。下面联系图5更详细地讨论更新模块124。
图3是解说用于预测软件构建错误的预测分析模块的示例的框图。预测分析模块120可在计算系统(诸如图1的计算系统100)中实现。在一些实施例中,预测分析模块120可包括特征提取组件302、预测生成器304、触发器组件308和报告组件306。预测分析模块120的组件可标识并分析软件构建错误的可能性。
在一些实施例中,预测分析模块120可接受任何适当数量的改变列表作为输入。如同上面讨论的,改变列表可包括任何适当数量的对软件代码的改变。预测分析模块120可向特征提取组件302发送改变列表。特征提取组件302可确定与软件代码中的改变相关联的任何适当数量的特性。例如,特征提取组件302可标识与每个改变列表相关联的特性。在一些示例中,特征提取组件302可标识特性,诸如:经修改软件代码文件的数量、经修改软件代码行的数量、对软件代码作出改变的开发者、改变所影响的项目、开发者用来编译该软件代码的计算系统、审阅对软件代码的改变的个人的数量、提交该改变的时间、与软件代码中的该改变相关的复杂度度量、以及基于已改变软件代码的依赖性等等。特征提取组件302向预测生成器304发送改变列表和相应特性。
预测生成器304可基于改变列表的特性来计算软件构建错误的概率。如上面联系图2讨论的,软件构建错误的概率可使用一种类型的回归或使用机器学习模型来计算,所述机器学习模型包括但不限于:支持向量机、朴素贝叶斯(Bayes)、或决策树等等。在一些实施例中,软件构建错误的概率是基于线性回归或基于逻辑回归来计算的。在其他实施例中,这些概率可被组合以基于针对每个改变列表导致软件构建错误的组合的概率来计算软件构建错误的可能性。在一些实施例中,预测生成器304可向报告组件306和触发器组件308发送软件构建错误的概率。
报告组件306可使用任何适当数量的方法向用户、应用、或硬件设备提供反馈。在一些实施例中,该反馈可包括改变列表可导致软件构建错误的概率。报告组件306可通过发送给显示器设备的消息、在IDE中生成的对话框、电子邮件通知、或新闻馈送(newsfeed)等等来提供反馈。
触发器组件308可基于软件构建错误的概率来发起或请求附加动作。例如,触发器组件308可通过报告组件306向开发者提供反馈。反馈可请求对具有很高概率制造软件构建错误的软件代码进行更多的审阅。在一些示例中,反馈可标识改变列表的特定特性和制造软件构建错误的相应概率。反馈可推荐对特定改变列表进行附加审阅,以在向源代码提交改变之前构建附加的项目、或在提交之前运行附加的测试等等。在一些实施例中,触发器组件308还可在构建过程期间请求额外的登记或质量逻辑门。例如,触发器组件308可包括编译并链接软件代码以形成机器可执行应用的构建组件310。触发器组件308可指示构建组件310包括额外的质量逻辑门,额外的质量逻辑门可能避免软件构建错误。额外的质量逻辑门还可帮助确定软件构建错误的起因。
在一些实施例中,触发器组件308还可向构建组件310提供控制软件构建的指令。例如,触发器组件308可通过将共享制造软件构建错误的低风险的改变列表编组在一起来指示构建组件310构建软件。触发器组件308可基于每个改变列表可能导致软件构建错误的概率来标识具有导致软件构建错误的低风险的改变列表。在一些实施例中,触发器组件308还可指示构建组件310在构建低风险改变列表之前构建高风险改变列表。触发器组件308还可基于指示改变列表很可能导致软件构建错误的概率来标识具有导致软件构建错误的高风险的改变列表。例如,触发器组件308可向多个计算系统发送高风险改变列表,这可允许高风险改变集合被并行地构建。当高风险改变列表被并行构建时,触发器组件308可向报告组件306提供关于高风险改变列表的更快反馈。
在一些实施例中,如果构建组件310没有返回软件构建错误,则触发器组件308还可向更新模块312发送改变列表。更新模块122可存储关于改变列表和基于改变列表的软件构建的成功或失败的历史数据。在一些实施例中,触发器组件308可接收指示单一改变列表并入对软件代码所作的改变的单一改变列表。如果构建成功或失败,则触发器组件308可将构建的结果发送给更新模块122。更新模块122随后可更新历史数据来反映改变列表是否导致了软件构建错误。在其他实施例中,当构建组件310返回软件构建错误时,触发器组件308可向构建中断模块122发送改变列表。构建中断模块122可标识导致了软件构建错误的改变列表并向开发者提供反馈。下面联系图4更详细地讨论了构建中断模块122。
要理解,图3的框图并不意在指示预测分析模块120包括图3中所示的全部组件。而是,预测分析模块120可包括图3中未示出的更少或更多的组件。例如,预测分析模块120可不包括构建组件310。而是,构建组件310的功能可由处理器或任何其他适当的硬件设备来实现。
图4是解说用于分析软件构建错误的构建中断模块的示例的框图。构建中断模块122可在计算系统(诸如图1的计算系统100)中实现。在一些实施例中,构建中断模块122可包括过滤器组件402、预测组件404、确认组件406、报告组件408、和版本控制组件410。构建中断模块122的组件可分析软件构建错误。
构建中断模块122可接受对软件代码的任何适当数量的改变以及由构建组件产生的构建日志。构建日志可包括在构建过程期间生成的信息。例如,构建日志可包括指示软件代码中没有产生软件构建错误的特定部分的信息。在一些实施例中,过滤器组件402可将已知对软件构建错误无责任的对软件代码的任何改变排除在外。例如,过滤器组件402可标识在先前构建中包括的没有导致软件构建错误的任何改变。在其他实施例中,过滤器组件402可基于存储在更新模块122中的历史数据来执行动态分析。过滤器组件402可向预测组件404发送可能已导致了软件构建错误的候选改变列表的集合。
预测组件404可检测一改变列表导致了该软件构建错误的可能性。如同上面联系图2所讨论的,软件构建错误的概率可基于使用任何适当类型的回归(诸如逻辑回归或线性回归)来计算。在一些实施例中,预测组件404可计算每个改变列表导致了软件构建错误的概率。
在一些实施例中,预测组件404可向确认组件406发送改变列表以及每个改变列表导致了软件构建错误的概率。确认组件406可重新创建具有每个改变列表的构建。在一些实施例中,确认组件406可首先选择具有导致软件构建错误的最高概率的改变列表。确认组件可重新创建该软件构建并确定该改变列表是否导致了软件构建错误。确认组件406随后可选择具有导致软件构建错误的较低概率的改变列表。在其他实施例中,确认组件406可使用二元搜索或增量调试(delta debugging)来确定导致了软件构建错误的改变列表。确认组件406可确定导致软件构建错误的改变列表并将这些改变列表发送给报告组件408。报告组件408可向显示器设备、在IDE中生成的对话框、电子邮件通知、或新闻馈送(newsfeed)等等发送改变列表和软件构建错误。
报告组件408还可向版本控制组件410发送这些改变列表和软件构建错误。版本控制组件410可移除对软件代码的导致软件构建错误的任何修改。例如,版本控制组件410可移除阻止软件代码被编译并链接到机器可执行应用的对软件代码的任何改变。报告组件408还可向更新模块122发送改变列表和软件构建错误,更新模块122将在下面联系图5更详细地讨论。
要理解,图4的框图并不意在指示构建中断模块122包括图4中所示的全部组件。而是,构建中断模块122可包括图4中未示出的更少或更多的组件。例如,构建中断模块122可不包括确认组件406。而是,确认组件406的功能可由处理器或任何其他适当的硬件设备来实现。
图5是解说被用于更新预测分析模块的更新模块的示例的框图。更新模块124可在计算系统(诸如图1的计算系统100)中实现。在一些实施例中,更新模块124可包括特征提取组件502、历史数据库504、以及更新预测器模块506。
在一些实施例中,更新模块124可检测改变列表以及与所述改变列表相关联的构建结果。更新模块124随后使用特征提取组件502来提取与改变列表相关的特性。例如,特征提取组件502可提取诸如以下的特性:对该软件代码作出所述改变的开发者、该改变所影响的项目、开发者用来编译该软件代码的计算系统、审阅对该软件代码的改变的个体的数量、或者提交该改变的时间等等。
特征提取组件502可向历史数据库504发送改变列表、构建结果、和特性。历史数据库504可将改变列表和改变列表的特性连同构建结果一起存储在表中。在一些实施例中,历史数据库504可向预测分析模块120发送数据,这允许预测分析模块120计算改变列表可能导致软件预测错误的可能性的准确概率。在其他实施例中,历史数据库504还可向更新预测器模块506发送改变列表、构建结果以及改变列表的特性。更新预测器模块506可基于历史数据来训练预测模型并在该预测模型具有高于一阈值的准确度时将该预测模型发送给预测分析器模块120。
要理解,图5的框图并不意在指示更新模块124包括图5中所示的全部组件。而是,更新模块124可包括图5中未示出的更少或更多的组件。例如,更新模块124可不包括更新预测器模块506。而是,更新预测器模块506的功能可由处理器或任何其他适当的硬件设备来实现。
图6是示出预测软件构建错误的有形的计算机可读存储介质600的框图。有形的计算机可读存储介质600可由处理器602通过计算机总线604进行访问。此外,有形的计算机可读存储介质600可包括引导处理器602执行当前方法的各步骤的代码。
此处讨论的各软件组件可被存储在有形的计算机可读存储介质600上,如图6中所示的。例如,有形的计算机可读存储介质600可包括预测分析模块606、构建中断模块608、以及更新模块610。预测分析模块606可检测对软件代码的任何数量的改变并预测该软件代码包含软件构建错误的可能性。构建中断模块608可分析软件构建错误来确定对软件代码的改变已导致了构建中断的可能性。更新模块610可存储软件代码改变和相应的软件构建错误的历史信息。更新模块610可将该历史信息提供给预测分析模块120,这允许预测分析模块120计算关于软件构建错误的准确预测。
可以理解,取决于特定的应用,图6中未示出的任意数量的额外的软件组件可以被包括在有形的计算机可读存储介质600内。尽管用专门描述结构特征和/或方法的语言描述了本主题,但可以理解,在后附权利要求书中限定的主题并不一定局限于上述特定的结构特征或方法。相反,上文所描述的具体结构特征和方法是作为实现权利要求书的示例形式公开的。

Claims (10)

1.一种用于预测软件构建错误的方法,包括:
检测软件中的多个改变;
标识多个改变列表,其中改变列表是针对所述软件中的所述多个改变中的每个改变来标识的;
标识所述多个改变列表中的每个改变列表的特性;
至少部分基于所述多个改变列表中的每个改变列表的特性计算多个概率,其中所述概率中的每个概率指示所述多个改变列表中的一个改变列表制造所述软件构建错误的可能性;以及
报告所述软件构建错误的所述多个概率。
2.如权利要求1所述的方法,其特征在于,包括:
构建所述软件;
检测所述软件构建错误;
从所述软件中的所述多个改变中确定导致了所述软件构建错误的改变;以及
报告导致了所述软件构建错误的所述改变。
3.如权利要求2所述的方法,其特征在于,包括用于基于导致所述软件构建错误的所述改变来更新用于预测所述软件构建错误的预测生成器。
4.如权利要求2所述的方法,其特征在于,包括从所述软件移除导致所述软件构建错误的所述改变。
5.如权利要求1所述的方法,其特征在于,计算所述多个概率包括计算指示所述多个概率中的每一个将导致所述软件构建错误的可能性的回归。
6.如权利要求1所述的方法,其特征在于,包括:
基于所述多个概率标识多个高风险改变列表;
将所述多个高风险改变列表中的每一个连同基于所述高风险改变列表来构建所述软件的指令一起发送至分开的计算系统;以及
检测导致所述软件构建错误的所述高风险改变列表。
7.一种用于预测软件构建错误的系统,包括:
用于显示多个概率的显示器设备;
用于执行处理器可执行代码的处理器;
存储处理器可执行代码的存储设备,其中所述处理器可执行代码在由所述处理器执行时致使所述处理器:
检测软件中的多个改变;
标识多个改变列表,其中改变列表是针对所述软件中的所述多个改变中的每个改变来标识的;
标识所述多个改变列表中的每个改变列表的特性;
标识回归;
使用所述回归至少部分基于所述多个改变列表中的每个改变列表的特性来计算所述多个概率,其中所述多个概率中的每个概率指示所述多个改变列表中的一个改变列表制造所述软件构建错误的可能性;
报告所述软件构建错误的所述多个概率;以及
推荐降低所述软件构建错误的所述概率的动作。
8.如权利要求7所述的系统,其特征在于,所述多个特性包括复杂度度量、软件开发者确定、计算系统确定、时间确定、审阅确定、活动确定、开发者构建确定、以及改变确定的任何组合。
9.一个或多个计算机可读存储介质,所述计算机可读存储介质包括多个指令,所述指令在由处理器执行时致使所述处理器:
检测软件中的多个改变;
标识多个改变列表,其中改变列表是针对所述软件中的所述多个改变中的每个改变来标识;
标识所述多个改变列表中的每个改变列表的特性;
至少部分基于所述多个改变列表中的每个改变列表的特性计算多个概率,其中所述多个概率中的每个概率指示所述多个改变列表中的一个改变列表制造所述软件构建错误的可能性;
报告所述软件构建错误的所述多个概率;以及
推荐降低所述软件构建错误的所述概率的动作。
10.如权利要求9所述的一个或多个计算机可读存储介质,其特征在于,所述多个指令在由所述处理器执行时致使所述处理器:
构建所述软件;
检测所述软件构建错误;
从所述软件中的所述多个改变中确定导致了所述软件构建错误的改变;以及
报告导致了所述软件构建错误的所述改变。
CN201380044308.XA 2012-08-20 2013-08-16 预测软件构建错误 Active CN104583947B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/589,180 2012-08-20
US13/589,180 US9542176B2 (en) 2012-08-20 2012-08-20 Predicting software build errors
PCT/US2013/055226 WO2014031452A1 (en) 2012-08-20 2013-08-16 Predicting software build errors

Publications (2)

Publication Number Publication Date
CN104583947A true CN104583947A (zh) 2015-04-29
CN104583947B CN104583947B (zh) 2018-11-06

Family

ID=49083770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044308.XA Active CN104583947B (zh) 2012-08-20 2013-08-16 预测软件构建错误

Country Status (6)

Country Link
US (1) US9542176B2 (zh)
EP (1) EP2885701B1 (zh)
JP (1) JP6280551B2 (zh)
KR (1) KR102101050B1 (zh)
CN (1) CN104583947B (zh)
WO (1) WO2014031452A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851353A (zh) * 2019-10-22 2020-02-28 天津大学 一种基于Delta Debugging与约束求解的并发程序缺陷定位方法
CN111008038A (zh) * 2019-12-19 2020-04-14 南京邮电大学 一种基于逻辑回归模型的pull request被合并概率的计算方法
CN113272783A (zh) * 2018-09-28 2021-08-17 科提维提有限公司 自动验证合并到计算机程序中的数据

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195566B2 (en) 2013-01-14 2015-11-24 International Business Machines Corporation Defect analysis system for error impact reduction
EP2757468A1 (en) * 2013-01-22 2014-07-23 Siemens Aktiengesellschaft Apparatus and method for managing a software development and maintenance system
US9448792B2 (en) * 2013-03-14 2016-09-20 Microsoft Technology Licensing, Llc Automatic risk analysis of software
US8984485B2 (en) * 2013-05-01 2015-03-17 International Business Machines Corporation Analysis of source code changes
JP2014241021A (ja) * 2013-06-11 2014-12-25 株式会社日立製作所 ソフトウェア評価装置および方法
US9519477B2 (en) 2013-09-16 2016-12-13 International Business Machines Corporation Automatic pre-detection of potential coding issues and recommendation for resolution actions
CN105224343B (zh) * 2014-05-27 2019-09-17 阿里巴巴集团控股有限公司 一种应用程序的更新提示方法和装置
US10275333B2 (en) * 2014-06-16 2019-04-30 Toyota Jidosha Kabushiki Kaisha Risk analysis of codebase using static analysis and performance data
US9354860B2 (en) * 2014-07-15 2016-05-31 Sap Se Optimizing software change processes using real-time analysis and rule-based hinting
US10175975B2 (en) * 2015-02-18 2019-01-08 Red Hat Israel, Ltd. Self-mending software builder
US10733520B2 (en) * 2015-05-13 2020-08-04 Microsoft Technology Licensing, Llc Making a prediction regarding development of a software product
US9612821B2 (en) 2015-07-02 2017-04-04 International Business Machines Corporation Predicting the success of a continuous software deployment pipeline
US10025692B2 (en) 2015-08-06 2018-07-17 Paypal, Inc. Scalable continuous integration and delivery systems and methods
US10073683B2 (en) 2015-09-01 2018-09-11 Oracle International Corporation System and method for providing software build violation detection and self-healing
US10552760B2 (en) 2015-12-18 2020-02-04 International Business Machines Corporation Training set creation for classifying features of a system under agile development
US9870223B2 (en) * 2016-01-07 2018-01-16 International Business Machines Corporation Efficient detection of architecture related issues during the porting process
US10838849B2 (en) 2016-03-08 2020-11-17 International Business Machines Corporation Analyzing software test failures using natural language processing and machine learning
US10657023B1 (en) * 2016-06-24 2020-05-19 Intuit, Inc. Techniques for collecting and reporting build metrics using a shared build mechanism
US10191737B2 (en) * 2016-06-29 2019-01-29 Accenture Global Solutions Limited Program code comparison and reporting
US10296331B2 (en) * 2016-07-12 2019-05-21 International Business Machines Corporation Log-based software porting
EP3282355A1 (en) * 2016-08-11 2018-02-14 Empear AB Method for identifying critical parts in software code
US10545847B2 (en) * 2016-09-15 2020-01-28 International Business Machines Corporation Grouping and isolating software changes to increase build quality
US10379992B2 (en) 2016-10-25 2019-08-13 International Business Machines Corporation Adaptive dynamic code analysis
US10175978B2 (en) * 2016-11-04 2019-01-08 International Business Machines Corporation Monitoring code sensitivity to cause software build breaks during software project development
US10310968B2 (en) * 2016-11-04 2019-06-04 International Business Machines Corporation Developing software project plans based on developer sensitivity ratings detected from monitoring developer error patterns
US10970636B1 (en) * 2017-01-26 2021-04-06 Intuit Inc. Adaptive system for predicting integration failures in large systems
US10175979B1 (en) * 2017-01-27 2019-01-08 Intuit Inc. Defect ownership assignment system and predictive analysis for codebases
US10754640B2 (en) * 2017-03-24 2020-08-25 Microsoft Technology Licensing, Llc Engineering system robustness using bug data
US10585780B2 (en) 2017-03-24 2020-03-10 Microsoft Technology Licensing, Llc Enhancing software development using bug data
US11288592B2 (en) * 2017-03-24 2022-03-29 Microsoft Technology Licensing, Llc Bug categorization and team boundary inference via automated bug detection
US10482000B2 (en) 2017-04-24 2019-11-19 Microsoft Technology Licensing, Llc Machine learned decision guidance for alerts originating from monitoring systems
US10691449B2 (en) * 2017-04-27 2020-06-23 Microsoft Technology Licensing, Llc Intelligent automatic merging of source control queue items
US10684851B2 (en) * 2017-11-03 2020-06-16 Vmware, Inc. Predicting software build outcomes
US10949329B2 (en) * 2017-12-26 2021-03-16 Oracle International Corporation Machine defect prediction based on a signature
US11455566B2 (en) 2018-03-16 2022-09-27 International Business Machines Corporation Classifying code as introducing a bug or not introducing a bug to train a bug detection algorithm
US11810026B2 (en) * 2018-04-19 2023-11-07 Seacoast Banking Corporation of Florida Predictive data analysis using value-based predictive inputs
US10769057B2 (en) * 2018-05-09 2020-09-08 International Business Machines Corporation Identifying potential errors in code using machine learning
CN108833478A (zh) * 2018-05-17 2018-11-16 惠州超声音响有限公司 一种通过dfu成功率预测模型进行固件升级的方法及系统
US11288065B2 (en) * 2018-07-02 2022-03-29 International Business Machines Corporation Devops driven cognitive cost function for software defect prediction
US10884893B2 (en) 2018-08-24 2021-01-05 International Business Machines Corporation Detecting software build errors using machine learning
US11163552B2 (en) * 2019-04-15 2021-11-02 International Business Machines Corporation Federated framework for container management
US11625315B2 (en) 2019-05-29 2023-04-11 Microsoft Technology Licensing, Llc Software regression recovery via automated detection of problem change lists
US11157384B2 (en) * 2019-06-27 2021-10-26 Intel Corporation Methods, systems, articles of manufacture and apparatus for code review assistance for dynamically typed languages
US11599354B2 (en) 2019-07-18 2023-03-07 Microsoft Technology Licensing, Llc Detecting misconfiguration and/or bug(s) in large service(s) using correlated change analysis
US11119888B2 (en) * 2019-07-31 2021-09-14 Ss&C Technologies, Inc. Data verification system
US11768701B2 (en) * 2019-09-17 2023-09-26 Western Digital Technologies, Inc. Exception analysis for data storage devices
US11463478B2 (en) 2019-10-29 2022-10-04 International Business Machines Corporation Remediation strategy optimization for development, security and operations (DevSecOps)
US11379220B2 (en) 2019-11-25 2022-07-05 International Business Machines Corporation Vector embedding of relational code sets
US20210192321A1 (en) * 2019-12-18 2021-06-24 X Development Llc Generation and utilization of code change intents
US11662997B2 (en) * 2020-02-20 2023-05-30 Appsurify, Inc. Systems and methods for software and developer management and evaluation
US11556815B1 (en) 2020-03-19 2023-01-17 Wells Fargo Bank, N.A. Systems and methods for using machine learning for managing application incidents
US11144435B1 (en) 2020-03-30 2021-10-12 Bank Of America Corporation Test case generation for software development using machine learning
US11036613B1 (en) 2020-03-30 2021-06-15 Bank Of America Corporation Regression analysis for software development and management using machine learning
US11334351B1 (en) 2020-04-28 2022-05-17 Allstate Insurance Company Systems and methods for software quality prediction
US11301244B1 (en) * 2020-11-16 2022-04-12 International Business Machines Corporation Machine learning based tracking of derivaitive code
US11422795B2 (en) * 2020-11-23 2022-08-23 Cerner Innovation, Inc. System and method for predicting the impact of source code modification based on historical source code modifications
US11599355B2 (en) * 2021-06-21 2023-03-07 Microsoft Technology Licensing, Llc Application module version management
US11816476B2 (en) * 2021-09-23 2023-11-14 Fidelity Information Services, Llc Systems and methods for risk awareness using machine learning techniques
US11645188B1 (en) 2021-11-16 2023-05-09 International Business Machines Corporation Pull request risk prediction for bug-introducing changes
US12061902B1 (en) * 2024-01-26 2024-08-13 U.S. Bank National Association Auditable authorship attribution with automatically applied authorship tokens

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131284A1 (en) * 2002-01-07 2003-07-10 Flanagan Cormac Andrias Method and apparatus for organizing warning messages
US20070006041A1 (en) * 2005-06-30 2007-01-04 Frank Brunswig Analytical regression testing on a software build
US20090089755A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and Apparatus to Increase Efficiency of Automatic Regression In "Two Dimensions"
US20110041120A1 (en) * 2009-08-11 2011-02-17 Mocrosoft Corporation Predicting defects in code
CN102272738A (zh) * 2008-12-29 2011-12-07 Sk电信有限公司 分离地执行软件的方法、装置和计算机可读记录介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6149318A (en) * 1997-04-15 2000-11-21 Samuel C. Kendall Link-time and run-time error detection, and program instrumentation
JP3842592B2 (ja) * 2001-07-26 2006-11-08 株式会社東芝 変更危険度測定システム、変更危険度測定方法及び変更危険度測定プログラム
US7437713B2 (en) * 2002-01-10 2008-10-14 Microsoft Corporation Automated system that tests software on multiple computers
US7216343B2 (en) * 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
US8126768B2 (en) * 2005-09-13 2012-02-28 Computer Associates Think, Inc. Application change request to deployment maturity model
JP4914609B2 (ja) * 2005-12-28 2012-04-11 富士通株式会社 ソースコード問題予測プログラム
US20080104573A1 (en) 2006-10-25 2008-05-01 Microsoft Corporation Software build validation before check-in
WO2008055156A2 (en) * 2006-10-30 2008-05-08 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting an anomalous sequence of function calls
US20080120598A1 (en) 2006-11-20 2008-05-22 Viewtier Systems, Inc. Method and apparatus of a build management system
WO2009089294A2 (en) * 2008-01-08 2009-07-16 Teamstudio, Inc. Methods and systems for generating software quality index
US7506312B1 (en) * 2008-01-31 2009-03-17 International Business Machines Corporation Method and system for automatically determining risk areas to retest
US8495603B2 (en) * 2008-08-11 2013-07-23 International Business Machines Corporation Generating an executable version of an application using a distributed compiler operating on a plurality of compute nodes
US8312430B2 (en) 2008-08-27 2012-11-13 International Business Machines Corporation Guarding code check-in with test case execution results
US8285662B2 (en) 2009-01-29 2012-10-09 International Business Machines Corporation Framework for delta analysis during automated builds
US8495583B2 (en) * 2009-09-11 2013-07-23 International Business Machines Corporation System and method to determine defect risks in software solutions
US20110321007A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Targeting code sections for correcting computer program product defects using records of a defect tracking system
US20130311968A1 (en) * 2011-11-09 2013-11-21 Manoj Sharma Methods And Apparatus For Providing Predictive Analytics For Software Development

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131284A1 (en) * 2002-01-07 2003-07-10 Flanagan Cormac Andrias Method and apparatus for organizing warning messages
US20070006041A1 (en) * 2005-06-30 2007-01-04 Frank Brunswig Analytical regression testing on a software build
US20090089755A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and Apparatus to Increase Efficiency of Automatic Regression In "Two Dimensions"
CN102272738A (zh) * 2008-12-29 2011-12-07 Sk电信有限公司 分离地执行软件的方法、装置和计算机可读记录介质
US20110041120A1 (en) * 2009-08-11 2011-02-17 Mocrosoft Corporation Predicting defects in code

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ERIK ARISHOLM: "Predicting Fault-prone Components in a Java Legacy System", 《ACM/IEEE》 *
RAIMUND MOSER: "A Comparative Analysis of the Efficiency of Change Metrics and Static Code Attributes for Defect Prediction", 《ACM/IEEE》 *
TODD L. GRAVES: "Predicting Fault Incidence Using Software Change History", 《IEEE》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113272783A (zh) * 2018-09-28 2021-08-17 科提维提有限公司 自动验证合并到计算机程序中的数据
CN110851353A (zh) * 2019-10-22 2020-02-28 天津大学 一种基于Delta Debugging与约束求解的并发程序缺陷定位方法
CN110851353B (zh) * 2019-10-22 2023-03-31 天津大学 一种基于Delta Debugging与约束求解的并发程序缺陷定位方法
CN111008038A (zh) * 2019-12-19 2020-04-14 南京邮电大学 一种基于逻辑回归模型的pull request被合并概率的计算方法
CN111008038B (zh) * 2019-12-19 2022-08-02 南京邮电大学 一种基于逻辑回归模型的pull request被合并概率的计算方法

Also Published As

Publication number Publication date
EP2885701B1 (en) 2021-09-22
JP6280551B2 (ja) 2018-02-14
KR20150046088A (ko) 2015-04-29
CN104583947B (zh) 2018-11-06
EP2885701A1 (en) 2015-06-24
US20140053135A1 (en) 2014-02-20
US9542176B2 (en) 2017-01-10
JP2015526820A (ja) 2015-09-10
KR102101050B1 (ko) 2020-04-14
WO2014031452A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
CN104583947A (zh) 预测软件构建错误
US10423403B1 (en) Utilizing a machine learning model to predict metrics for an application development process
US11954019B2 (en) Machine learning techniques for automated software testing configuration management
US10747651B1 (en) System for optimizing system resources and runtime during a testing procedure
US11113653B2 (en) Artificial intelligence and machine learning based incident management
US9588876B2 (en) Estimating likelihood of code changes introducing defects
US8453027B2 (en) Similarity detection for error reports
WO2021252734A1 (en) Systems and methods for managing machine learning models
US8677340B2 (en) Planning and optimizing IT transformations
US20210241273A1 (en) Smart contract platform
US11269605B1 (en) Programming language conversion
US10733520B2 (en) Making a prediction regarding development of a software product
US20180075357A1 (en) Automated system for development and deployment of heterogeneous predictive models
US11567824B2 (en) Restricting use of selected input in recovery from system failures
Rajpathak et al. A data-and ontology-driven text mining-based construction of reliability model to analyze and predict component failures
Kapur et al. A discrete SRGM for multi release software system
Pai et al. Quality and reliability studies in software defect management: a literature review
Rani et al. Neural network for software reliability analysis of dynamically weighted NHPP growth models with imperfect debugging
US11900325B2 (en) Utilizing a combination of machine learning models to determine a success probability for a software product
KR101691083B1 (ko) 토픽 모델과 다중 특성 기반의 버그 정정 개발자 추천 및 버그 심각성 예측 시스템 및 방법
US20220374341A1 (en) Techniques for decoupled management of software test execution planning and corresponding software test execution runs
Paikari Bug Report Quality Prediction and the Impact of Including Videos on the Bug Reporting Process
US20220358506A1 (en) Methods and systems for resolving automated teller machine errors
US20230410004A1 (en) Detection and classification of impediments
Koochekian Sabor Automatic bug triaging techniques using machine learning and stack traces

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: 20171020

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

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