IP Library › Granted Patent US 12,417,165
Granted Patent B2
US 12,417,165 · App. 17/468,996 · Granted Sep 16, 2025

Systems and methods for automated code validation

Inventors: Anil Kumar Pandurangarao (Buffalo Grove, IL); Sudharshun Ravichander (Des Plaines, IL)
Assignee: Allstate Insurance Company
G06F11/3676G06F11/3684G06F11/3688G06F11/3692G06F40/151G06V30/413
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,417,165
App. No.
17/468,996
Granted
Sep 16, 2025
Kind
B2
Abstract

Systems and methods in accordance with embodiments of the invention can automatically track the creation of documents, such as source code files and unit tests, along with the development of those documents. The document creation and development workflow can be automatically validated against a defined set of standards to ensure that the documents are properly created. The review of the documents can also be automatically validated to ensure that the review process is properly completed. A variety of metrics can be generated regarding errors and issues identified during the validation processes. These metrics can be used to identify common issues, automatically generate proactive suggestions to avoid issues during document creation and testing, and/or generate developer profiles indicating the performance of particular developers.

Claims (70)

1. A method, comprising:

generating, by a computing device, a document based on document requirement data;

identifying, by the computing device, a set of unit tests based on the document requirement data and corresponding to the document;

predicting, via a machine learning model and based on a machine learning classifier trained on at least a dataset of common errors, in real-time an error within the document without compiling the document;

generating, via the machine learning model, a correction recommendation to correct the error;

predicting, without compiling or testing the document, a break build likelihood indicative that the correction recommendation to the document would break a build process by causing a stored associated document in version control to fail to compile post commit;

receiving a revision of the document based on the correction recommendation and the break build likelihood of the correction recommendation;

calculating, by the computing device, a code coverage metric based on the set of unit tests based on the document requirement data performed on the document and passed;

calculating, by the computing device, one or more quality metrics based on zero or more linter errors in the document; and

when the code coverage metric exceeds a coverage threshold value and the one or more quality metrics exceeds a quality threshold value, transmitting, by the computing device and to a version control system, a check-in request comprising the document and the set of unit tests.

2. The method of claim 1 , wherein:

the document requirement data comprises an indication of a first creation date of the document and an indication of a second creation date of the set of unit tests; and

validating the document further comprises determining that the second creation date is prior to the first creation date.

3. The method of claim 1 , wherein the method further comprises determining an amount of time spent refactoring the document.

4. The method of claim 1 , wherein the method further comprises determining a number of refactors of the document.

5. The method of claim 1 , further comprising:

determining, by the computing device, a set of coding errors as the zero or more linter errors in the document by linting the document; and

validating the document based on the set of coding errors.

6. The method of claim 1 , further comprising:

transmitting, by the computing device, validation results for the document;

obtaining, by the computing device, feedback determined based on the validation results; and

providing, by the computing device, the feedback.

7. The method of claim 6 , wherein the feedback is provided in real-time.

8. A computing device, comprising:

a processor; and

a memory in communication with the processor and storing instructions that, when executed by the processor, cause the computing device to:

generate a document based on document requirement data;

identify a set of unit tests based on the document requirement data and corresponding to the document;

predict, via a machine learning model and based on a machine learning classifier trained on at least a dataset of common errors, in real-time an error within the document without compiling the document;

generate, via the machine learning model, a correction recommendation to correct the error;

predict, without compiling or testing the document, a break build likelihood indicative that the correction recommendation to the document would break a build process by causing a stored associated document in version control to fail to compile post commit;

receive a revision of the document based on the correction recommendation and the break build likelihood of the correction recommendation;

calculate a code coverage metric based on the set of unit tests based on the document requirement data performed on the document and passed;

calculate one or more quality metrics based on zero or more linter errors in the document; and

when the code coverage metric exceeds a coverage threshold value and the one or more quality metrics exceeds a quality threshold value, transmit, to a version control system, a check-in request comprising the document and the set of unit tests.

9. The computing device of claim 8 , wherein:

the document requirement data comprises an indication of a first creation date of the document and an indication of a second creation date of the set of unit tests; and

the instructions, when executed by the processor, further cause the computing device to validate the document by determining that the second creation date is prior to the first creation date.

10. The computing device of claim 8 , wherein the instructions, when executed by the processor, further cause the computing device to validate the document by determining an amount of time spent refactoring the document.

11. The computing device of claim 8 , wherein the instructions, when executed by the processor, further cause the computing device to validate the document by determining a number of refactors of the document.

12. The computing device of claim 8 , wherein the instructions, when executed by the processor, further cause the computing device to:

determine, by the computing device, a set of coding errors as the zero or more linter errors in the document by linting the document; and

validate the document based on the set of coding errors.

13. The computing device of claim 8 , wherein the instructions, when executed by the processor, further cause the computing device to:

transmit validation results for the document;

obtain feedback determined based on the validation results; and

provide the feedback.

14. The computing device of claim 13 , wherein the feedback is provided in real-time.

15. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform steps comprising:

generating a document based on document requirement data;

identifying a set of unit tests based on the document requirement data and corresponding to the document;

predicting, via a machine learning model and based on a machine learning classifier trained on at least a dataset of common errors, in real-time an error within the document without compiling the document;

generating, via the machine learning model, a correction recommendation to correct the error;

predicting, without compiling or testing the document, a break build likelihood indicative that the correction recommendation to the document would break a build process by causing a stored associated document in version control to fail to compile post commit;

receiving a revision of the document based on the correction recommendation and the break build likelihood of the correction recommendation;

calculating a code coverage metric based on the set of unit tests based on the document requirement data performed on the document and passed;

calculating one or more quality metrics based on zero or more linter errors in the document; and

when the code coverage metric exceeds a coverage threshold value and the one or more quality metrics exceeds a quality threshold value, transmitting, to a version control system, a check-in request comprising the document and the set of unit tests.

16. The non-transitory machine-readable medium of claim 15 , wherein:

the document requirement data comprises an indication of a first creation date of the document and an indication of a second creation date of the set of unit tests; and

validating the document further comprises determining that the second creation date is prior to the first creation date.

17. The non-transitory machine-readable medium of claim 15 , wherein the steps further comprises determining an amount of time spent refactoring the document.

18. The non-transitory machine-readable medium of claim 15 , wherein the steps further comprises determining a number of refactors of the document.

19. The non-transitory machine-readable medium of claim 15 , wherein the instructions, when executed by one or more processors, further cause the one or more processors to perform steps comprising:

determining a set of coding errors as the zero or more linter errors in the document by linting the document; and

validating the document based on the set of coding errors.

20. The non-transitory machine-readable medium of claim 15 , wherein the instructions, when executed by one or more processors, further cause the one or more processors to perform steps comprising:

transmitting validation results for the document;

obtaining feedback determined based on the validation results; and

providing, in real-time, the feedback.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2025
From: PANDURANGARAO, ANIL KUMAR; RAVICHANDER, SUDHARSHUN
To: ALLSTATE INSURANCE COMPANY
Reel/Frame 071755/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2021
From: PANDURANGARAO, ANIL KUMAR; RAVICHANDER, SUDHNRSHUN.
To: ALLSTATE INSURANCE COMPANY
Reel/Frame 057613/0707 →
Continuity (3)
Continuation 16743394 · Jan 15, 2020
Provisional Application 62810071 · Feb 25, 2019
Related Publication 20210406448A1 · Dec 30, 2021
References Cited (100)
US 6071316A · Goossen et al. · 2000 [cited by applicant]
US 6625760B1 · Man et al. · 2003 [cited by applicant]
US 6959432B2 · Crocker · 2005 [cited by applicant]
US 6986125B2 · Apuzzo et al. · 2006 [cited by applicant]
US 7490319B2 · Blackwell et al. · 2009 [cited by applicant]
US 7596778B2 · Kolawa et al. · 2009 [cited by applicant]
US 8347267B2 · Givoni · 2013 [cited by applicant]
US 8490194B2 · Moskovitch et al. · 2013 [cited by applicant]
US 8799868B2 · Ndem et al. · 2014 [cited by applicant]
US 8806619B2 · Lomont et al. · 2014 [cited by applicant]
US 8997061B1 · Davison · 2015 [cited by examiner]
US 9009834B1 · Ren et al. · 2015 [cited by applicant]
US 9201646B2 · Balachandran · 2015 [cited by applicant]
US 9235494B2 · Gautam · 2016 [cited by applicant]
US 9275291B2 · Shulman et al. · 2016 [cited by applicant]
US 9378112B2 · Banerjee et al. · 2016 [cited by applicant]
US 9396094B2 · Browne et al. · 2016 [cited by applicant]
US 9405661B1 · Chirgwin · 2016 [cited by examiner]
US 9720687B2 · Muthusamy · 2017 [cited by applicant]
US 10140886B2 · Du et al. · 2018 [cited by applicant]
US 10310968B2 · Biddle et al. · 2019 [cited by applicant]
US 10474455B2 · Makkar · 2019 [cited by applicant]
US 10657023B1 · Willson · 2020 [cited by examiner]
US 10678678B1 · Tsoukalas · 2020 [cited by examiner]
US 10915437B1 · Arguelles · 2021 [cited by examiner]
US 11334351B1 · Pandurangarao · 2022 [cited by examiner]
US 11392844B1 · Rao · 2022 [cited by examiner]
US 11494285B1 · Manthey · 2022 [cited by examiner]
US 11544048B1 · Ravindran · 2023 [cited by examiner]
US 20070234308A1 · Feigenbaum · 2007 [cited by applicant]
US 20080120602A1 · Comstock · 2008 [cited by examiner]
US 20080263505A1 · StClair et al. · 2008 [cited by applicant]
US 20090055804A1 · Blaschek et al. · 2009 [cited by applicant]
US 20090070734A1 · Dixon · 2009 [cited by examiner]
US 20090138855A1 · Huene · 2009 [cited by examiner]
US 20090144698A1 · Fanning · 2009 [cited by examiner]
US 20090158256A1 · Ponsford · 2009 [cited by examiner]
US 20090172649A1 · Teplitsky · 2009 [cited by examiner]
US 20090265694A1 · Bakowski · 2009 [cited by examiner]
US 20100192128A1 · Schloegel · 2010 [cited by examiner]
US 20110016452A1 · Gorthi et al. · 2011 [cited by applicant]
US 20110283260A1 · Bucuvalas · 2011 [cited by applicant]
US 20120042210A1 · Glaser · 2012 [cited by examiner]
US 20120260230A1 · Choudhary et al. · 2012 [cited by applicant]
US 20130024847A1 · Browne · 2013 [cited by examiner]
US 20130254746A1 · Balakrishnan · 2013 [cited by examiner]
US 20130311968A1 · Sharma · 2013 [cited by applicant]
US 20140157239A1 · Goetsch · 2014 [cited by applicant]
US 20140201703A1 · Boden · 2014 [cited by examiner]
US 20140282353A1 · Jubran · 2014 [cited by examiner]
US 20140282411A1 · Liemandt · 2014 [cited by examiner]
US 20150127983A1 · Trobough et al. · 2015 [cited by applicant]
US 20150169431A1 · Ivankovic · 2015 [cited by examiner]
US 20150186253A1 · Abraham · 2015 [cited by examiner]
US 20150363295A1 · Gopalakrishnan · 2015 [cited by examiner]
US 20160063162A1 · Lu · 2016 [cited by examiner]
US 20160179659A1 · Champlin-Scharff · 2016 [cited by examiner]
US 20160321586A1 · Herzig · 2016 [cited by examiner]
US 20170060733A1 · Abadi · 2017 [cited by examiner]
US 20170075794A1 · Ramakrishna · 2017 [cited by examiner]
US 20170083430A1 · Meerovich · 2017 [cited by examiner]
US 20170132121A1 · Cooper · 2017 [cited by examiner]
US 20170329687A1 · Chorley et al. · 2017 [cited by applicant]
US 20180101468A1 · Tzabari · 2018 [cited by examiner]
US 20180189679A1 · Kang et al. · 2018 [cited by applicant]
US 20180275989A1 · Kakkad et al. · 2018 [cited by applicant]
US 20180276103A1 · Woulfe · 2018 [cited by examiner]
US 20180276372A1 · Crabtree et al. · 2018 [cited by applicant]
US 20180285247A1 · Gandhi · 2018 [cited by examiner]
US 20190102282A1 · DeMarco · 2019 [cited by examiner]
US 20190294525A1 · Scheiner et al. · 2019 [cited by applicant]
US 20190294536A1 · Avisror · 2019 [cited by examiner]
US 20200081814A1 · Srinivasan · 2020 [cited by examiner]
US 20200125485A1 · Wiener · 2020 [cited by examiner]
US 20200167263A1 · Liu et al. · 2020 [cited by applicant]
US 20210056211A1 · Olson · 2021 [cited by examiner]
US 20210149788A1 · Downie · 2021 [cited by examiner]
US 20210191845A1 · Bach · 2021 [cited by examiner]
US 20210318946A1 · Wouda · 2021 [cited by examiner]
US 20210405976A1 · Gaitonde · 2021 [cited by examiner]
US 20220164171A1 · Johnson · 2022 [cited by examiner]
US 20230060909A1 · Plante · 2023 [cited by examiner]
US 20230281005A1 · Groenewegen · 2023 [cited by examiner]
US 20230367590A1 · Shivanna · 2023 [cited by examiner]
US 20240152368A1 · Groenewegen · 2024 [cited by examiner]
Nathan Patnam, Coverage and How to Use Them in Python, Published Feb. 17, 2018 by Medium, pp. 1-17 (pdf). [cited by examiner]
Nikolaos Georgiou, Linting with Checkstyle, published Mar. 12, 2017, ngeor.com, pp. 1-5 (pdf). [cited by examiner]
U.V. Tsiazhkorob et al., Classification of Static Analyzer Warnings using Machine Learning Methods, 2024, IEEE Xplore, pp. 69-74. [cited by examiner]
Ugur Koc et al., Learning a Classifier for False Positive Error Reports Emitted by Static Code Analysis Tools, Jun. 18, 2017, ACM, pp. 35-42. [cited by examiner]
Gaurav Pahwa, Code review analysis of software system using machine learning techniques, Jan. 2017, ResearchGate, pp. 1-8 (pdf). [cited by examiner]
Anshul Gupta et al., Intelligent code reviews using deep learning, 2018, ACM, pp. 1-9 (pdf). [cited by examiner]
U.S. Appl. No. 16/743,394, filed Jan. 15, 2020, Anil Kumar Pandurangarao. [cited by applicant]
Source{d} Technologies Inc., The Data Platform for your Software Development Life Cycle, Giving IT executives visibility into their software portfolio, engineering processes and workforce at scale, 2019. [cited by applicant]
Mahdi Noorian et al, Machine Learning-based Software Testing: Towards a Classification Framework, University of Brunswick, Fredericton, Canada, Athabasca University, Edmonton, Canada, published in SEKE 2011. [cited by applicant]
Vera Barstad et al, Predicting Source Code Quality with Static Analysis and Machine Learning, University of Agder, Grimstad, Norway, presented at NIK—2014 conference. [cited by applicant]
Anshul Gupta et al, Intelligent code reviews using deep learning, Microsoft Corp., KDD'18 Deep Learning Day, Aug. 2018, London, UK. [cited by applicant]
Testim, Tests that deliver, automated functional testing, https://www.testim.io/, retrieved Dec. 16, 2019. [cited by applicant]
Rebecca L. Russell et al, Automated Vulnerability Detection in Source Code Using Deep Representation Learning, 17th IEEE International Conference on Machine Learning and Applications (IEEE ICMLA 2018), Orlando, Florida,… [cited by applicant]
Deepcode AG, Write better code with the knowledge of the global development community, https://www.deepcode.ai, retrieved Dec. 16, 2019. [cited by applicant]
May 13, 2020—International Search Report & Written Opinion—PCT/US20/17667 (006591.02377). [cited by applicant]