Skip to main content
Erschienen in: Empirical Software Engineering 4/2023

01.07.2023

Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs

verfasst von: Akond Rahman, Dibyendu Brinto Bose, Raunak Shakya, Rahul Pandita

Erschienen in: Empirical Software Engineering | Ausgabe 4/2023

Einloggen

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

search-config
loading …

Abstract

Julia has emerged as a popular programming language to develop scientific software, in part due to its flexible syntax akin to scripting languages while retaining the execution speed of a compiled language. Similar to any programming language, Julia programs are susceptible to defects. However, a systematic characterization of defects in Julia programs remains under-explored. A systematic analysis of defects in Julia programs will act as a starting point for researchers and toolsmiths in building developer tools to improve the quality of Julia programs. To this end, we conduct an empirical study with 742 defects that appear in Julia programs by mining 30,494 commits and 3,038 issue reports collected from 112 open-source Julia projects. From our empirical analysis, we identify 9 defect categories and 7 defect symptoms. We observe certain defect categories to be Julia-specific, e.g., type instability and world age defects. We also survey 52 developers to rank the identified categories based on perceived severity. Based on our empirical analysis, we provide specific recommendations for researchers and toolsmiths.

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 Agrawal A, Rahman A, Krishna R, Sobran A, Menzies T (2018) We don’t need another hero?: The impact of “heroes” on software development. In: Proceedings of the 40th international conference on software engineering: software engineering in practice, ICSE-SEIP ’18, pp. 245–253. ACM, New York. https://doi.org/10.1145/3183519.3183549 Agrawal A, Rahman A, Krishna R, Sobran A, Menzies T (2018) We don’t need another hero?: The impact of “heroes” on software development. In: Proceedings of the 40th international conference on software engineering: software engineering in practice, ICSE-SEIP ’18, pp. 245–253. ACM, New York. https://​doi.​org/​10.​1145/​3183519.​3183549
Zurück zum Zitat Antinyan V, Staron M, Sandberg A (2017) Evaluating code complexity triggers, use of complexity measures and the influence of code complexity on maintenance time. Empir Softw Eng 22(6):3057–3087CrossRef Antinyan V, Staron M, Sandberg A (2017) Evaluating code complexity triggers, use of complexity measures and the influence of code complexity on maintenance time. Empir Softw Eng 22(6):3057–3087CrossRef
Zurück zum Zitat Beizer B (1984) Software system testing and quality assurance. Van Nostrand Reinhold Co Beizer B (1984) Software system testing and quality assurance. Van Nostrand Reinhold Co
Zurück zum Zitat Catolino G, Palomba F, Zaidman A, Ferrucci F (2019) Not all bugs are the same: understanding, characterizing, and classifying bug types. J Syst Softw 152:165–181. DOIurlhttps://doi.org/10.1016/j.jss.2019.03.002, urlwww.sciencedirect.com/science/article/pii/S0164121219300536 Catolino G, Palomba F, Zaidman A, Ferrucci F (2019) Not all bugs are the same: understanding, characterizing, and classifying bug types. J Syst Softw 152:165–181. DOIurlhttps://​doi.​org/​10.​1016/​j.​jss.​2019.​03.​002, urlwww.sciencedirect.com/science/article/pii/S0164121219300536
Zurück zum Zitat Chen Z, Yao H, Lou Y, Cao Y, Liu Y, Wang H, Liu X (2021) An empirical study on deployment faults of deep learning based mobile applications. In: 2021 IEEE/ACM 43rd international conference on software engineering (ICSE), IEEE, pp. 674–685 Chen Z, Yao H, Lou Y, Cao Y, Liu Y, Wang H, Liu X (2021) An empirical study on deployment faults of deep learning based mobile applications. In: 2021 IEEE/ACM 43rd international conference on software engineering (ICSE), IEEE, pp. 674–685
Zurück zum Zitat Cinque M, Cotroneo D, Corte RD, Pecchia A (2014) Assessing direct monitoring techniques to analyze failures of critical industrial systems. In: 2014 IEEE 25th international symposium on software reliability engineering, pp. 212–222, https://doi.org/10.1109/ISSRE.2014.30 Cinque M, Cotroneo D, Corte RD, Pecchia A (2014) Assessing direct monitoring techniques to analyze failures of critical industrial systems. In: 2014 IEEE 25th international symposium on software reliability engineering, pp. 212–222, https://​doi.​org/​10.​1109/​ISSRE.​2014.​30
Zurück zum Zitat Di Franco A, Guo H, Rubio-González C (2017) A comprehensive study of real-world numerical bug characteristics. In: 2017 32nd IEEE/ACM international conference on automated software engineering (ASE), IEEE, pp. 509–519 Di Franco A, Guo H, Rubio-González C (2017) A comprehensive study of real-world numerical bug characteristics. In: 2017 32nd IEEE/ACM international conference on automated software engineering (ASE), IEEE, pp. 509–519
Zurück zum Zitat Easterbrook S, Singer J, Storey MA, Damian D (2008) Selecting empirical methods for software engineering research. Springer, London, London, pp 285–311 Easterbrook S, Singer J, Storey MA, Damian D (2008) Selecting empirical methods for software engineering research. Springer, London, London, pp 285–311
Zurück zum Zitat Gagniuc PA (2017) Markov chains: from theory to implementation and experimentation. WileyCrossRefMATH Gagniuc PA (2017) Markov chains: from theory to implementation and experimentation. WileyCrossRefMATH
Zurück zum Zitat Garcia J, Feng Y, Shen J, Sumaya Xia AY, Chen QA (2020) A comprehensive study of autonomous vehicle bugs. In: Proceedings of the 42nd international conference on software engineering, ICSE ’20, to appear Garcia J, Feng Y, Shen J, Sumaya Xia AY, Chen QA (2020) A comprehensive study of autonomous vehicle bugs. In: Proceedings of the 42nd international conference on software engineering, ICSE ’20, to appear
Zurück zum Zitat Hickey G, Kipping C (1996) A multi-stage approach to the coding of data from open-ended questions. Nurse Res 4(1):81–91CrossRef Hickey G, Kipping C (1996) A multi-stage approach to the coding of data from open-ended questions. Nurse Res 4(1):81–91CrossRef
Zurück zum Zitat Howison J, Herbsleb JD (2011) Scientific software production: Incentives and collaboration. In: Proceedings of the ACM 2011 conference on computer supported cooperative work, CSCW ’11, Association for Computing Machinery, New York, p 513–522, https://doi.org/10.1145/1958824.1958904 Howison J, Herbsleb JD (2011) Scientific software production: Incentives and collaboration. In: Proceedings of the ACM 2011 conference on computer supported cooperative work, CSCW ’11, Association for Computing Machinery, New York, p 513–522, https://​doi.​org/​10.​1145/​1958824.​1958904
Zurück zum Zitat Humbatova N, Jahangirova G, Bavota G, Riccio V, Stocco A, Tonella P (2020) Taxonomy of real faults in deep learning systems. In: Proceedings of the ACM/IEEE 42nd international conference on software engineering, ICSE ’20, Association for Computing Machinery, New York, p 1110–1121, https://doi.org/10.1145/3377811.3380395 Humbatova N, Jahangirova G, Bavota G, Riccio V, Stocco A, Tonella P (2020) Taxonomy of real faults in deep learning systems. In: Proceedings of the ACM/IEEE 42nd international conference on software engineering, ICSE ’20, Association for Computing Machinery, New York, p 1110–1121, https://​doi.​org/​10.​1145/​3377811.​3380395
Zurück zum Zitat Islam MJ, Nguyen G, Pan R, Rajan H (2019) A comprehensive study on deep learning bug characteristics. In: Proceedings of the 2019 27th ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering, ESEC/FSE 2019, Association for Computing Machinery, New York, p 510–520, https://doi.org/10.1145/3338906.3338955 Islam MJ, Nguyen G, Pan R, Rajan H (2019) A comprehensive study on deep learning bug characteristics. In: Proceedings of the 2019 27th ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering, ESEC/FSE 2019, Association for Computing Machinery, New York, p 510–520, https://​doi.​org/​10.​1145/​3338906.​3338955
Zurück zum Zitat Krippendorff K (2018) Content analysis: An introduction to its methodology. Sage publications Krippendorff K (2018) Content analysis: An introduction to its methodology. Sage publications
Zurück zum Zitat Krippendorff K, Fleiss JL (1978) Reliability of binary attribute data Krippendorff K, Fleiss JL (1978) Reliability of binary attribute data
Zurück zum Zitat Krishna R, Agrawal A, Rahman A, Sobran A, Menzies T (2018) What is the connection between issues, bugs, and enhancements?: Lessons learned from 800+ software projects. In: Proceedings of the 40th international conference on software engineering: software engineering in practice, ICSE-SEIP ’18, ACM, New York, pp 306–315, https://doi.org/10.1145/3183519.3183548 Krishna R, Agrawal A, Rahman A, Sobran A, Menzies T (2018) What is the connection between issues, bugs, and enhancements?: Lessons learned from 800+ software projects. In: Proceedings of the 40th international conference on software engineering: software engineering in practice, ICSE-SEIP ’18, ACM, New York, pp 306–315, https://​doi.​org/​10.​1145/​3183519.​3183548
Zurück zum Zitat Lattner C, Adve V (2004) Llvm: A compilation framework for lifelong program analysis & transformation. In: International symposium on code generation and optimization, 2004. CGO 2004., IEEE, pp 75–86 Lattner C, Adve V (2004) Llvm: A compilation framework for lifelong program analysis & transformation. In: International symposium on code generation and optimization, 2004. CGO 2004., IEEE, pp 75–86
Zurück zum Zitat Lombard M, Snyder-Duch J, Bracken CC (2010) Practical resources for assessing and reporting intercoder reliability in content analysis research projects Lombard M, Snyder-Duch J, Bracken CC (2010) Practical resources for assessing and reporting intercoder reliability in content analysis research projects
Zurück zum Zitat Mauny M, Vaugon B (2014) Nullable type inference. In: OCaml 2014-The OCaml users and developers workshop Mauny M, Vaugon B (2014) Nullable type inference. In: OCaml 2014-The OCaml users and developers workshop
Zurück zum Zitat Murphy J, Brady ET, Shamim SI, Rahman A (2020) A curated dataset of security defects in scientific software projects. In: Proceedings of the 7th symposium on hot topics in the science of security, HotSoS ’20, Association for Computing Machinery, New York, https://doi.org/10.1145/3384217.3384218 Murphy J, Brady ET, Shamim SI, Rahman A (2020) A curated dataset of security defects in scientific software projects. In: Proceedings of the 7th symposium on hot topics in the science of security, HotSoS ’20, Association for Computing Machinery, New York, https://​doi.​org/​10.​1145/​3384217.​3384218
Zurück zum Zitat Rahman A, Agrawal A, Krishna R, Sobran A (2018) Characterizing the influence of continuous integration: Empirical results from 250+ open source and proprietary projects. In: Proceedings of the 4th ACM SIGSOFT International Workshop on Software Analytics, SWAN 2018, ACM, New York, pp 8–14, https://doi.org/10.1145/3278142.3278149, Rahman A, Agrawal A, Krishna R, Sobran A (2018) Characterizing the influence of continuous integration: Empirical results from 250+ open source and proprietary projects. In: Proceedings of the 4th ACM SIGSOFT International Workshop on Software Analytics, SWAN 2018, ACM, New York, pp 8–14, https://​doi.​org/​10.​1145/​3278142.​3278149,
Zurück zum Zitat Raulamo-Jurvanen P, Hosio S, Mäntylä MV (2019) Practitioner evaluations on software testing tools. In: Proceedings of the evaluation and assessment on software engineering, EASE ’19, Association for Computing Machinery, New York, pp 57–66, https://doi.org/10.1145/3319008.3319018 Raulamo-Jurvanen P, Hosio S, Mäntylä MV (2019) Practitioner evaluations on software testing tools. In: Proceedings of the evaluation and assessment on software engineering, EASE ’19, Association for Computing Machinery, New York, pp 57–66, https://​doi.​org/​10.​1145/​3319008.​3319018
Zurück zum Zitat Saldaña J (2015) The coding manual for qualitative researchers. Sage Saldaña J (2015) The coding manual for qualitative researchers. Sage
Zurück zum Zitat Satyanarayan A, Moritz D, Wongsuphasawat K, Heer J (2016) Vega-lite: A grammar of interactive graphics. IEEE Trans Vis Comput Graph 23(1):341–350CrossRef Satyanarayan A, Moritz D, Wongsuphasawat K, Heer J (2016) Vega-lite: A grammar of interactive graphics. IEEE Trans Vis Comput Graph 23(1):341–350CrossRef
Zurück zum Zitat Seaman CB, Shull F, Regardie M, Elbert D, Feldmann RL, Guo Y, Godfrey S (2008a) Defect categorization: Making use of a decade of widely varying historical data. In: Proceedings of the Second ACM-IEEE International symposium on empirical software engineering and measurement, ESEM ’08, Association for Computing Machinery, New York, pp 149–157, https://doi.org/10.1145/1414004.1414030 Seaman CB, Shull F, Regardie M, Elbert D, Feldmann RL, Guo Y, Godfrey S (2008a) Defect categorization: Making use of a decade of widely varying historical data. In: Proceedings of the Second ACM-IEEE International symposium on empirical software engineering and measurement, ESEM ’08, Association for Computing Machinery, New York, pp 149–157, https://​doi.​org/​10.​1145/​1414004.​1414030
Zurück zum Zitat Seaman CB, Shull F, Regardie M, Elbert D, Feldmann RL, Guo Y, Godfrey S (2008b) Defect categorization: Making use of a decade of widely varying historical data. In: Proceedings of the Second ACM-IEEE International symposium on empirical software engineering and measurement, ESEM ’08, Association for Computing Machinery, New York, pp 149–157, https://doi.org/10.1145/1414004.1414030 Seaman CB, Shull F, Regardie M, Elbert D, Feldmann RL, Guo Y, Godfrey S (2008b) Defect categorization: Making use of a decade of widely varying historical data. In: Proceedings of the Second ACM-IEEE International symposium on empirical software engineering and measurement, ESEM ’08, Association for Computing Machinery, New York, pp 149–157, https://​doi.​org/​10.​1145/​1414004.​1414030
Zurück zum Zitat Sweeney A, Greenwood KE, Williams S, Wykes T, Rose DS (2013) Hearing the voices of service user researchers in collaborative qualitative data analysis: the case for multiple coding. Health Expect 16(4):e89–e99CrossRef Sweeney A, Greenwood KE, Williams S, Wykes T, Rose DS (2013) Hearing the voices of service user researchers in collaborative qualitative data analysis: the case for multiple coding. Health Expect 16(4):e89–e99CrossRef
Zurück zum Zitat Tan L, Liu C, Li Z, Wang X, Zhou Y, Zhai C (2014) Bug characteristics in open source software. Empir Softw Eng 19:1665–1705CrossRef Tan L, Liu C, Li Z, Wang X, Zhou Y, Zhai C (2014) Bug characteristics in open source software. Empir Softw Eng 19:1665–1705CrossRef
Zurück zum Zitat Wang P, Brown C, Jennings JA, Stolee KT (2020) An empirical study on regular expression bugs. In: Proceedings of the 17th international conference on mining software repositories, MSR ’20, Association for Computing Machinery, New York, pp 103–113, https://doi.org/10.1145/3379597.3387464 Wang P, Brown C, Jennings JA, Stolee KT (2020) An empirical study on regular expression bugs. In: Proceedings of the 17th international conference on mining software repositories, MSR ’20, Association for Computing Machinery, New York, pp 103–113, https://​doi.​org/​10.​1145/​3379597.​3387464
Zurück zum Zitat Zhang Y, Chen Y, Cheung SC, Xiong Y, Zhang L (2018a) An empirical study on tensorflow program bugs. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis, ISSTA 2018, Association for Computing Machinery, New York, pp 129–140, https://doi.org/10.1145/3213846.3213866 Zhang Y, Chen Y, Cheung SC, Xiong Y, Zhang L (2018a) An empirical study on tensorflow program bugs. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis, ISSTA 2018, Association for Computing Machinery, New York, pp 129–140, https://​doi.​org/​10.​1145/​3213846.​3213866
Zurück zum Zitat Zhang Y, Chen Y, Cheung SC, Xiong Y, Zhang L (2018b) An empirical study on tensorflow program bugs. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis, ISSTA 2018, Association for Computing Machinery, New York, pp 129–140, https://doi.org/10.1145/3213846.3213866 Zhang Y, Chen Y, Cheung SC, Xiong Y, Zhang L (2018b) An empirical study on tensorflow program bugs. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis, ISSTA 2018, Association for Computing Machinery, New York, pp 129–140, https://​doi.​org/​10.​1145/​3213846.​3213866
Metadaten
Titel
Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs
verfasst von
Akond Rahman
Dibyendu Brinto Bose
Raunak Shakya
Rahul Pandita
Publikationsdatum
01.07.2023
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 4/2023
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-023-10328-5

Weitere Artikel der Ausgabe 4/2023

Empirical Software Engineering 4/2023 Zur Ausgabe

Premium Partner