Codebase insight generation and commit attribution, analysis, and visualization technology
A method and system include code analysis and visualization technology. The method and system include (i) a repository that stores developer code in a codebase to which many developers and developer teams contribute code over time, (ii) one or more static analysis tools that identify misbehaviors in the codebase from a list of predetermined misbehaviors, (iii) a database that includes each commit that each developer performed on the codebase for a predetermined period of time, (iv) a code attribution tool that employs abstract syntax trees to determine if each commit that a particular developer performs resulted in breaking the code or impairing the code, or results in a failure to correct the code, or if clean code results, and (v) a dashboard tool that enables visualization at different levels of commits with misbehaviors over a predetermined period of time.
1 . A system for testing computer software after modification of one or more portions of code of the computer software, the system comprising:
one or more processors; and
a memory, coupled to the one or more processors, that includes stored in the memory that when executed by the one or more processors causes the computer system to perform operations comprising:
receiving code commits;
representing each code commit in an abstract syntax tree (AST), wherein for each commit, the AST represents a code structure of the commit;
comparing AST's to identify and track developers who made each of the code commits and when changes to the code commits were made;
testing the code commits to identify commits that exhibit predetermined code characteristics;
linking code commits and corresponding misbehaviors by linking the identified code characteristics with the identified developers who made the code commits; and
generating a dashboard that tracks and displays insights associated with the code commit, code characteristics, and identified individuals.
2 . The system of claim 1 , wherein when executed by the one or more processors the code causes the computer system to perform operations further comprising:
determining if the code characteristic of the commit is arson, decay, or clean.
3 . The system of claim 2 , wherein when executed by the one or more processors the code causes the computer system to perform operations further comprising:
determining developer performance corresponding to a number of arson, decay, and clean commits for respective developers; and
displaying, by a dashboard tool stored in the memory, relative developer performance for respective developers.
4 . The system of claim 1 , wherein the insights comprise:
i. when was a negative code commit characteristic of arson and decay introduced;
ii. when was a positive code commit characteristic of clean was introduced;
iii. how long did it take for the negative code commit characteristic to be fixed;
iv. who introduced the negative and positive code commit characteristics; and
v. a comparison of multiple developers.
5 . A non-transitory, computer program product storing code for testing computer software after modification of one or more portions of code of the computer 8 software, wherein when executed, the code causes a computer system to perform operation 9 comprising:
receiving code commits;
representing each code commit in an abstract syntax tree (AST), wherein for each commit, the AST represents a code structure of the commit;
comparing AST's to identify and track developers who made each of the code commits and when changes to the code commits were made;
testing the code commits to identify commits that exhibit predetermined code characteristics;
linking code commits and corresponding misbehaviors by linking the identified code characteristics with the identified developers who made the code commits; and
generating a dashboard that tracks and displays insights associated with the commits, code characteristics, and identified individuals.
6 . The non-transitory, computer program product of claim 5 , wherein when executed by the one or more processors the code causes the computer system to perform operations further comprising:
determining if the code characteristic of the commit is arson, decay, or clean.
7 . The system of claim 2 , wherein when executed by the one or more processors the code causes the computer system to perform operations further comprising:
determining developer performance corresponding to a number of arson, decay, and clean commits for respective developers; and
displaying, by a dashboard tool stored in the memory, relative developer performance for respective developers.
8 . The system of claim 1 , wherein the insights comprise:
i. when was a negative code commit characteristic of arson and decay introduced;
ii. when was a positive code commit characteristic of clean was introduced;
iii. how long did it take for the negative code commit characteristic to be fixed;
iv. who introduced the negative and positive code commit characteristics; and
v. a comparison of multiple developers.