IP Library › Granted Patent US 10,810,115
Granted Patent B2
US 10,810,115 · App. 15/850,532 · Granted Oct 20, 2020

Systems and methods using artificial intelligence to identify, test, and verify system modifications

Inventors: Nagaraju Manchiraju (Bridgewater, NJ); Ravi K. Kotyala (Edison, NJ); Satya V. Nemana (East Windsor, NJ)
Assignee: Verizon Patent and Licensing Inc.
G06F11/3696G06F8/65G06F8/71G06F11/368G06F11/3676G06F11/3688G06N3/08
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 10,810,115
App. No.
15/850,532
Granted
Oct 20, 2020
Kind
B2
Abstract

A computer device may include a memory configured to store instructions and a processor configured to execute the instructions to identify changes in source code of an application; generate a plurality of source code keywords based on the identified changes in the source code; and map the generated plurality of source code keywords to a plurality of testing keywords. The processor may be further configured to identify a plurality of test cases from a test cases database based on the plurality of testing keywords and inject the plurality of test cases into a testing queue of a testing system associated with the application. The computer device may further determine that the injected plurality of test cases sufficiently tested the changes in the source code and, based on the determining, update a deployed instance of the application to include the changes in the source code.

Claims (102)

1. A method performed by a computer device, the method comprising:

identifying, by the computer device, changes in source code of an application;

generating, by the computer device, a plurality of source code keywords based on the identified changes in the source code;

mapping, by the computer device, the generated plurality of source code keywords to a plurality of testing keywords using at least one neural network trained using backpropagation on a training set that matches sets of source code keywords to sets of testing keywords, wherein mapping the generated plurality of source code keywords to the plurality of testing keywords using the at least one neural network includes:

encoding the plurality of source code keywords into an encoded keywords vector using an encoding neural network; and

decoding the encoded keywords vector into the plurality of testing keywords using a decoding neural network;

identifying, by the computer device, a plurality of test cases from a test cases database based on the plurality of testing keywords;

injecting, by the computer device, the plurality of test cases into a testing queue of a testing system associated with the application;

determining, by the computer device, whether the injected plurality of test cases satisfy a code coverage criterion in the source code; and

updating a deployed instance of the application to include the changes in the source code, based on determining that the injected plurality of test cases satisfy the code coverage criterion in the source code.

2. The method of claim 1 , wherein generating the plurality of source code keywords includes generating a source code keyword based on at least one of:

a comment associated with the source code,

a file name associated with the source code,

a variable name associated with the source code, or

a function associated with the source code.

3. The method of claim 1 , further comprising:

identifying a new source code keyword;

retraining the encoding neural network using the new source code keyword; and

retraining the decoding neural network using a retrained encoding neural network.

4. The method of claim 1 , wherein identifying a plurality of test cases from a test cases database based on the plurality of testing keywords includes:

identifying one or more additional test cases which depend on a particular one of the plurality of test cases, based on a dependency matrix associated with the test cases database.

5. The method of claim 1 , wherein determining whether the injected plurality of test cases satisfy the code coverage criterion in the source code includes:

obtaining code coverage information for the changes in the source code associated with the injected plurality test cases; and

determining whether the obtained code coverage information satisfies the code coverage criterion.

6. The method of claim 5 , further comprising:

determining that the obtained code coverage information does not satisfy the code coverage criterion; and

updating the identified plurality of test cases, based on determining that the obtained code coverage information does not satisfy the code coverage criterion.

7. The method of claim 6 , wherein updating the identified plurality of test cases includes:

identifying untested changes in the source code based on the obtained code coverage information;

identifying a new source code keyword based on the untested changes in the source code of the application;

generating an updated plurality of source code keywords based on the identified new code keyword;

mapping the updated plurality of source code keywords to an updated plurality of testing keywords using the at least one neural network;

selecting one or more additional test cases based on the updated plurality of testing keywords; and

injecting the selected one or more additional test cases into the testing queue.

8. The method of claim 6 , wherein updating the identified plurality of test cases includes:

identifying untested changes in the source code based on the obtained code coverage information;

selecting one or more additional test cases associated with the untested changed by accessing a testing history database; and

injecting the selected one or more additional test cases into the testing queue.

9. The method of claim 6 , wherein updating the identified plurality of test cases includes:

outputting an alert that the obtained code coverage information does not satisfy the code coverage criterion;

receiving one or more additional test cases associated with changes in the source code;

injecting the received one or more additional test cases into the testing queue; and updating a translation engine that maps code keywords to testing keywords based on the received one or more additional test cases.

10. The method of claim 6 , further comprising:

identifying a new source code keyword based on the obtained code coverage information;

generating an updated plurality of source code keywords based on the identified new code keyword;

mapping the updated plurality of source code keywords to an updated plurality of testing keywords;

identifying one or more additional test cases based on the updated plurality of testing keywords; and

updating a dependency matrix based on the identified one or more additional test cases.

11. A computer device comprising:

a memory configured to store instructions; and

a processor configured to execute the instructions to:

identify changes in source code of an application;

generate a plurality of source code keywords based on the identified changes in the source code;

map the generated plurality of source code keywords to a plurality of testing keywords using at least one neural network trained using backpropagation on a training set that matches sets of source code keywords to sets of testing keywords, wherein, when mapping the generated plurality of source code keywords to the plurality of testing keywords using the at least one neural network, the processor is further configured to:

encode the plurality of source code keywords into an encoded keywords vector using an encoding neural network; and

decode the encoded keywords vector into the plurality of testing keywords using a decoding neural network;

identify a plurality of test cases from a test cases database based on the plurality of testing keywords; and

inject the plurality of test cases into a testing queue of a testing system associated with the application:

determine whether the injected plurality of test cases satisfy a code coverage criterion in the source code; and

update a deployed instance of the application to include the changes in the source code, based on determining that the injected plurality of test cases satisfy the code coverage criterion in the source code.

12. The computer device of claim 11 , wherein, when identifying a plurality of test cases from a test cases database based on the plurality of testing keywords, the processor is further configured to:

identify one or more additional test cases which depend on a particular one of the plurality of test cases, based on a dependency matrix associated with the test cases database.

13. The computer device of claim 11 , wherein, when determining whether the injected plurality of test cases satisfy the code coverage criterion in the source code, the processor is further configured to:

obtain code coverage information for the changes in the source code associated with the injected plurality test cases; and

determine whether the obtained code coverage information satisfies the code coverage criterion.

14. The computer device of claim 13 , wherein the processor is further configured to:

determine that the obtained code coverage information does not satisfy the code coverage criterion; and

update the identified plurality of test cases, based on determining that the obtained code coverage information does not satisfy the code coverage criterion.

15. The computer device of claim 14 , wherein, when updating the identified plurality of test cases, the processor is further configured to:

identify untested changes in the source code based on the obtained code coverage information;

identify a new source code keyword based on the untested changes in the source code of the application;

generate an updated plurality of source code keywords based on the identified new code keyword;

map the updated plurality of source code keywords to an updated plurality of testing keywords using the at least one neural network;

select one or more additional test cases based on the updated plurality of testing keywords; and

inject the selected one or more additional test cases into the testing queue.

16. The computer device of claim 14 , wherein, when updating the identified plurality of test cases, the processor is further configured to:

identify untested changes in the source code based on the obtained code coverage information;

select one or more additional test cases associated with the untested changed by accessing a testing history database; and

inject the selected one or more additional test cases into the testing queue.

17. The computer device of claim 14 , wherein, when updating the identified plurality of test cases, the processor is further configured to:

alert an administrator that the obtained code coverage information does not satisfy the code coverage criterion;

receive one or more additional test cases associated with changes in the source code from the administrator;

inject the received one or more additional test cases into the testing queue; and

update a translation engine that maps code keywords to testing keywords based on the received one or more additional test cases.

18. A non-transitory computer-readable memory device storing instructions executable by a process, the non-transitory computer-readable memory device comprising:

one or more instructions to identify changes in source code of an application;

one or more instructions to generate a plurality of source code keywords based on the identified changes in the source code;

one or more instructions to map the generated plurality of source code keywords to a plurality of testing keywords using at least one neural network trained using backpropagation on a training set that matches sets of source code keywords to sets of testing keywords, wherein the one or more instructions to map the generated plurality of source code keywords to the plurality of testing keywords using the at least one neural network further include:

one or more instructions to encode the plurality of source code keywords into an encoded keywords vector using an encoding neural network; and

one or more instructions to decode the encoded keywords vector into the plurality of testing keywords using a decoding neural network;

one or more instructions to identify a plurality of test cases from a test cases database based on the plurality of testing keywords;

one or more instructions to inject the plurality of test cases into a testing queue of a testing system associated with the application;

one or more instructions to determine whether the injected plurality of test cases satisfy a code coverage criterion in the source code; and

one or more instructions to update a deployed instance of the application to include the changes in the source code, based on determining that the injected plurality of test cases satisfy the code coverage criterion in the source code.

19. The non-transitory computer-readable memory device of claim 18 , wherein the one or more instructions to generate the plurality of source code keywords includes one or more instructions to generate a source code keyword based on at least one of:

a comment associated with the source code,

a file name associated with the source code,

a variable name associated with the source code, or

a function associated with the source code.

20. The non-transitory computer-readable memory device of claim 18 , wherein the one or more instructions to determine whether the injected plurality of test cases satisfy the code coverage criterion in the source code further include:

one or more instructions to obtain code coverage information for the changes in the source code associated with the injected plurality test cases; and

one or more instructions to determine whether the obtained code coverage information satisfies the code coverage criterion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2017
From: MANCHIRAJU, NAGARAJU; KOTYALA, RAVI K.; NEMANA, SATYA V.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 044463/0595 →
Continuity (1)
Related Publication 20190196952A1 · Jun 27, 2019
Cited By (2)
US 12,524,241 US 12,591,500