Systems and methods for software quality prediction
AssigneeAllstate Insurance Company
InventorsAnil Kumar Pandurangarao, Daniel Pecoraro
Life of this patent
Estimating the term…
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. A variety of metrics can be generated regarding errors and issues identified during the development process along with predictive metrics regarding potential issues within the documents. 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. A variety of machine learning classifiers can be used to generate the metrics.
Claims16
A method for identifying code hot spots, comprising:
- obtaining, by a code analysis server system, a set of source code files, wherein commit history data for each source code file is obtained and comprises an indication of when the source code file was checked out, an indication of when the source code file was checked in, an indication of a developer checking out the source code file, and a reference to one or more bugs stored in a bug tracking database;
- obtaining, by the code analysis server system, at least one quality metric for each source code file in the set of source code files, wherein the quality metric for a source code file of the set of source code files comprises an indication of a developer that has modified the source code file and a developer model indicating a performance rating of the developer;
- determining, by the code analysis server system, a document model for each source code file in the set of source code files, the document model indicating relationships between the source code files in the set of source code files;
- and
- determining, by the code analysis server system, code hot spots in the set of source code files based on the document model and the at least one quality metric for each source code file, wherein each code hot spot indicates a particular source code file in the set of source code files.
A code analysis server system, comprising:
- a processor;
- and
- a memory in communication with the processor and storing instructions that, when executed by the processor, cause the code analysis server system to:
- obtain a set of source code files, each source code file in the set of source code files comprising a set of functions and a set of lines of code;
- obtain commit history data for each source code file in the set of source code files, wherein the commit history data indicates a change to at least one line of code in the set of lines of code for the corresponding source code file, wherein the commit history data for a source code file of the set of source code files comprises an indication of when the source code file was checked out, an indication of when the source code file was checked in, an indication of a developer checking out the source code file, and a reference to one or more bugs stored in a bug tracking database, and wherein a quality metric for each source code file of the set of source code files is obtained and comprises an indication of a developer that has modified the source code file and a developer model indicating a performance rating of the developer;
- determine a document model for each source code file of the set of source code files, the document model indicating relationships between the source code files in the set of source code files determined based on the set of functions and the set of lines of code for each source code file;
- and
- determine code hot spots in the set of source code files based on the document model and the commit history for each source code file, wherein a code hot spot indicates a particular source code file in the set of source code files.
A method for identifying code hot spots, comprising:
- obtaining, by a code analysis server system, a set of source code files, each source code file in the set of source code files comprising a set of functions and a set of lines of code;
- obtaining, by the code analysis server system, commit history data for each source code file of the set of source code files, the commit history data for each source code file of the set of source code files comprising an indication of when the source code file was checked out, an indication of when the source code file was checked in, an indication of a developer checking out the source code file, and a reference to one or more bugs stored in a bug tracking database;
- obtaining, by the code analysis server system, quality metrics for each source code file, the quality metrics for each source code file comprising:
- an indication of a developer that has modified the source code file and a developer model indicating a performance rating of the developer;
- an indication of the processes used to modify the source code file;
- and
- an indication of bugs previously present in the source code file, bugs that have been fixed in the source code file, and bugs still existing in the source code file
- determining, by the code analysis server system, the developer model for each source code file of the set of source code files, the developer model further indicating relationships between the source code files in the set of source code files determined based on the set of functions and the set of lines of code for each source code file;
- and
- determining, by the code analysis server system and using a machine learning classifier, code hot spots in the set of source code files based on the developer model for each source code file, wherein a code hot spot indicates a particular source code file in the set of source code files and comprises a score calculated based on the commit history data, the quality metrics, and the developer model.
Dependencies are inferred from the claim text.