IP Library › Granted Patent US 12,682,307
Granted Patent B1
US 12,682,307 · App. 18/590,871 · Granted Jul 14, 2026

Codebase insight generation and commit attribution, analysis, and visualization technology

Inventors: Rahul Subramaniam (Dubai, AE); Vivek Ratan (Dubai Media City, AE); Pranav Ram (Bangalore, IN)
Assignee: DevFactory Innovations FZ-LLC
G06Q10/06398G06F8/71G06F8/73G06Q10/06395
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,682,307
App. No.
18/590,871
Filed
Feb 28, 2024
Granted
Jul 14, 2026
Kind
B1
Art Unit
3624
USPC
705/7.42
Abstract

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.

Claims (38)

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.

Continuity (2)
Continuation 17071798 · Oct 15, 2020
Provisional Application 62915630 · Oct 15, 2019
References Cited (24)
US 8479169B1 · Evans · 2013 [cited by examiner]
US 8776026B2 · Candea · 2014 [cited by examiner]
US 10380004B2 · Liemandt · 2019 [cited by examiner]
US 10560539B1 · Loch · 2020 [cited by examiner]
US 10628584B1 · Norton · 2020 [cited by examiner]
US 20130254746A1 · Balakrishnan · 2013 [cited by examiner]
US 20140282411A1 · Liemandt · 2014 [cited by examiner]
US 20150339217A1 · Avgerinos · 2015 [cited by examiner]
US 20180101465A1 · Keinan · 2018 [cited by examiner]
US 20190138731A1 · Tan · 2019 [cited by examiner]
CN 111177731A · 2020 [cited by examiner]
WO WO2010107671A2 · 2010 [cited by examiner]
WO WO2015065367A1 · 2015 [cited by examiner]
WO WO2017181186A1 · 2017 [cited by examiner]
Wysopal, Chris, et al. The art of software security testing: identifying software security flaws. Pearson Education, 2006. (Year: 2006). [cited by examiner]
Destefanis, Giuseppe, et al. “Smart contracts vulnerabilities: a call for blockchain software engineering ?.” 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE). IEEE, 2018. (Year: 2018). [cited by examiner]
Zhou, Yaqin, and Asankhaya Sharma. “Automated identification of security issues from commit messages and bug reports.” Proceedings of the 2017 11th joint meeting on foundations of software engineering. 2017. (Year: 2017… [cited by examiner]
Notice of Allowance mailed Nov. 28, 2023, filed in U.S. Appl. No. 17/071,798, pp. 1-4. [cited by applicant]
Response to Non-Final Office Action dated Nov. 9, 2023, filed in U.S. Appl. No. 17/071,798, pp. 1-8. [cited by applicant]
Non-Final Office Action mailed May 9, 2023, filed in U.S. Appl. No. 17/071,798, pp. 1-11. [cited by applicant]
Request for Continued Examination dated Mar. 29, 203, filed in U.S. Appl. No. 17/071,798, pp. 1-6. [cited by applicant]
Final Office Action mailed Sep. 29, 2022, filed in U.S. Appl. No. 17/071,798, pp. 1-12. [cited by applicant]
Response to Non-Final Office Action dated Jun. 17, 2022, filed in U.S. Appl. No. 17/071,798, pp. 1-12. [cited by applicant]
Non-Final Office Action mailed Dec. 17, 2021, filed in U.S. Appl. No. 17/071,798, pp. 1-13. [cited by applicant]