-
Notifications
You must be signed in to change notification settings - Fork 3
BugAID Developer Resource
The project commitminer-main
contains the main executables for BugAID:
-
LearningAnalysisMain
builds a dataset of commits -
LearningDataSetMain
clusters the commits
GitProjectAnalysis
traverses the Git project history and triggers a CommitAnalysis
for each commit. A CommitAnalysis
performs an analysis on an entire commit by calling zero or more DomainAnalysis
. For BugAID, the CommitAnalysis instance is built using LearningCommitAnalysisFactory
, which includes two domains: LearningDomainAnalysis
and ComplexityDomainAnalysis
. The LearningDomainAnalysis
is the tool analysis that builds the BugAID dataset.
The DomainAnalysis
abstract class iterates through each file (analyzeFile
) in the commit and diffs the old and new versions using ControlFlowDifferencing
. This builds a CFDContext
, which stores the ASTs and structural change annotations. analyzeFile
then calls a SourceCodeFileAnalysis
for each file, passing it the AST and CFG for the file, which are annotated with structural change information.
Calls LearningFunctionAnalysis
for each function defined in the file.
Visits a function's AST (with visitor pattern) and extracts features from the function to be included in the feature vector for the commit being analyzed.