Skip to main content
Top
Published in: Empirical Software Engineering 2/2023

01-03-2023

An empirical assessment of machine learning approaches for triaging reports of static analysis tools

Authors: Sai Yerramreddy, Austin Mordahl, Ugur Koc, Shiyi Wei, Jeffrey S. Foster, Marine Carpuat, Adam A. Porter

Published in: Empirical Software Engineering | Issue 2/2023

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Despite their ability to detect critical bugs in software, static analysis tools’ high false positive rates are a key barrier to their adoption in real-world settings. To improve the usability of these tools, researchers have recently begun to apply machine learning techniques to classify and filter incorrect analysis reports. Although initial results have been promising, the long-term potential and best practices for this line of research are unclear due to the lack of detailed, large-scale empirical evaluation. To partially address this knowledge gap, we present a comparative empirical study of three machine learning techniques—traditional models, recurrent neural networks (RNNs), and graph neural networks (GNNs)—for classifying correct and incorrect results in three static analysis tools—FindSecBugs, CBMC, and JBMC—using multiple datasets. These tools represent different techniques of static analysis, namely taint analysis and model-checking. We also introduce and evaluate new data preparation routines for RNNs and node representations for GNNs. We find that overall classification accuracy reaches a high of 80%–99% for different datasets and application scenarios. We observe that data preparation routines have a positive impact on classification accuracy, with an improvement of up to 5% for RNNs and 16% for GNNs. Overall, our results suggest that neural networks (RNNs or GNNs) that learn over a program’s source code outperform traditional models, although interesting tradeoffs are present among all techniques. Our observations provide insight into the future research needed to speed the adoption of machine learning approaches for static analysis tools in practice.

Dont have a licence yet? Then find out more about our products and how to get one now:

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!

Footnotes
1
This was one of 24 configurations of JBMC that produced the exact same distribution of correct/incorrect results on our dataset (Section 4).
 
2
Two events A and B are statistically independent iff P(AB) = P(A)P(B).
 
3
p(x|y) = (p(y)p(y|x))/p(x)
 
4
Joana uses the intermediate representation from the T.J. Watson Libraries for Analysis (WALA) (IBM 2006).
 
5
Number of composite features include counting the number of variables, ifs, loops, functions defined, functions called, loads, and stores.
 
6
A property of the representation which requires that each variable is assigned exactly once, and every variable is defined before it is used (Rosen et al. 1988).
 
7
[-1] here refers to an array with a single -1 element, if N = 3 and k = 1 then [-1, -1]).
 
Literature
go back to reference Abadi M, Agarwal A, Barham P, Brevdo E, Chen Z, Citro C, Corrado G S, Davis A, Dean J, Devin M, Ghemawat S, Goodfellow I, Harp A, Irving G, Isard M, Jia Y, Jozefowicz R, Kaiser L, Kudlur M, Levenberg J, Mané D, Monga R, Moore S, Murray D, Olah C, Schuster M, Shlens J, Steiner B, Sutskever I, Talwar K, Tucker P, Vanhoucke V, Vasudevan V, Viégas F, Vinyals O, Warden P, Wattenberg M, Wicke M, Yu Y, Zheng X (2015) Tensorflow: large-scale machine learning on heterogeneous systems. https://www.tensorflow.org/ Software available from tensorflow.org Abadi M, Agarwal A, Barham P, Brevdo E, Chen Z, Citro C, Corrado G S, Davis A, Dean J, Devin M, Ghemawat S, Goodfellow I, Harp A, Irving G, Isard M, Jia Y, Jozefowicz R, Kaiser L, Kudlur M, Levenberg J, Mané D, Monga R, Moore S, Murray D, Olah C, Schuster M, Shlens J, Steiner B, Sutskever I, Talwar K, Tucker P, Vanhoucke V, Vasudevan V, Viégas F, Vinyals O, Warden P, Wattenberg M, Wicke M, Yu Y, Zheng X (2015) Tensorflow: large-scale machine learning on heterogeneous systems. https://​www.​tensorflow.​org/​ Software available from tensorflow.org
go back to reference Allamanis M, Barr ET, Bird C, Sutton C (2015) Suggesting accurate method and class names. In: Proceedings of the 2015 10th joint meeting on foundations of software engineering (ESEC/FSE 2015). ACM, New York, pp 38–49, DOI https://doi.org/10.1145/2786805.2786849, (to appear in print) Allamanis M, Barr ET, Bird C, Sutton C (2015) Suggesting accurate method and class names. In: Proceedings of the 2015 10th joint meeting on foundations of software engineering (ESEC/FSE 2015). ACM, New York, pp 38–49, DOI https://​doi.​org/​10.​1145/​2786805.​2786849, (to appear in print)
go back to reference Allamanis M, Brockschmidt M, Khademi M (2017) Learning to represent programs with graphs. arXiv:1711.00740 [cs] Allamanis M, Brockschmidt M, Khademi M (2017) Learning to represent programs with graphs. arXiv:1711.​00740 [cs]
go back to reference Alon U, Zilberstein M, Levy O, Yahav E (2019) code2vec: learning distributed representations of code. In: Proceedings of the ACM on programming languages 3, POPL, pp 1–29 Alon U, Zilberstein M, Levy O, Yahav E (2019) code2vec: learning distributed representations of code. In: Proceedings of the ACM on programming languages 3, POPL, pp 1–29
go back to reference Biere A, Cimatti A, Clarke E, Zhu Y (1999) Symbolic model checking without BDDs. In: Cleaveland WR (ed) Tools and algorithms for the construction and analysis of systems. Springer, Berlin, pp 193–207 Biere A, Cimatti A, Clarke E, Zhu Y (1999) Symbolic model checking without BDDs. In: Cleaveland WR (ed) Tools and algorithms for the construction and analysis of systems. Springer, Berlin, pp 193–207
go back to reference Blackburn SM, Garner R, Hoffmann C, Khang AM, McKinley KS, Bentzur R, Diwan A, Feinberg D, Frampton D, Guyer SZ, Hirzel M, Hosking A, Jump M, Lee H, Moss JEB, Phansalkar A, Stefanovic D, VanDrunen T, von Dincklage D, Wiedermann B (2006) The DaCapo benchmarks: Java benchmarking development and analysis. In: Proceedings of the 21st annual ACM SIGPLAN conference on object-oriented programming systems, languages, and applications (OOPSLA ’06). ACM, New York, pp 169–190, DOI https://doi.org/10.1145/1167473.1167488, (to appear in print) Blackburn SM, Garner R, Hoffmann C, Khang AM, McKinley KS, Bentzur R, Diwan A, Feinberg D, Frampton D, Guyer SZ, Hirzel M, Hosking A, Jump M, Lee H, Moss JEB, Phansalkar A, Stefanovic D, VanDrunen T, von Dincklage D, Wiedermann B (2006) The DaCapo benchmarks: Java benchmarking development and analysis. In: Proceedings of the 21st annual ACM SIGPLAN conference on object-oriented programming systems, languages, and applications (OOPSLA ’06). ACM, New York, pp 169–190, DOI https://​doi.​org/​10.​1145/​1167473.​1167488, (to appear in print)
go back to reference Burato E, Ferrara P, Spoto F (2017) Security analysis of the OWASP benchmark with julia. In: Proceedings of ITASEC17, the rst Italian conference on security, Venice, Italy Burato E, Ferrara P, Spoto F (2017) Security analysis of the OWASP benchmark with julia. In: Proceedings of ITASEC17, the rst Italian conference on security, Venice, Italy
go back to reference Clarke E, Kroening D, Lerda F (2004) A tool for checking ANSIC programs. In: Jensen K, Podelski A (eds) Tools and algorithms for the construction and analysis of systems (TACAS 2004) (Lecture Notes in Computer Science), vol 2988. Springer, pp 168–176 Clarke E, Kroening D, Lerda F (2004) A tool for checking ANSIC programs. In: Jensen K, Podelski A (eds) Tools and algorithms for the construction and analysis of systems (TACAS 2004) (Lecture Notes in Computer Science), vol 2988. Springer, pp 168–176
go back to reference Cordeiro L, Kesseli P, Kroening D, Schrammel P, Marek T (2018) JBMC: a bounded model checking tool for verifying java bytecode. In: Computer aided verification (CAV) (LNCS), vol 10981. Springer International Publishing, Cham, pp 183–190 Cordeiro L, Kesseli P, Kroening D, Schrammel P, Marek T (2018) JBMC: a bounded model checking tool for verifying java bytecode. In: Computer aided verification (CAV) (LNCS), vol 10981. Springer International Publishing, Cham, pp 183–190
go back to reference Dam HK, Tran T, Pham TTM (2016) A deep language model for software code. In: FSE 2016: proceedings of the foundations software engineering international symposium, pp 1–4 Dam HK, Tran T, Pham TTM (2016) A deep language model for software code. In: FSE 2016: proceedings of the foundations software engineering international symposium, pp 1–4
go back to reference Eibe F, Hall MA, Witten IH (2016) The WEKA workbench. Morgan Kaufmann Eibe F, Hall MA, Witten IH (2016) The WEKA workbench. Morgan Kaufmann
go back to reference Feng Z, Guo D, Tang D, Duan N, Feng X, Gong M, Shou L, Qin B, Liu T, Jiang D, Zhou M (2020) Code- BERT: a pre-trained model for programming and natural languages. arXiv:cs.CL/2002.08155 Feng Z, Guo D, Tang D, Duan N, Feng X, Gong M, Shou L, Qin B, Liu T, Jiang D, Zhou M (2020) Code- BERT: a pre-trained model for programming and natural languages. arXiv:cs.​CL/​2002.​08155
go back to reference Fowkes J, Sutton C (2016) Parameter-free probabilistic API mining across GitHub. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering (FSE 2016). ACM, New York, pp 254–265, DOI https://doi.org/10.1145/2950290.2950319, (to appear in print) Fowkes J, Sutton C (2016) Parameter-free probabilistic API mining across GitHub. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering (FSE 2016). ACM, New York, pp 254–265, DOI https://​doi.​org/​10.​1145/​2950290.​2950319, (to appear in print)
go back to reference Gers FA, Schmidhuber J, Fred C (2000) Learning to forget: continual prediction with LSTM. Neural Comput 12(10):2451–2471CrossRef Gers FA, Schmidhuber J, Fred C (2000) Learning to forget: continual prediction with LSTM. Neural Comput 12(10):2451–2471CrossRef
go back to reference Goldberg Y (2017) Neural network methods for natural language processing. Synth Lect Hum Lang Technol 10(1):1–309CrossRef Goldberg Y (2017) Neural network methods for natural language processing. Synth Lect Hum Lang Technol 10(1):1–309CrossRef
go back to reference Goldberg Y, Levy O (2014) word2vec Explained: deriving Mikolov et al.’s negative-sampling word-embedding method. arXiv:1402.3722 Goldberg Y, Levy O (2014) word2vec Explained: deriving Mikolov et al.’s negative-sampling word-embedding method. arXiv:1402.​3722
go back to reference Gori M, Monfardini G, Scarselli F (2005) A new model for learning in graph domains. In: 2005 IEEE International joint conference on neural networks, 2005. IJCNN’05. Proceedings, vol 2. IEEE, pp 729–734 Gori M, Monfardini G, Scarselli F (2005) A new model for learning in graph domains. In: 2005 IEEE International joint conference on neural networks, 2005. IJCNN’05. Proceedings, vol 2. IEEE, pp 729–734
go back to reference Gu X, Zhang H, Zhang D, Kim S (2016) Deep API learning. In: Proceedings of the 2016 24th ACM SIGSOFT International symposium on foundations of software engineering. ACM, pp 631–642 Gu X, Zhang H, Zhang D, Kim S (2016) Deep API learning. In: Proceedings of the 2016 24th ACM SIGSOFT International symposium on foundations of software engineering. ACM, pp 631–642
go back to reference Haque S, LeClair A, Wu L, McMillan C (2020) Improved automatic summarization of subroutines via attention to file context. In: Proceedings of the 17th international conference on mining software repositories, DOI https://doi.org/10.1145/3379597.3387449, (to appear in print) Haque S, LeClair A, Wu L, McMillan C (2020) Improved automatic summarization of subroutines via attention to file context. In: Proceedings of the 17th international conference on mining software repositories, DOI https://​doi.​org/​10.​1145/​3379597.​3387449, (to appear in print)
go back to reference Heckman SS (2009) A systematic model building process for predicting actionable static analysis alerts. North Carolina State University Heckman SS (2009) A systematic model building process for predicting actionable static analysis alerts. North Carolina State University
go back to reference Hochreiter S, Schmidhuber J (1997) Long short-term memory. Neural Comput 9(8):1735CrossRef Hochreiter S, Schmidhuber J (1997) Long short-term memory. Neural Comput 9(8):1735CrossRef
go back to reference Johnson A, Waye L, Moore S, Chong S (2015) Exploring and enforcing security guarantees via program dependence graphs. In: Proceedings of the 36th ACM SIGPLAN conference on programming language design and implementation (PLDI ’15). ACM, New York, pp 291–302, DOI https://doi.org/10.1145/2737924.2737957, (to appear in print) Johnson A, Waye L, Moore S, Chong S (2015) Exploring and enforcing security guarantees via program dependence graphs. In: Proceedings of the 36th ACM SIGPLAN conference on programming language design and implementation (PLDI ’15). ACM, New York, pp 291–302, DOI https://​doi.​org/​10.​1145/​2737924.​2737957, (to appear in print)
go back to reference Jozefowicz R, Zaremba W, Sutskever I (2015) An empirical exploration of recurrent network architectures. In: Proceedings of the 32nd international conference on international conference on machine learning—volume 37 (ICML’15). JMLR.org, pp 2342–2350 Jozefowicz R, Zaremba W, Sutskever I (2015) An empirical exploration of recurrent network architectures. In: Proceedings of the 32nd international conference on international conference on machine learning—volume 37 (ICML’15). JMLR.org, pp 2342–2350
go back to reference Kang HJ, Aw KL, Lo D (2022) Detecting false alarms from automatic static analysis tools: how far are we?. In: Proceedings of the 44th international conference on software engineering (ICSE ’22). Association for Computing Machinery, New York, pp 698–709, DOI https://doi.org/10.1145/3510003.3510214 Kang HJ, Aw KL, Lo D (2022) Detecting false alarms from automatic static analysis tools: how far are we?. In: Proceedings of the 44th international conference on software engineering (ICSE ’22). Association for Computing Machinery, New York, pp 698–709, DOI https://​doi.​org/​10.​1145/​3510003.​3510214
go back to reference Koc U, Saadatpanah P, Foster JS, Porter AA (2017) Learning a classifier for false positive error reports emitted by static code analysis tools. In: Proceedings of the 1st ACM SIGPLAN international workshop on machine learning and programming languages (MAPL 2017). ACM, New York, pp 35–42, DOI https://doi.org/10.1145/3088525.3088675 Koc U, Saadatpanah P, Foster JS, Porter AA (2017) Learning a classifier for false positive error reports emitted by static code analysis tools. In: Proceedings of the 1st ACM SIGPLAN international workshop on machine learning and programming languages (MAPL 2017). ACM, New York, pp 35–42, DOI https://​doi.​org/​10.​1145/​3088525.​3088675
go back to reference Koc U, Wei S, Foster JS, Carpuat M, Porter AA (2019) An empirical assessment of machine learning approaches for triaging reports of a java static analysis tool. In: 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST), pp 288–299, DOI https://doi.org/10.1109/ICST.2019.00036 Koc U, Wei S, Foster JS, Carpuat M, Porter AA (2019) An empirical assessment of machine learning approaches for triaging reports of a java static analysis tool. In: 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST), pp 288–299, DOI https://​doi.​org/​10.​1109/​ICST.​2019.​00036
go back to reference Koc U, Mordahl A, Wei S, Foster JS, Porter A (2021) SATune: study-driven auto-tuning approach for configurable software verification tools. In: Proceedings of the 36th IEEE/ACM international conference on automated software engineering (ASE 2021). ACM Koc U, Mordahl A, Wei S, Foster JS, Porter A (2021) SATune: study-driven auto-tuning approach for configurable software verification tools. In: Proceedings of the 36th IEEE/ACM international conference on automated software engineering (ASE 2021). ACM
go back to reference Kroening D, Tautschnig M (2014) CBMC—C bounded model checker. In: Ábrahám E, Havelund K (eds) Tools and algorithms for the construction and analysis of systems. Springer, Berlin, pp 389–391 Kroening D, Tautschnig M (2014) CBMC—C bounded model checker. In: Ábrahám E, Havelund K (eds) Tools and algorithms for the construction and analysis of systems. Springer, Berlin, pp 389–391
go back to reference Kushman N, Barzilay R (2013) Using semantic unification to generate regular expressions from natural language. In: Proceedings of the 2013 conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp 826–836 Kushman N, Barzilay R (2013) Using semantic unification to generate regular expressions from natural language. In: Proceedings of the 2013 conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp 826–836
go back to reference Li Y, Tarlow D, Brockschmidt M, Zemel R (2015b) Gated graph sequence neural networks. arXiv:1511.05493 Li Y, Tarlow D, Brockschmidt M, Zemel R (2015b) Gated graph sequence neural networks. arXiv:1511.​05493
go back to reference Ling W, Blunsom P, Grefenstette E, Hermann KM, Kociskỳ T, Wang F, Senior A (2016) Latent predictor networks for code generation. In: Proceedings of the 54th annual meeting of the association for computational linguistics (volume 1: long papers), vol 1, pp 599–609 Ling W, Blunsom P, Grefenstette E, Hermann KM, Kociskỳ T, Wang F, Senior A (2016) Latent predictor networks for code generation. In: Proceedings of the 54th annual meeting of the association for computational linguistics (volume 1: long papers), vol 1, pp 599–609
go back to reference Mandic DP, Chambers J (2001) Recurrent neural networks for prediction: learning algorithms architectures and stability. Wiley, New YorkCrossRef Mandic DP, Chambers J (2001) Recurrent neural networks for prediction: learning algorithms architectures and stability. Wiley, New YorkCrossRef
go back to reference Naik M (2020) Petablox: large-scale software analysis and analytics using datalog. Technical Report. Georgia Tech Research Inst Atlanta Atlanta United States Naik M (2020) Petablox: large-scale software analysis and analytics using datalog. Technical Report. Georgia Tech Research Inst Atlanta Atlanta United States
go back to reference Nguyen TT, Nguyen AT, Nguyen HA, Nguyen TN (2013) A statistical semantic language model for source code. In: Proceedings of the 2013 9th joint meeting on foundations of software engineering (ESEC/FSE 2013). ACM, New York, pp 532–542, DOI https://doi.org/10.1145/2491411.2491458 Nguyen TT, Nguyen AT, Nguyen HA, Nguyen TN (2013) A statistical semantic language model for source code. In: Proceedings of the 2013 9th joint meeting on foundations of software engineering (ESEC/FSE 2013). ACM, New York, pp 532–542, DOI https://​doi.​org/​10.​1145/​2491411.​2491458
go back to reference Panthaplackel S, Nie P, Gligoric M, Li JJ, Mooney RJ (2020) Learning to update natural language comments based on code changes. arXiv:cs.CL/2004.12169 Panthaplackel S, Nie P, Gligoric M, Li JJ, Mooney RJ (2020) Learning to update natural language comments based on code changes. arXiv:cs.​CL/​2004.​12169
go back to reference Prlić A, Yates A, Bliven SE, Rose PW, Jacobsen J, Troshin PV, Chapman M, Gao J, Koh CH, Foisy S et al (2012) Biojava: an open-source framework for bioinformatics in 2012. Bioinformatics 28(20):2693–2695CrossRef Prlić A, Yates A, Bliven SE, Rose PW, Jacobsen J, Troshin PV, Chapman M, Gao J, Koh CH, Foisy S et al (2012) Biojava: an open-source framework for bioinformatics in 2012. Bioinformatics 28(20):2693–2695CrossRef
go back to reference Quinlan J R (2014) C4.5: programs for machine learning. Elsevier Quinlan J R (2014) C4.5: programs for machine learning. Elsevier
go back to reference Raghothaman M, Kulkarni S, Heo K, Naik M (2018) User-guided program reasoning using bayesian inference. In: Proceedings of the 39th ACM SIGPLAN conference on programming language design and implementation (PLDI 2018). ACM, New York, pp 722–735, DOI https://doi.org/10.1145/3192366.3192417 Raghothaman M, Kulkarni S, Heo K, Naik M (2018) User-guided program reasoning using bayesian inference. In: Proceedings of the 39th ACM SIGPLAN conference on programming language design and implementation (PLDI 2018). ACM, New York, pp 722–735, DOI https://​doi.​org/​10.​1145/​3192366.​3192417
go back to reference Raychev V, Vechev M, Krause A (2015) Predicting program properties from “Big code”. In: Proceedings of the 42nd annual ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL ’15). ACM, New York, pp 111–124, DOI https://doi.org/10.1145/2676726.2677009 Raychev V, Vechev M, Krause A (2015) Predicting program properties from “Big code”. In: Proceedings of the 42nd annual ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL ’15). ACM, New York, pp 111–124, DOI https://​doi.​org/​10.​1145/​2676726.​2677009
go back to reference Rish I, et al. (2001) An empirical study of the naive Bayes classifier. In: IJCAI 2001 Workshop on empirical methods in artificial intelligence, vol 3, pp 41–46 Rish I, et al. (2001) An empirical study of the naive Bayes classifier. In: IJCAI 2001 Workshop on empirical methods in artificial intelligence, vol 3, pp 41–46
go back to reference Rosen BK, Wegman MN, Zadeck FK (1988) Global value numbers and redundant computations. In: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL ’88). ACM, New York, pp 12–27, DOI https://doi.org/10.1145/73560.73562 Rosen BK, Wegman MN, Zadeck FK (1988) Global value numbers and redundant computations. In: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL ’88). ACM, New York, pp 12–27, DOI https://​doi.​org/​10.​1145/​73560.​73562
go back to reference Rosenblatt F (1958) The perceptron: a probabilistic model for information storage and organization in the brain. Psychol Rev 65(6):386CrossRef Rosenblatt F (1958) The perceptron: a probabilistic model for information storage and organization in the brain. Psychol Rev 65(6):386CrossRef
go back to reference Russell SJ, Norvig P (2016) Artificial intelligence: a modern approach. Pearson Education Limited, MalaysiaMATH Russell SJ, Norvig P (2016) Artificial intelligence: a modern approach. Pearson Education Limited, MalaysiaMATH
go back to reference Sak H, Senior A, Beaufays F (2014) Long short-term memory recurrent neural network architectures for large scale acoustic modeling. In: Fifteenth annual conference of the international speech communication association Sak H, Senior A, Beaufays F (2014) Long short-term memory recurrent neural network architectures for large scale acoustic modeling. In: Fifteenth annual conference of the international speech communication association
go back to reference Theano Development Team (2016) Theano: a python framework for fast computation of mathematical expressions. arXiv:1605.02688 Theano Development Team (2016) Theano: a python framework for fast computation of mathematical expressions. arXiv:1605.​02688
go back to reference Tripp O, Guarnieri S, Pistoia M, Aleksandr A (2014) ALETHEIA: improving the usability of static security analysis. In: Proceedings of the 2014 ACM SIGSAC conference on computer and communications security (CCS ’14). ACM, New York, pp 762–774, DOI https://doi.org/10.1145/2660267.2660339 Tripp O, Guarnieri S, Pistoia M, Aleksandr A (2014) ALETHEIA: improving the usability of static security analysis. In: Proceedings of the 2014 ACM SIGSAC conference on computer and communications security (CCS ’14). ACM, New York, pp 762–774, DOI https://​doi.​org/​10.​1145/​2660267.​2660339
go back to reference Utture A, Liu S, Kalhauge CG, Palsberg J (2022) Striking a balance: pruning false-positives from static call graphs. In: Proceedings of the 44th international conference on software engineering (ICSE ’22). Association for Computing Machinery, New York, pp 2043–2055, DOI https://doi.org/10.1145/3510003.3510166 Utture A, Liu S, Kalhauge CG, Palsberg J (2022) Striking a balance: pruning false-positives from static call graphs. In: Proceedings of the 44th international conference on software engineering (ICSE ’22). Association for Computing Machinery, New York, pp 2043–2055, DOI https://​doi.​org/​10.​1145/​3510003.​3510166
go back to reference Wan Y, Shu J, Sui Y, Xu G, Zhao Z, Wu J, Yu PS (2019) Multi-modal attention network learning for semantic source code retrieval. arXiv:cs.SE/1909.13516 Wan Y, Shu J, Sui Y, Xu G, Zhao Z, Wu J, Yu PS (2019) Multi-modal attention network learning for semantic source code retrieval. arXiv:cs.​SE/​1909.​13516
go back to reference Wang J, Wang S, Wang Q (2018) Is there a “golden” feature set for static warning identification?: an experimental evaluation. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement (ESEM ’18). ACM, New York, p Article 17, 10 pp, DOI https://doi.org/10.1145/3239235.3239523, (to appear in print) Wang J, Wang S, Wang Q (2018) Is there a “golden” feature set for static warning identification?: an experimental evaluation. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement (ESEM ’18). ACM, New York, p Article 17, 10 pp, DOI https://​doi.​org/​10.​1145/​3239235.​3239523, (to appear in print)
go back to reference Wang W, Zhang Y, Zeng Z, Xu G (2020) Trans3̂: a transformer-based framework for unifying code summarization and code search. arXiv:cs.SE/2003.03238 Wang W, Zhang Y, Zeng Z, Xu G (2020) Trans3̂: a transformer-based framework for unifying code summarization and code search. arXiv:cs.​SE/​2003.​03238
go back to reference Weiser M (1981) Program slicing. In: Proceedings of the 5th international conference on software engineering. IEEE Press, pp 439–449 Weiser M (1981) Program slicing. In: Proceedings of the 5th international conference on software engineering. IEEE Press, pp 439–449
go back to reference White M, Tufano M, Vendome C, Poshyvanyk D (2016) Deep learning code fragments for code clone detection. In: Proceedings of the 31st IEEE/ACM international conference on automated software engineering (ASE 2016). ACM, New York, pp 87–98, DOI https://doi.org/10.1145/2970276.2970326 White M, Tufano M, Vendome C, Poshyvanyk D (2016) Deep learning code fragments for code clone detection. In: Proceedings of the 31st IEEE/ACM international conference on automated software engineering (ASE 2016). ACM, New York, pp 87–98, DOI https://​doi.​org/​10.​1145/​2970276.​2970326
go back to reference Xypolytos A, Xu H, Vieira B, Ali-Eldin AMT (2017) A framework for combining and ranking static analysis tool findings based on tool performance statistics. In: 2017 IEEE International conference on software quality, reliability and security companion (QRS-c). IEEE, pp 595–596 Xypolytos A, Xu H, Vieira B, Ali-Eldin AMT (2017) A framework for combining and ranking static analysis tool findings based on tool performance statistics. In: 2017 IEEE International conference on software quality, reliability and security companion (QRS-c). IEEE, pp 595–596
go back to reference Ye X, Shen H, Ma X, Bunescu R, Liu C (2016) From word embeddings to document similarities for improved information retrieval in software engineering. In: Proceedings of the 38th international conference on software engineering (ICSE ’16). ACM, New York, pp 404–415, DOI https://doi.org/10.1145/2884781.2884862 Ye X, Shen H, Ma X, Bunescu R, Liu C (2016) From word embeddings to document similarities for improved information retrieval in software engineering. In: Proceedings of the 38th international conference on software engineering (ICSE ’16). ACM, New York, pp 404–415, DOI https://​doi.​org/​10.​1145/​2884781.​2884862
go back to reference Yüksel U, Sözer H (2013) Automated classification of static code analysis alerts: a case study. In: 2013 IEEE International conference on software maintenance, pp 532–535 Yüksel U, Sözer H (2013) Automated classification of static code analysis alerts: a case study. In: 2013 IEEE International conference on software maintenance, pp 532–535
Metadata
Title
An empirical assessment of machine learning approaches for triaging reports of static analysis tools
Authors
Sai Yerramreddy
Austin Mordahl
Ugur Koc
Shiyi Wei
Jeffrey S. Foster
Marine Carpuat
Adam A. Porter
Publication date
01-03-2023
Publisher
Springer US
Published in
Empirical Software Engineering / Issue 2/2023
Print ISSN: 1382-3256
Electronic ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-022-10253-z

Other articles of this Issue 2/2023

Empirical Software Engineering 2/2023 Go to the issue

Premium Partner