On the recall of static call graph construction in practice
Li Sui, Jens Dietrich, Amjed Tahir, George Fourtounis
Abstract
Static analyses have problems modelling dynamic language features soundly while retaining acceptable precision. The problem is well-understood in theory, but there is little evidence on how this impacts the analysis of real-world programs. We have studied this issue for call graph construction on a set of 31 real-world Java programs using an oracle of actual program behaviour recorded from executions of built-in and synthesised test cases with high coverage, have measured the recall that is being achieved by various static analysis algorithms and configurations, and investigated which language features lead to static analysis false negatives.
Topics & Concepts
Static analysisComputer scienceCall graphOracleJavaRecallGraphSet (abstract data type)Precision and recallProgramming languageTheoretical computer scienceArtificial intelligenceLinguisticsPhilosophySoftware Testing and Debugging TechniquesSoftware Engineering ResearchSoftware Reliability and Analysis Research