2007 · 69 citations · 32 references
ComputingComputer ScienceData AnalyticsData MiningSoftware EngineeringControl-flow AnalysisDefect DetectionFrequent Pattern MiningGraph MiningSoftware TestingStatic Code AnalysisAutomated Bug FindingEmpirical EvaluationFrequent Itemset MiningGraph MinorsProgram Dependence AnalysisProgram Dependence GraphsProgram Dependency Graph AnalysisSubgraph Mining
Neglected conditions are an important but difficult-to-find class of software defects. This paper presents a novel approach to revealing neglected conditions that integrates static program analysis and advanced data mining techniques to discover implicit conditional rules in a code base and to discover rule violations that indicate neglected conditions. The approach requires the user to indicate minimal constraints on the context of the rules to be sought, rather than specific rule templates. To permit this generality, rules are modeled as graph minors of program dependence graphs, and both frequent itemset mining and frequent subgraph mining algorithms are employed to identify candidate rules. We report the results of an empirical evaluation of the approach in which it was used to discover conditional rules and neglected conditions in ~25,000 lines of source code.
32
gSpan: graph-based substructure pattern mining
Xifeng Yan, Jiawei Han · 2003 · 2K citations
Dawson Engler, David Yu Chen, Seth Hallem et al. · 2001 · 747 citations
Identifying similar code with program dependence graphs
Jens Krinke · 2002 · 622 citations
Efficient mining of frequent subgraphs in the presence of isomorphism
Jun Huan, Wei Wang, Jan F. Prins · 2004 · 617 citations