System and method for identifying fault prone computer code files

US9268665B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9268665-B2
Application numberUS-201113190599-A
CountryUS
Kind codeB2
Filing dateJul 26, 2011
Priority dateJul 26, 2011
Publication dateFeb 23, 2016
Grant dateFeb 23, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Metrics associated with computer code files within a codebase may be analyzed to identify bug-prone files. Functions of the method or system may determine metrics corresponding to each file of a plurality of codebase files within an application codebase. The functions may also store the metrics corresponding to each codebase file in a record of a database table, rank order the plurality of codebase files according to at least one metric, and flag each codebase file having a ranking over a threshold value of the metric. The codebase file metrics may describe fault-inducing characteristics of the plurality of codebase files and include both a total number of previous faults and a total number of changes that are associated with each codebase file.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for identifying fault-prone code, the method comprising: determining metrics corresponding to each codebase file of a plurality of codebase files within a codebase for an application; storing the metrics corresponding to each codebase file of the plurality of codebase files in one or more records of a database table; rank ordering the plurality of codebase files according to at least one metric; flagging each codebase file having a ranking over a threshold value of the at least one metric; for a specified codebase file of the plurality of codebase files, determining a subset of codebase files of the plurality of codebase files, wherein the subset of codebase files excludes the specified codebase file, and wherein each codebase file of the subset of codebase files has a logical coupling distance to the specified codebase file in accordance with a predetermined coupling distance threshold; and generating a fault likelihood for the specified codebase file based on a previously determined fault likelihood of one or more codebase files of the subset of codebase files, wherein the fault likelihood indicates how likely a change in the specified codebase file will generate a fault, wherein the metrics describe fault-inducing characteristics of the plurality of codebase files and include a total number of previous faults, a total number of changes that are associated with each codebase file, and a coupling distance determined for each codebase file, wherein the coupling distance for each codebase file is based on a measurement of a number of times the codebase file and another codebase file were changed together. 2. The method of claim 1 , further comprising detecting a change to the plurality of codebase files and updating the metrics corresponding to each codebase file of the plurality of codebase files. 3. The method of claim 2 , wherein rank ordering the plurality of codebase files according to at least one metric further includes continuously rank ordering the plurality of codebase files according to the updated metrics to account for fault-inducing changes to the plurality of codebase files. 4. The method of claim 1 , wherein the metrics further include one or more of a codebase filename, a change list, a number of lines of code within the codebase file, a time the codebase file was last edited, a change density, a fault density, and spatial relatives. 5. The method of claim 4 , wherein the change density includes a number of times the codebase file has been changed compared to the number of lines of code within the codebase file and the fault density includes the total number of faults compared to the number of lines of code within the codebase file. 6. The method of claim 4 , wherein the spatial relatives include a measurement of a number of times a codebase file is changed in conjunction with a change action for another codebase file in a same folder or package as the codebase file. 7. The method of claim 1 , wherein rank ordering the plurality of codebase files according to at least one metric includes determining a weighted average of the metrics for each codebase file and ranking the plurality of codebase files according to the weighted average. 8. The method of claim 1 , wherein rank ordering the plurality of codebase files according to at least one metric includes rank ordering a subset of the plurality of codebase files according to at least one metric, wherein the subset includes a folder, an extension, a feature, or a package of a codebase file. 9. A non-transitory computer-readable medium storing instructions, the instructions when executed by a processor cause the processor to: determine metrics corresponding to each codebase file of a plurality of codebase files within a codebase for an application, wherein the metrics include a last change time indicating a time of a last change made to the corresponding codebase file; store the metrics corresponding to each codebase file in one or more records of a database table for each codebase file of the plurality of codebase files having a last change time metric that is more recent than a last time change threshold; rank order the plurality of codebase files according to at least one metric stored in the one or more records of the database table; flag each codebase file having a ranking over a threshold value of the metric; determine a subset of codebase files of the plurality of codebase files, wherein the subset of codebase files excludes the specified codebase file, and wherein each codebase file of the subset of codebase files has a logical coupling distance to the specified codebase file in accordance with a predetermined coupling distance threshold; and generate a fault likelihood for the specified codebase file based on a previously determined fault likelihood of one or more codebase files of the subset of codebase files, wherein the fault likelihood indicates how likely a change in the specified codebase file will generate a fault, detect a change to the plurality of codebase files; update the metrics corresponding to each codebase file of the plurality of codebase files; and continuously rank order the plurality of codebase files according to the updated metrics to account for fault-inducing changes to the plurality of codebase files, wherein the metrics describe fault-inducing characteristics of the plurality of codebase files and include a total number of previous faults, a total number of changes that are associated with each codebase file, and a measurement of a number of times a codebase file is changed in conjunction with a change action for another codebase file in a same folder or package as the codebase file. 10. The non-transitory computer-readable medium storing instructions of claim 9 , wherein the metrics further include one or more of a change density, and a fault density. 11. The non-transitory computer-readable medium storing instructions of claim 10 , wherein the change density includes a number of times the codebase file has been changed compared to a number of lines of code within the codebase file and the fault density includes a total number of faults compared to the number of lines of code within the codebase file. 12. A computer system for identifying fault-prone files of a codebase, the system comprising: a memory; a processor; a version control module stored in the memory and having an application programming interface defining functions that are executable by the processor to store codebase files within a codebase and manage a change list for tracking changes to the codebase files; a database stored in the memory and including a plurality of records that each store a set of metrics corresponding to each codebase file stored in the codebase; and a bug organizer module stored in the memory and having an application programming interface defining functions that are executable by the processor to determine the sets of metrics for each codebase file, store the sets of metrics in the records, and rank order the codebase files within a table of the database according to the sets of metrics; wherein the metrics describe fault-inducing characteristics of the plurality of codebase files and include a total number of previous faults, a total number of changes that are associated with each codebase file, a change density, a fault likelihood indicating how likely a change in a specified codebase file will generate a fault, and a fault density, wherein the change density includes a number of times the codebase file has been changed compared to the number of lines of code in the codebase file, wherein the fault likelihood for a specified

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9268665B2 cover?
Metrics associated with computer code files within a codebase may be analyzed to identify bug-prone files. Functions of the method or system may determine metrics corresponding to each file of a plurality of codebase files within an application codebase. The functions may also store the metrics corresponding to each codebase file in a record of a database table, rank order the plurality of code…
Who is the assignee on this patent?
Barrow Flint, Nicolo Simone, Trimble Navigation Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/3616. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 23 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).