Technologies for code failure proneness estimation
AssigneeMicrosoft Corporation
InventorsNachiappan Nagappan, Thirumalesh Bhat
Life of this patent
Estimating the term…
Abstract
The present examples provide technologies for estimating code failure proneness probabilities for a code set and/or the files that make up the set. The code set being evaluated is typically comprised of binary and/or source files that embody the software for which the estimates are desired. The estimates are typically based on a set of selected code metrics, the code metrics typically selected based on corresponding failures of a previous version of the software. A historically variant metric feedback factor may also be calculated and code metric values classified relative to a baseline code set embodying the previous version of the software.
Claims16
A code failure proneness estimation system comprising:
- a processor;
- a code metrics calculator implemented at least in part by the processor and configured to accept a code set and to calculate selected code metrics based on the code set, wherein the code set embodies a current version of software;
- a code churn calculator implemented at least in part by the processor and configured to accept and to calculate from the code set and a baseline code set code churn metrics that indicate a degree of change in the code set relative to the baseline code set, wherein the baseline code set embodies a previous version of the software;
- a historical variant metric feedback (“HVMF”) calculator configured to accept the code set and the baseline code set and baseline data associated with the baseline code set and calculate an HVMF factor and classify the selected code metrics and the code churn metrics;
- and
- a statistical modeler implemented at least in part by the processor and configured to accept the selected code metrics and the code churn metrics, and to perform a logistical regression resulting in a code failure proneness probability.
A method for estimating a probability of failure proneness of a code set, the method comprising:
- calculating, from each file in the code set and in a baseline code set, selected code metrics and code churn metrics that indicate a degree of change in the code set relative to the baseline code set, wherein the code set embodies a current version of software, and wherein the baseline code set embodies a previous version of the software;
- applying a logistical regression model to the calculated selected code metrics and the calculated code churn metrics, wherein the logistical regression is based at least in part on baseline data associated with the baseline code set;
- calculating statistical bounds based on a portion of the selected code metrics that are based on the baseline code set;
- calculating a historical variant metric feedback factor based on the applied logistical regression model and the calculated statistical bounds;
- and
- wherein the method is performed by a computer.
At least one computer-readable storage medium embodying computer-executable instructions sufficient to cause a computing environment to perform a method for estimating the failure proneness of a code set, the method comprising:
- calculating, from each file in the code set and in a baseline code set, code metrics and code churn metrics that indicate a degree of change in the code set relative to the baseline code set, wherein the code set embodies a current version of software, and wherein the baseline code set embodies a previous version of the software;
- applying a logistical regression model to the calculated code metrics and the calculated code churn metrics, wherein the logistical regression is based at least in part on baseline data associated with the baseline code set;
- calculating a statistical lower bound, a statistical mean bound, and a statistical upper bound based on a portion of the code metrics that are based on the baseline code set;
- calculating a historical variant metric feedback factor based on the applied logistical regression model and the calculated statistical bounds;
- calculating a code failure proneness probability based on the applied logistical regression model;
- and
- classifying the code metrics and the code churn metrics.
Dependencies are inferred from the claim text.