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...
Saved in:
Published in | 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP) pp. 113 - 122 |
---|---|
Main Authors | , |
Format | Conference Proceeding |
Language | English |
Published |
IEEE
01.05.2017
|
Subjects | |
Online Access | Get 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 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 |