Using false positives to detect incorrectly updated code segments

US11301358B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11301358-B1
Application numberUS-202017121795-A
CountryUS
Kind codeB1
Filing dateDec 15, 2020
Priority dateDec 15, 2020
Publication dateApr 12, 2022
Grant dateApr 12, 2022

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.

Aspects of the invention include receiving a notification that a first logical grouping of code segments of a software application is being changed. Comparing the first logical grouping to a second logical grouping of code segments from a change history of the software application, where the first logical grouping and the second logical grouping both relate to resolving a common software application issue, and where the first logical grouping and the second logical grouping include at least one common code segment. Identifying a first code segment of the first logical grouping that is different from a second code segment of the second logical grouping. Determining that given the at least one code segment is changed a probability that the second code segment has been changed is greater than an threshold value. Sending a notification based on the difference in the probabilities being greater than a threshold value.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: receiving, by a processor, a notification that a first logical grouping of code segments of a software application is being changed; comparing, by the processor, the first logical grouping to a second logical grouping of code segments from a change history of the software application, wherein the first logical grouping and the second logical grouping both relate to resolving a common software application issue, wherein the first logical grouping and the second logical grouping include at least one common code segment, and wherein comparing the first logical grouping to the second logical grouping comprises: identifying the second logical grouping in a dependency graph derived from the change history; matching one or more code segments from the first logical grouping to the second logical grouping; and determining whether a threshold number of code segments from the first logical grouping match the second logical grouping; identifying, by the processor, a first code segment of the first logical grouping that is different from a second code segment of the second logical grouping; determining, by the processor, that given the first code segment is changed a probability that the second code segment has been changed is greater than a threshold value; sending, by the processor, a notification based on the probability that the second code segment has been changed being greater than the threshold value; and changing the second logical grouping of code segments instead of the first logical grouping of code segments. 2. The computer implemented method of claim 1 , wherein the notification is received from a software version control system. 3. The computer-implemented method of claim 1 , wherein identifying the first code segment of first logical grouping that differs from the second code segment of the second logical grouping comprises comparing a respective code identifier of the first code segment and the second code segment. 4. The computer-implemented method of claim 1 , further comprising: inputting a probability that each respective code segment of the first logical grouping is changed and a probability that each respective code segment of the second logical grouping is changed into a Markov model; extracting a first eigenvector describing the first logical grouping and a second eigenvector describing the second logical grouping from a Markov matrix built from the Markov model; and comparing a distance between the first eigenvector and the second eigenvector. 5. The computer-implemented method of claim 4 , wherein comparing the distance comprises performing a cosine similarity algorithm on the first and second eigenvectors. 6. A system comprising: a memory having computer readable instructions; and one or more processors for executing the computer readable instructions, the computer readable instructions controlling the one or more processors to perform operations comprising: receiving a notification that a first logical grouping of code segments of a software application is being changed; comparing the first logical grouping to a second logical grouping of code segments from a change history of the software application, wherein the first logical grouping and the second logical grouping both relate to resolving a common software application issue, and wherein the first logical grouping and the second logical grouping include at least one common code segment, and wherein comparing the first logical grouping to the second logical grouping comprises: identifying the second logical grouping in a dependency graph derived from the change history; matching one or more code segments from the first logical grouping to the second logical grouping; and determining whether a threshold number of code segments from the first logical grouping match the second logical grouping; identifying a first code segment of the first logical grouping that is different from a second code segment of the second logical grouping; determining, by the processor, that given the first code segment is changed a probability that the second code segment has been changed is greater than a threshold value; sending a notification based on the probability that the second code segment has been changed being greater than the threshold value; and changing the second logical grouping of code segments instead of the first logical grouping of code segments. 7. The system of claim 6 , wherein the notification is received from a software version control system. 8. The system of claim 6 , wherein identifying the first code segment of first logical grouping that differs from the second code segment of the second logical grouping comprises comparing a respective code identifier of the first code segment and the second code segment. 9. The system of claim 6 , further comprising: inputting a probability that each respective code segment of the first logical grouping is changed and a probability that each respective code segment of the second logical grouping is changed into a Markov model; extracting a first eigenvector describing the first logical grouping and a second eigenvector describing the second logical grouping from a Markov matrix built from the Markov model; and comparing a distance between the first eigenvector and the second eigenvector. 10. The system of claim 6 , wherein comparing the distance comprises performing a cosine similarity algorithm on the first and second eigenvectors. 11. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations comprising: receiving a notification that a first logical grouping of code segments of a software application is being changed; comparing the first logical grouping to a second logical grouping of code segments from a change history of the software application, wherein the first logical grouping and the second logical grouping both relate to resolving a common software application issue, and wherein the first logical grouping and the second logical grouping include at least one common code segment, and wherein comparing the first logical grouping to the second logical grouping comprises: identifying the second logical grouping in a dependency graph derived from the change history; matching one or more code segments from the first logical grouping to the second logical grouping; and determining whether a threshold number of code segments from the first logical grouping match the second logical grouping; identifying a first code segment of the first logical grouping is different from a second code segment of the second logical grouping; determining, by the processor, that given the first code segment is changed a probability that the second code segment has been changed is greater than a threshold value; sending a notification based on the probability that the second code segment has been changed being greater than the threshold value; and changing the second logical grouping of code segments instead of the first logical grouping of code segments. 12. The computer program product of claim 11 , wherein the notification is received from a software version control system. 13. The computer program product of claim 11 , wherein identifying the first code segment of first logical grouping that differs from the second code segment of the second logical grouping comprises comparing a respective code identifier of the first code segment and the second code segment. 14. The computer program

Assignees

Inventors

Classifications

  • Probabilistic graphical models, e.g. probabilistic networks · CPC title

  • Inference or reasoning models · CPC title

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

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

  • using formal methods, e.g. model checking, abstract interpretation (theorem proving G06N5/013) · 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 US11301358B1 cover?
Aspects of the invention include receiving a notification that a first logical grouping of code segments of a software application is being changed. Comparing the first logical grouping to a second logical grouping of code segments from a change history of the software application, where the first logical grouping and the second logical grouping both relate to resolving a common software applic…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F11/3604. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 12 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).