Determining candidate patches for a computer software

US10417017B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10417017-B2
Application numberUS-201715465090-A
CountryUS
Kind codeB2
Filing dateMar 21, 2017
Priority dateMar 21, 2017
Publication dateSep 17, 2019
Grant dateSep 17, 2019

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.

A method, computer system, and computer program product for determining a candidate patch for computer software is provided. According to a method, fingerprint(s) of patch(es) for a computer software is obtained first, wherein a fingerprint of a patch comprises function(s) being revised in the computer software if the patch is installed into the computer software. Then whether every function in the obtained fingerprint(s) of patch(es) has been called is monitored in response to beginning of execution of the computer software along to code path(s) related to bug(s). And at last candidate patch(es) is determined in response to end of the execution of the computer software along to the code path(s) related to the bug(s), wherein every function in the fingerprint of the candidate patch(es) has been called during the execution of the computer software.

First claim

Opening claim text (preview).

The claims are as follows: 1. A method for determining candidate patches for computer software, comprising: obtaining, by a processor of a computing system, fingerprint(s) of patch(es) for a computer software, wherein a fingerprint of a patch comprises function(s) being revised in the computer software when the patch is installed into the computer software; monitoring, by the processor, whether every function in the obtained fingerprint(s) of patch(es) has been called in response to a beginning of execution of the computer software along to code path(s) related to bug(s), wherein the monitoring includes accumulating a number of times for every function in the obtained fingerprint(s) of patch(es) being called; determining, by the processor, candidate patch(es) in response to an end of the execution of the computer software along to the code path(s) related to the bug(s) based on the number of times for every function in the obtained fingerprint is called being greater than a predefined threshold, wherein the patch(es) is further determined to be a candidate patch when every function in the fingerprint of the patch(es) has been called during the execution of the computer software, and the patch(es) is determined not to be a candidate patch when at least one function in the fingerprint of the patch has not been called during the execution of the computer software; and instructing, by the processor, the candidate patch to be installed into the computer software to revise one or more functionalities of the computer software previously working incorrectly. 2. The method according to claim 1 , wherein the determining further comprises: sorting, by the processor, the candidate patch(es) based on the number of times for every function in the fingerprint(s) of the candidate patch(es). 3. The method according to claim 2 , wherein the determining further comprises: determining, by the processor, the candidate patch(es) with a higher accumulated number of times for every function in the fingerprint(s) of the candidate patch(es) to be the candidate patch(es) with a higher probability level. 4. The method according to claim 1 , wherein obtaining a fingerprint of a patch comprises: checking-in, by the processor, a source code of the patch into an original source code of the computer software to obtain a revised source code of the computer software; comparing, by the processor, the original source code and the revised source code of the computer software to obtain a plurality of revised functions in the computer software; and storing, by the processor, the plurality of revised functions as the fingerprint of the patch. 5. The method according to claim 1 , wherein a function in the fingerprints of the patch are presented as a specific method in a specific class in a specific package for the computer software, using object-oriented programming code. 6. A computer system comprising: a processor; a memory device coupled to the processor; and a computer readable storage device coupled to the processor, wherein the storage device contains program code executable by the processor via the memory device to implement a method for determining candidate patches for computer software, the method comprising: obtaining, by a processor of a computing system, fingerprint(s) of patch(es) for a computer software, wherein a fingerprint of a patch comprises function(s) being revised in the computer software when the patch is installed into the computer software; monitoring, by the processor, whether every function in the obtained fingerprint(s) of patch(es) has been called in response to a beginning of execution of the computer software along to code path(s) related to bug(s), wherein the monitoring includes accumulating a number of times for every function in the obtained fingerprint(s) of patch(es) being called; determining, by the processor, candidate patch(es) in response to an end of the execution of the computer software along to the code path(s) related to the bug(s) based on the number of times for every function in the obtained fingerprint is called being greater than a predefined threshold, wherein the patch(es) is further determined to be a candidate patch when every function in the fingerprint of the patch(es) has been called during the execution of the computer software, and the patch(es) is determined not to be a candidate patch when at least one function in the fingerprint of the patch has not been called during the execution of the computer software; and instructing, by the processor, the candidate patch to be installed into the computer software to revise one or more functionalities of the computer software previously working incorrectly. 7. The computer system according to claim 6 , wherein the determining further comprises: sorting, by the processor, the candidate patch(es) based on the number of times for every function in the obtained fingerprint(s) of the candidate patch(es). 8. The computer system according to claim 7 , wherein the determining further comprises: determining, by the processor, the candidate patch(es) with a higher accumulated number of times for every function in the fingerprint(s) of the candidate patch(es) to be the candidate patch(es) with a higher probability level. 9. The computer system according to claim 6 , wherein obtaining the fingerprint of the patch comprises: checking in, by the processor, a source code of the patch into an original source code of the computer software to obtain a revised source code of the computer software; comparing, by the processor, the original source code and the revised source code of the computer software to obtain a plurality of revised functions in the computer software; and storing, by the processor, the plurality of revised functions as the fingerprint of the patch. 10. The computer system according to claim 6 , wherein a function in the fingerprints of the patch are presented as a specific method in a specific class in a specific package for the computer software, using object-oriented programming code. 11. A computer program product, comprising a computer readable hardware storage device storing a computer readable program code, the computer readable program code comprising an algorithm that when executed by a computer processor of a computing system implements a method for determining candidate patches for computer software, the method comprising: obtaining, by a processor of a computing system, fingerprint(s) of patch(es) for a computer software, wherein a fingerprint of a patch comprises function(s) being revised in the computer software when the patch is installed into the computer software; monitoring, by the processor, whether every function in the obtained fingerprint(s) of patch(es) has been called in response to a beginning of execution of the computer software along to code path(s) related to bug(s), wherein the monitoring includes accumulating a number of times for every function in the obtained fingerprint(s) of patch(es) being called; determining, by the processor, candidate patch(es) in response to an end of the execution of the computer software along to the code path(s) related to the bug(s) based on the number of times for every function in the obtained fingerprint is called being greater than a predefined threshold, wherein the patch(es) is further determined to be a candidate patch when every function in the fingerprint of the patch(es) has been called during the execution of the computer software, and the patch(es) is determined not to be a candidate patch when at least one function in the fingerprint of the patch has not been called during the execution of the computer software, and instructing, by the proce

Assignees

Inventors

Classifications

  • Software metrics · CPC title

  • G06F8/658Primary

    Incremental updates; Differential updates · CPC title

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • G06F9/4488Primary

    Object-oriented · CPC title

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 US10417017B2 cover?
A method, computer system, and computer program product for determining a candidate patch for computer software is provided. According to a method, fingerprint(s) of patch(es) for a computer software is obtained first, wherein a fingerprint of a patch comprises function(s) being revised in the computer software if the patch is installed into the computer software. Then whether every function in…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/658. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 17 2019 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).