IP Library › Granted Patent US 11,138,366
Granted Patent B2
US 11,138,366 · App. 16/743,394 · Granted Oct 5, 2021

Systems and methods for automated code validation

Inventors: Anil Kumar Pandurangarao (Buffalo Grove, IL); Sudharshun Ravichander (Des Plaines, IL)
Assignee: ALLSTATE INSURANCE COMPANY
G06F40/151G06F11/3684G06F11/3688G06F11/3692G06K9/00456
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 11,138,366
App. No.
16/743,394
Granted
Oct 5, 2021
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 (71)

1. A method, comprising:

obtaining, by a computing device, document requirement data;

determining, by the computing device, a set of unit tests based on the document requirement data;

generating, by the computing device, a document based on the document requirement data, wherein the document comprises a set of aspects corresponding to the set of unit tests;

validating, by the computing device, the document by:

performing the set of unit tests on the document;

recording results of the performed set of unit tests; and

determining that each unit test in the set of unit tests passed;

calculating, by the computing device, a code coverage metric based on the set of unit tests and the set of aspects;

verifying, by the computing device, the code coverage metric exceeds a threshold value; and

when the code coverage metric is verified, 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 validating the document further comprises determining an amount of time spent refactoring the document.

4. The method of claim 1 , wherein validating the document 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 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:

obtain document requirement data;

determine a set of unit tests based on the document requirement data;

generate a document based on the document requirement data, wherein the document comprises a set of aspects corresponding to the set of unit tests;

validate the document by:

performing the set of unit tests on the document;

determining that each unit test in the set of unit tests passed;

calculate a code coverage metric based on the set of unit tests and the set of aspects;

verify the code coverage metric exceeds a threshold value; and

when the code coverage metric is verified, transmit, to 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 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:

obtaining document requirement data;

determining a set of unit tests based on the document requirement data;

generating a document based on the document requirement data, wherein the document comprises a set of aspects corresponding to the set of unit tests;

validating the document by:

performing the set of unit tests on the document;

determining that each unit test in the set of unit tests passed;

calculating a code coverage metric based on the set of unit tests and the set of aspects;

verifying the code coverage metric exceeds a threshold value; and

when the code coverage metric is verified and the document is validated, 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 validating the document further comprises determining an amount of time spent refactoring the document.

18. The non-transitory machine-readable medium of claim 15 , wherein validating the document 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 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 (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2020
From: PANDURANGARAO, ANIL KUMAR; RAVICHANDER, SUDHARSHUN
To: ALLSTATE INSURANCE COMPANY
Reel/Frame 051784/0181 →
Continuity (2)
Provisional Application 62810071 · Feb 25, 2019
Related Publication 20200272786A1 · Aug 27, 2020