IP Library Granted Patent US 9,952,961
Granted Patent B2
US 9,952,961 · App. 14/868,628 · Granted Apr 24, 2018

Assessing risk of software commits to prioritize verification resources

Inventors: Balaji V. Atyam (Austin, TX); Nicholas E. Bofferding (Cedar Park, TX); Andrew Geissler (Pflugerville, TX); Michael C. Hollinger (Round Rock, TX)
Assignee: International Business Machines Corporation
G06F11/3616G06F8/65G06F8/70
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 9,952,961
App. No.
14/868,628
Granted
Apr 24, 2018
Kind
B2
Abstract

A computer-implemented method and system for assessing risk of a software program and software updates to a program to prioritize verification resources, which includes receiving code for a software product for a testing assessment. The code is analyzed according to a risk assessment criteria, and the risk assessment criteria includes risk assessment factors. The risk assessment factors for the code are weighted as part of the criteria. A risk assessment score of the code is determined based on the criteria. Testing resources are allocated in response to the risk assessment score.

Claims (35)

1. A computer program product for assessing risk of a software program and software updates to a program to prioritize verification resources, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a computer to cause the computer to perform a method, comprising:

receiving code for a software application for a testing assessment;

analyzing the code according to a risk assessment criteria, the risk assessment criteria includes risk assessment factors;

selecting the risk assessment factors from a group consisting of: a complexity of change; a previous history of change; a functional area of code and its quality history; and a quality of the coder;

evaluating an additional risk assessment factor of the risk assessment factors, the additional risk assessment factor includes determining when the software code includes a link directed to external software with respect to the software code, the external software including a daemon in a common operating system for running the software code and the external software, or a piece of external software running remotely, the piece of external software being run remotely and including one or more endpoints;

determining when a change occurs to the link or external software;

weighting the risk assessment factors for the code as part of the criteria, wherein the link or the external software of the additional risk assessment factor is considered an increased risk, and the endpoints being assigned respective sub-weights in the weighting of the risk assessment factors;

determining a risk assessment score of the code based on the criteria, before running the testing assessment of the software code; and

allocating testing resources for the testing assessment of the software code in response to the risk assessment score.

2. The computer program product of claim 1 , wherein the code is an update to the software application.

3. The computer program product of claim 1 , wherein an overall risk assessment score is computed for multiple code updates.

4. The computer program product of claim 1 , wherein the risk assessment factors include: authors, reviewers, reviewing quality, testing coverage, complexity, code usage, and rate of updates.

5. The computer program product of claim 1 , further comprising:

adjusting allocated testing resources in response to the risk assessment score.

6. The computer program product of claim 1 , further comprising:

increasing allocated testing resources in response to a higher risk assessment score.

7. The computer program product of claim 1 , further comprising:

selecting the risk assessment factors from an additional group consisting of: modeled cross-component software links; a quality and a type of code review for a code change; a quality of a review and a reviewer; a test case coverage and quality of the test case; a frequency of changes in a functional area; a rate of change of a frequency of changes over a time period; and a caller count of a commit including an amount of functions called by a program changed by a code change.

8. A computer system for assessing risk of a software program and software updates to a program to prioritize verification resources, the computer system comprising:

one or more computer processors, one or more computer-readable storage media, and program instructions stored on one or more of the computer-readable storage media for execution by at least one of the one or more processors, the program instructions, comprising:

receiving code for a software application for a testing assessment;

analyzing the code according to a risk assessment criteria, the risk assessment criteria includes risk assessment factors;

selecting the risk assessment factors from a group consisting of: a complexity of change; a previous history of change; a functional area of code and its quality history; and a quality of the coder;

evaluating an additional risk assessment factor of the risk assessment factors, the additional risk assessment factor includes determining when the software code includes a link directed to external software with respect to the software code, the external software including a daemon in a common operating system for running the software code and the external software, or a piece of external software running remotely, the piece of external software being run remotely and including one or more endpoints;

determining when a change occurs to the link or external software;

weighting the risk assessment factors for the code as part of the criteria, wherein the link or the external software of the additional risk assessment factor is considered an increased risk, and the endpoints being assigned respective sub-weights in the weighting of the risk assessment factors;

determining a risk assessment score of the code based on the criteria, before running the testing assessment of the software code; and

allocating testing resources for the testing assessment of the software code in response to the risk assessment score.

9. The system of claim 8 , wherein the code is an update to the software application.

10. The system of claim 8 , wherein an overall risk assessment score is computed for multiple code updates.

11. The system of claim 8 , wherein the risk assessment factors include: authors, reviewers, reviewing quality, testing coverage, complexity, code usage, and rate of updates.

12. The system of claim 8 , further comprising:

adjusting allocated testing resources in response to the risk assessment score.

13. The computer system of claim 8 , further comprising:

selecting the risk assessment factors from an additional group consisting of: modeled cross-component software links; a quality and a type of code review for a code change; a quality of a review and a reviewer; a test case coverage and quality of the test case; a frequency of changes in a functional area; a rate of change of a frequency of changes over a time period; and a caller count of a commit including an amount of functions called by a program changed by a code change.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2015
From: ATYAM, BALAJI V.; BOFFERDING, NICHOLAS E.; GEISSLER, ANDREW; HOLLINGER, MICHAEL C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036678/0518 →
Continuity (1)
Related Publication 20170091072A1 · Mar 30, 2017