Who broke the build? Automatically identifying changes that induce test failures in continuous integration at Google Scale

Quickly identifying and fixing code changes that introduce regressions is critical to keep the momentum on software development, especially in very large scale software repositories with rapid development cycles, such as at Google. Identifying and fixing such regressions is one of the most expensive...

Full description

Saved in:
Bibliographic Details
Published in2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP) pp. 113 - 122
Main Authors Ziftci, Celal, Reardon, Jim
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.05.2017
Subjects
Online AccessGet full text

Cover

Loading…
Abstract Quickly identifying and fixing code changes that introduce regressions is critical to keep the momentum on software development, especially in very large scale software repositories with rapid development cycles, such as at Google. Identifying and fixing such regressions is one of the most expensive, tedious, and time consuming tasks in the software development life-cycle. Therefore, there is a high demand for automated techniques that can help developers identify such changes while minimizing manual human intervention. Various techniques have recently been proposed to identify such code changes. However, these techniques have shortcomings that make them unsuitable for rapid development cycles as at Google. In this paper, we propose a novel algorithm to identify code changes that introduce regressions, and discuss case studies performed at Google on 140 projects. Based on our case studies, our algorithm automatically identifies the change that introduced the regression in the top-5 among thousands of candidates 82% of the time, and provides considerable savings on manual work developers need to perform.
AbstractList Quickly identifying and fixing code changes that introduce regressions is critical to keep the momentum on software development, especially in very large scale software repositories with rapid development cycles, such as at Google. Identifying and fixing such regressions is one of the most expensive, tedious, and time consuming tasks in the software development life-cycle. Therefore, there is a high demand for automated techniques that can help developers identify such changes while minimizing manual human intervention. Various techniques have recently been proposed to identify such code changes. However, these techniques have shortcomings that make them unsuitable for rapid development cycles as at Google. In this paper, we propose a novel algorithm to identify code changes that introduce regressions, and discuss case studies performed at Google on 140 projects. Based on our case studies, our algorithm automatically identifies the change that introduced the regression in the top-5 among thousands of candidates 82% of the time, and provides considerable savings on manual work developers need to perform.
Author Ziftci, Celal
Reardon, Jim
Author_xml – sequence: 1
  givenname: Celal
  surname: Ziftci
  fullname: Ziftci, Celal
  email: ziftci@google.com
– sequence: 2
  givenname: Jim
  surname: Reardon
  fullname: Reardon, Jim
  email: jimr@google.com
BookMark eNotjN1KwzAYhiMoqHMXIJ7kBjqTpvk7kjHmHAwUqng40uRrF-0SadODefVG9Ojl_Xuu0XmIARC6pWRBKdH321W9Lur19mVREioXlJ2huZaKcqZEKamsLtF8HD8IISWVulLiCn2_HyJuhvgJOB0AN5Pv3QNeTikeTfLW9P0Jewch-fbkQ4ftwYQOxjw2CfvgJpuPMCbcGt9PQ258wDbmfZji9OsSdENGxYDzYxNj1wOuMxhu0EVr-hHm_zpDb4_r19VTsXvebFfLXWEYqVLBmC4tt66piOVONIIIrZV2trSOtUJo1TIDTFnVKJFT4rhSVnIglLVUCTZDd39cDwD7r8EfzXDaSy14xTj7AVZ3YEE
CODEN IEEPAD
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/ICSE-SEIP.2017.13
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Xplore
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Xplore
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9781538627174
1538627175
EndPage 122
ExternalDocumentID 7965435
Genre orig-research
GroupedDBID 6IE
6IL
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
CBEJK
GUFHI
LHSKQ
RIE
RIL
ID FETCH-LOGICAL-a304t-3392c5cdb40c5d6b6069989dc2cd3f6698f3ae38c8b86dc20d588c75e013f1863
IEDL.DBID RIE
IngestDate Wed Jun 26 19:24:24 EDT 2024
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a304t-3392c5cdb40c5d6b6069989dc2cd3f6698f3ae38c8b86dc20d588c75e013f1863
PageCount 10
ParticipantIDs ieee_primary_7965435
PublicationCentury 2000
PublicationDate 2017-May
PublicationDateYYYYMMDD 2017-05-01
PublicationDate_xml – month: 05
  year: 2017
  text: 2017-May
PublicationDecade 2010
PublicationTitle 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP)
PublicationTitleAbbrev ICSE-SEIP
PublicationYear 2017
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0002179486
Score 1.842694
Snippet Quickly identifying and fixing code changes that introduce regressions is critical to keep the momentum on software development, especially in very large scale...
SourceID ieee
SourceType Publisher
StartPage 113
SubjectTerms Debugging
Fault diagnosis
Google
Manuals
Ranking
Servers
Software
Software changes
Software debugging
Software fault diagnosis
Software testing
Software tools
Title Who broke the build? Automatically identifying changes that induce test failures in continuous integration at Google Scale
URI https://ieeexplore.ieee.org/document/7965435
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LT8JAEN4AJ0-oYHxnDx5tKd1uuz0ZQ0AwwZAokRvZpxJIa6A9yK93ti1ojAdv7WSbbXamnW9255tB6CY2RJiASadrNHECo5UjjDEOF1HMjOC-KkpsjJ_C4TR4nNFZDd3uuTBa6yL5TLv2sjjLV6nM7VZZJ4otE5LWUZ15fsnV2u-n-NayWFgdXHa9uDPqPffhpzSa2ASuyLUNDH40UCn8x6CJxruZy7SRpZtnwpXbX0UZ__tqh6j9zdTDk70POkI1nRyj5q5VA66-3Bbavr6nWKzTpcaA-LCwzbDv8H2epUXJVr5afeJFwdkteE-45ANvYDDPMITtYAAYQGmGDV_YRPYNCLFNc18keZrbu7LqBGgZwxMPafq20jA9uJ82mg76L72hU7VdcDjxgswhAJkklUoEnqQqFBDiQEwWK-lLRUwYgg4J14RJJlgIUk9RxmRENaBJ02UhOUGNJE30KcJaUF9QBSEgiwLNOJecAMRhIgIgQgQ_Qy27lPOPsrLGvFrF87_FF-jAarJMN7xEjWyd6yuABJm4LmzhC-OmuvI
link.rule.ids 310,311,786,790,795,796,802,27958,55109
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LT8JAEN4gHvSECsa3e_BoS2X72J6MISAoEBIhciP7VAJpDbQH-fXOtgWN8eCtnbbZZmfa-WZ3vhmEbkJNuHapsO60IparlbS41tpiPAip5qwhsxIb_YHfGbtPE29SQrdbLoxSKks-U7Y5zPbyZSxSs1RWD0LDhPR20C74eSfM2VrbFZWGsS3qF1uXcL3ebb604LfUHZoUrsA2LQx-tFDJPEi7gvqbsfPEkbmdJtwW619lGf_7cgeo9s3Vw8OtFzpEJRUdocqmWQMuvt0qWr--x5gv47nCgPkwN-2w7_FDmsRZ0Va2WHziWcbazZhPOGcEr-BmlmAI3MEEMMDSBGs2M6nsKxBik-g-i9I4NWd53QnQM4YnHuP4baFgeHBANTRut0bNjlU0XrAYcdzEIgCahCckdx3hSZ9DkANRWShFQ0iifR-0SJgiVFBOfZA60qNUBJ4CPKnvqE-OUTmKI3WCsOJeg3sSgkAauIoyJhgBkEN5AFCEcHaKqmYqpx95bY1pMYtnf4uv0V5n1O9Ne93B8znaN1rNkw8vUDlZpuoSAELCrzK7-ALpp75I
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2017+IEEE%2FACM+39th+International+Conference+on+Software+Engineering%3A+Software+Engineering+in+Practice+Track+%28ICSE-SEIP%29&rft.atitle=Who+broke+the+build%3F+Automatically+identifying+changes+that+induce+test+failures+in+continuous+integration+at+Google+Scale&rft.au=Ziftci%2C+Celal&rft.au=Reardon%2C+Jim&rft.date=2017-05-01&rft.pub=IEEE&rft.spage=113&rft.epage=122&rft_id=info:doi/10.1109%2FICSE-SEIP.2017.13&rft.externalDocID=7965435