Skip to main content
Erschienen in: Empirical Software Engineering 3/2020

09.10.2019

Every build you break: developer-oriented assistance for build failure resolution

verfasst von: Carmine Vassallo, Sebastian Proksch, Timothy Zemp, Harald C. Gall

Erschienen in: Empirical Software Engineering | Ausgabe 3/2020

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Continuous integration is an agile software development practice. Instead of integrating features right before a release, they are constantly being integrated into an automated build process. This shortens the release cycle, improves software quality, and reduces time to market. However, the whole process will come to a halt when a commit breaks the build, which can happen for several reasons, e.g., compilation errors or test failures, and fixing the build suddenly becomes a top priority. Developers not only have to find the cause of the build break and fix it, but they have to be quick in all of it to avoid a delay for others. Unfortunately, these steps require deep knowledge and are often time-consuming. To support developers in fixing a build break, we propose Bart, a tool that summarizes the reasons for Maven build failures and suggests possible solutions found on the internet. We will show in a case study with 17 participants that developers find Bart useful to understand build breaks and that using Bart substantially reduces the time to fix a build break, on average by 37%. We have also conducted a qualitative study to better understand the workflows and information needs when fixing builds. We found that typical workflows differ substantially between various error categories, and that several uncommon build errors are both very hard to investigate and to fix. These findings will be useful to inform future research in this area.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Bavota G, Gravino C, Oliveto R, De Lucia A, Tortora G, Genero M, Cruz-Lemus JA (2011) Identifying the weaknesses of uml class diagrams during data model comprehension. In: Proceedings of the 14th international conference on model driven engineering languages and systems, MODELS’11. http://dl.acm.org/citation.cfm?id=2050655.2050673. Springer, Berlin, pp 168–182 Bavota G, Gravino C, Oliveto R, De Lucia A, Tortora G, Genero M, Cruz-Lemus JA (2011) Identifying the weaknesses of uml class diagrams during data model comprehension. In: Proceedings of the 14th international conference on model driven engineering languages and systems, MODELS’11. http://​dl.​acm.​org/​citation.​cfm?​id=​2050655.​2050673. Springer, Berlin, pp 168–182
Zurück zum Zitat Beller M, Bholanath R, McIntosh S, Zaidman A (2016) Analyzing the state of static analysis: a large-scale evaluation in open source software. In: IEEE 23rd International conference on software analysis, evolution, and reengineering (SANER), pp 470–481. https://doi.org/10.1109/SANER.2016.105 Beller M, Bholanath R, McIntosh S, Zaidman A (2016) Analyzing the state of static analysis: a large-scale evaluation in open source software. In: IEEE 23rd International conference on software analysis, evolution, and reengineering (SANER), pp 470–481. https://​doi.​org/​10.​1109/​SANER.​2016.​105
Zurück zum Zitat Beller M, Gousios G, Zaidman A (2017) Oops, my tests broke the build: an explorative analysis of Travis CI with GitHub. In: International conference on mining software repositories Beller M, Gousios G, Zaidman A (2017) Oops, my tests broke the build: an explorative analysis of Travis CI with GitHub. In: International conference on mining software repositories
Zurück zum Zitat Cohen J (1960) A coefficient of agreement for nominal scales. Educ Psychol Measur 20(1):37–46CrossRef Cohen J (1960) A coefficient of agreement for nominal scales. Educ Psychol Measur 20(1):37–46CrossRef
Zurück zum Zitat Duvall P, Matyas SM, Glover A (2007) Continuous integration: improving software quality and reducing risk. Addison-Wesley Duvall P, Matyas SM, Glover A (2007) Continuous integration: improving software quality and reducing risk. Addison-Wesley
Zurück zum Zitat Fraser G, Staats M, McMinn P, Arcuri A, Padberg F (2015) Does automated unit test generation really help software testers? a controlled empirical study. ACM Trans Softw Eng Methodol (TOSEM) 24(4):23CrossRef Fraser G, Staats M, McMinn P, Arcuri A, Padberg F (2015) Does automated unit test generation really help software testers? a controlled empirical study. ACM Trans Softw Eng Methodol (TOSEM) 24(4):23CrossRef
Zurück zum Zitat Gallaba K, Macho C, Pinzger M, McIntosh S (2018) Noise and heterogeneity in historical build data: an empirical study of travis CI. In: ASE. ACM, pp 87–97 Gallaba K, Macho C, Pinzger M, McIntosh S (2018) Noise and heterogeneity in historical build data: an empirical study of travis CI. In: ASE. ACM, pp 87–97
Zurück zum Zitat Haiduc S, Aponte J, Marcus A (2010) Supporting program comprehension with source code summarization. In: ICSE (2) Haiduc S, Aponte J, Marcus A (2010) Supporting program comprehension with source code summarization. In: ICSE (2)
Zurück zum Zitat Hassan F, Wang X (2018) Hirebuild: an automatic approach to history-driven repair of build scripts. In: ICSE. ACM, pp 1078–1089 Hassan F, Wang X (2018) Hirebuild: an automatic approach to history-driven repair of build scripts. In: ICSE. ACM, pp 1078–1089
Zurück zum Zitat Hilton M, Tunnell T, Huang K, Marinov D, Dig D (2016) Usage, costs, and benefits of continuous integration in open-source projects. In: Proceedings of the 31st IEEE/ACM international conference on automated software engineering (ASE), pp 426–437 Hilton M, Tunnell T, Huang K, Marinov D, Dig D (2016) Usage, costs, and benefits of continuous integration in open-source projects. In: Proceedings of the 31st IEEE/ACM international conference on automated software engineering (ASE), pp 426–437
Zurück zum Zitat Hilton M, Nelson N, Tunnell T, Marinov D, Dig D (2017) Trade-offs in continuous integration: assurance, security, and flexibility. In: Proceedings of the 25th ACM SIGSOFT international symposium on foundations of software engineering, FSE 2017, p. To Appear Hilton M, Nelson N, Tunnell T, Marinov D, Dig D (2017) Trade-offs in continuous integration: assurance, security, and flexibility. In: Proceedings of the 25th ACM SIGSOFT international symposium on foundations of software engineering, FSE 2017, p. To Appear
Zurück zum Zitat Humble J, Farley D (2010) Continuous delivery, reliable software releases through build, test, and deployment automation. Addison-Wesley Professional Humble J, Farley D (2010) Continuous delivery, reliable software releases through build, test, and deployment automation. Addison-Wesley Professional
Zurück zum Zitat Likert R (1932) A technique for the measurement of attitudes. Archives of psychology Likert R (1932) A technique for the measurement of attitudes. Archives of psychology
Zurück zum Zitat Lou Y, Chen J, Zhang L, Hao D, Zhang L (2019) History-driven build failure fixing: how far are we?. In: ISSTA. ACM, pp 43–54 Lou Y, Chen J, Zhang L, Hao D, Zhang L (2019) History-driven build failure fixing: how far are we?. In: ISSTA. ACM, pp 43–54
Zurück zum Zitat Macho C, McIntosh S, Pinzger M (2018) Automatically repairing dependency-related build breakage. In: Proc. of the international conference on software analysis, evolution, and reengineering (SANER), p. To appear Macho C, McIntosh S, Pinzger M (2018) Automatically repairing dependency-related build breakage. In: Proc. of the international conference on software analysis, evolution, and reengineering (SANER), p. To appear
Zurück zum Zitat Miller A (2008) A hundred days of continuous integration. In: Proceedings of the Agile 2008, AGILE ’08, pp 289–293 Miller A (2008) A hundred days of continuous integration. In: Proceedings of the Agile 2008, AGILE ’08, pp 289–293
Zurück zum Zitat Moreno L, Marcus A (2017) Automatic software summarization: the state of the art. In: ICSE (companion volume). IEEE Computer Society, pp 511–512 Moreno L, Marcus A (2017) Automatic software summarization: the state of the art. In: ICSE (companion volume). IEEE Computer Society, pp 511–512
Zurück zum Zitat Moreno L, Aponte J, Sridhara G, Marcus A, Pollock LL, Vijay-Shanker K (2013) Automatic generation of natural language summaries for java classes. In: ICPC. IEEE Computer Society, pp 23–32 Moreno L, Aponte J, Sridhara G, Marcus A, Pollock LL, Vijay-Shanker K (2013) Automatic generation of natural language summaries for java classes. In: ICPC. IEEE Computer Society, pp 23–32
Zurück zum Zitat Moreno L, Bavota G, Penta MD, Oliveto R, Marcus A (2015) How can I use this method?. In: ICSE (1). IEEE Computer Society, pp 880–890 Moreno L, Bavota G, Penta MD, Oliveto R, Marcus A (2015) How can I use this method?. In: ICSE (1). IEEE Computer Society, pp 880–890
Zurück zum Zitat Myers GJ (2004) The art of software testing, 2. edn. Wiley Myers GJ (2004) The art of software testing, 2. edn. Wiley
Zurück zum Zitat Panichella S, Panichella A, Beller M, Zaidman A, Gall HC (2016) The impact of test case summaries on bug fixing performance: an empirical investigation. In: ICSE. ACM, pp 547–558 Panichella S, Panichella A, Beller M, Zaidman A, Gall HC (2016) The impact of test case summaries on bug fixing performance: an empirical investigation. In: ICSE. ACM, pp 547–558
Zurück zum Zitat Ponzanelli L, Bavota G, Penta MD, Oliveto R, Lanza M (2014) Mining Stackoverflow to turn the ide into a self-confident programming prompter. In: MSR Ponzanelli L, Bavota G, Penta MD, Oliveto R, Lanza M (2014) Mining Stackoverflow to turn the ide into a self-confident programming prompter. In: MSR
Zurück zum Zitat Rahman A, Parnin C, Williams L (2019) The seven sins: security smells in infrastructure as code scripts. In: 41st International conference on software engineering (ICSE). IEEE/ACM Rahman A, Parnin C, Williams L (2019) The seven sins: security smells in infrastructure as code scripts. In: 41st International conference on software engineering (ICSE). IEEE/ACM
Zurück zum Zitat Rastkar S, Murphy GC, Murray G (2010) Summarizing software artifacts: a case study of bug reports. In: ICSE (1). ACM, pp 505–514 Rastkar S, Murphy GC, Murray G (2010) Summarizing software artifacts: a case study of bug reports. In: ICSE (1). ACM, pp 505–514
Zurück zum Zitat Rausch T, Hummer W, Leitner P, Schulte S (2017) An empirical analysis of build failures in the continuous integration workflows of java-based open-source software. In: Proceedings of the 14th international conference on mining software repositories, MSR’17. ACM, New York, p nn Rausch T, Hummer W, Leitner P, Schulte S (2017) An empirical analysis of build failures in the continuous integration workflows of java-based open-source software. In: Proceedings of the 14th international conference on mining software repositories, MSR’17. ACM, New York, p nn
Zurück zum Zitat Robbins NB, Heiberger RM (2011) Plotting Likert and other rating scales. In: Proceedings of the 2011 joint statistical meeting, pp 1058–1066 Robbins NB, Heiberger RM (2011) Plotting Likert and other rating scales. In: Proceedings of the 2011 joint statistical meeting, pp 1058–1066
Zurück zum Zitat Sorbo AD, Panichella S, Alexandru CV, Shimagaki J, Visaggio CA, Canfora G, Gall HC (2016) What would users change in my app? summarizing app reviews for recommending software changes. In: SIGSOFT FSE. ACM, pp 499–510 Sorbo AD, Panichella S, Alexandru CV, Shimagaki J, Visaggio CA, Canfora G, Gall HC (2016) What would users change in my app? summarizing app reviews for recommending software changes. In: SIGSOFT FSE. ACM, pp 499–510
Zurück zum Zitat Spencer D (2009) Card sorting: designing usable categories. Rosenfeld Media Spencer D (2009) Card sorting: designing usable categories. Rosenfeld Media
Zurück zum Zitat Urli S, Yu Z, Seinturier L, Monperrus M (2018) How to design a program repair bot? Insights from the repairnator project. arXiv:1811.09852 Urli S, Yu Z, Seinturier L, Monperrus M (2018) How to design a program repair bot? Insights from the repairnator project. arXiv:1811.​09852
Zurück zum Zitat Vasilescu B, Filkov V, Serebrenik A (2013) Stackoverflow and github: associations between software development and crowdsourced knowledge. In: SocialCom. IEEE Computer Society, pp 188–195 Vasilescu B, Filkov V, Serebrenik A (2013) Stackoverflow and github: associations between software development and crowdsourced knowledge. In: SocialCom. IEEE Computer Society, pp 188–195
Zurück zum Zitat Vassallo C, Panichella S, Penta MD, Canfora G (2014) CODES: mining source code descriptions from developers discussions. In: ICPC. ACM, pp 106–109 Vassallo C, Panichella S, Penta MD, Canfora G (2014) CODES: mining source code descriptions from developers discussions. In: ICPC. ACM, pp 106–109
Zurück zum Zitat Vassallo C, Zampetti F, Romano D, Beller M, Panichella A, Di Penta M, Zaidman A (2016) Continuous delivery practices in a large financial organization. In: 32nd IEEE International conference on software maintenance and evolution (ICSME), pp 41–50 Vassallo C, Zampetti F, Romano D, Beller M, Panichella A, Di Penta M, Zaidman A (2016) Continuous delivery practices in a large financial organization. In: 32nd IEEE International conference on software maintenance and evolution (ICSME), pp 41–50
Zurück zum Zitat Vassallo C, Schermann G, Zampetti F, Romano D, Leitner P, Zaidman A, Penta MD, Panichella S (2017) A tale of CI build failures: an open source and a financial organization perspective. In: 2017 IEEE International conference on software maintenance and evolution, ICSME 2017, Shanghai, China, September 17-22, 2017. https://doi.org/10.1109/ICSME.2017.67, pp 183–193 Vassallo C, Schermann G, Zampetti F, Romano D, Leitner P, Zaidman A, Penta MD, Panichella S (2017) A tale of CI build failures: an open source and a financial organization perspective. In: 2017 IEEE International conference on software maintenance and evolution, ICSME 2017, Shanghai, China, September 17-22, 2017. https://​doi.​org/​10.​1109/​ICSME.​2017.​67, pp 183–193
Zurück zum Zitat Vassallo C, Proksch S, Zemp T, Gall HC (2018) Un-break my build: assisting developers with build repair hints. In: International conference on program comprehension Vassallo C, Proksch S, Zemp T, Gall HC (2018) Un-break my build: assisting developers with build repair hints. In: International conference on program comprehension
Zurück zum Zitat Vassallo C, Proksch S, Gall HC, Penta MD (2019a) Automated reporting of anti-patterns and decay in continuous integration. In: ICSE. IEEE / ACM, pp 105–115 Vassallo C, Proksch S, Gall HC, Penta MD (2019a) Automated reporting of anti-patterns and decay in continuous integration. In: ICSE. IEEE / ACM, pp 105–115
Zurück zum Zitat Vos TEJ, Tonella P, Prasetya W, Kruse PM, Bagnato A, Harman M, Shehory O (2014) FITTEST: a new continuous and automated testing process for future internet applications. In: CSMR-WCRE. IEEE Computer Society, pp 407–410 Vos TEJ, Tonella P, Prasetya W, Kruse PM, Bagnato A, Harman M, Shehory O (2014) FITTEST: a new continuous and automated testing process for future internet applications. In: CSMR-WCRE. IEEE Computer Society, pp 407–410
Zurück zum Zitat Wong E, Yang J, Tan L (2013) Autocomment: mining question and answer sites for automatic comment generation. In: ASE. IEEE, pp 562–567 Wong E, Yang J, Tan L (2013) Autocomment: mining question and answer sites for automatic comment generation. In: ASE. IEEE, pp 562–567
Zurück zum Zitat Ying ATT, Robillard MP (2013) Code fragment summarization. In: ESEC/SIGSOFT FSE. ACM, pp 655–658 Ying ATT, Robillard MP (2013) Code fragment summarization. In: ESEC/SIGSOFT FSE. ACM, pp 655–658
Zurück zum Zitat Zampetti F, Scalabrino S, Oliveto R, Canfora G, Di Penta M (2017) How open source projects use static code analysis tools in continuous integration pipelines. In: Proceedings of the 14th international conference on mining software repositories. IEEE Press, pp 334–344 Zampetti F, Scalabrino S, Oliveto R, Canfora G, Di Penta M (2017) How open source projects use static code analysis tools in continuous integration pipelines. In: Proceedings of the 14th international conference on mining software repositories. IEEE Press, pp 334–344
Metadaten
Titel
Every build you break: developer-oriented assistance for build failure resolution
verfasst von
Carmine Vassallo
Sebastian Proksch
Timothy Zemp
Harald C. Gall
Publikationsdatum
09.10.2019
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 3/2020
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-019-09765-y

Weitere Artikel der Ausgabe 3/2020

Empirical Software Engineering 3/2020 Zur Ausgabe

Premium Partner