-
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:
-
LearningAnalysisMainbuilds a dataset of commits -
LearningDataSetMainclusters 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.