Information processing apparatus, information processing method and program

US10489149B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10489149-B2
Application numberUS-201414217619-A
CountryUS
Kind codeB2
Filing dateMar 18, 2014
Priority dateMar 22, 2013
Publication dateNov 26, 2019
Grant dateNov 26, 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 for acquiring an input value such that an output value differs before and after refactoring is not known and an information processing apparatus searching for such an input value that inequivalent output values can be brought about for the equivalent input values among multiple target programs. The apparatus including: an acquisition section acquiring, for each of the multiple target programs, an input/output constraint showing a condition to be satisfied by an input value and an output value; a constraint condition generating section generating a constraint condition which becomes true when the multiple input/output constraints for the multiple target programs are satisfied, input values for the multiple target programs are equivalent, and output values for the multiple target programs are not equivalent; and a constraint releasing section giving the constraint condition to a constraint solver to obtain an input value satisfying the constraint condition.

First claim

Opening claim text (preview).

What is claimed is: 1. An information processing apparatus configured to: retrieve two or more programs from a program database, the two or more programs comprising at least a target program and a refactored program, the refactored program being generated from the target program by changing a source code of the target program without changing a function of the target program; generate a first constraint on both a first input of the target program and a first output of the target program, the first constraint indicating a first condition for using the first input to traverse a first execution path in the target program to generate the first output, wherein generating the first constraint comprises: generating, for each execution path of the target program, a logical product of a condition for passing through an execution path of the target program, and generating a logical sum of the generated logical product for each execution path of the target program; generate a second constraint on both a second input of the refactored program and a second output of the refactored program, the second constraint indicating a second condition for using the second input to traverse a second execution path in the refactored program to generate the second output, wherein generating the second constraint comprises: generating, for each execution path of the refactored program, a logical product of a condition for passing through an execution path of the refactored program, and generating a logical sum of the generated logical product for each execution path of the refactored program; generate a first constraint condition that evaluates to true when: the first constraint is satisfied for a first input value of the first input and a first output value of the first output and the second constraint is satisfied for a second input value of the second input and a second output value of the second output, the first input value is equivalent to the second input value, and the first output value is not equivalent to the second output value; execute a constraint solver using the first constraint condition to obtain the first input value for the target program and the second input value for the refactored program, wherein the first input value is equivalent to the second input value; execute the target program using the first input value to generate the first output value and execute the refactored program using the second input value to generate the second output value; determine whether the first output value is not equivalent to the second output value; in response to determining that the first output value is not equivalent to the second output value, generate a task to request user examination and modification of the target program and the refactored program; output a notification providing the first input value and the second input value, the notification including the task to request user examination and modification of the target program and the refactored program; and update the first constraint condition by adding a condition to exclude the first input value and the second input value. 2. The information processing apparatus according to claim 1 , wherein providing the first input value and the second input value further comprises providing the first input value and the second input value to a user terminal, wherein the user terminal displays the first input value and the second input value to a user. 3. The information processing apparatus according to claim 1 , wherein the target program and the refactored program each include multiple different execution paths having respective conditions for passing through the respective execution paths; wherein the information processing apparatus is further configured to generate the first constraint and generate the second constraint such that at least one of the first condition and the second condition is evaluated to be always true. 4. The information processing apparatus according to claim 1 , further configured to generate a second constraint condition that evaluates to true when the first input value is equal to the second input value, as a condition that the first input value is equivalent to the second input value. 5. The information processing apparatus according to claim 1 , further configured to: acquire correspondence among the first input value and the second input value; and generate a second constraint condition that evaluates to true when the first input value and the second input value are corresponding values, as a condition that the first input value is equivalent to the second input value. 6. The information processing apparatus according to claim 1 , further configured to generate a second constraint condition that evaluates to true when the first output value does not agree with the second output value, as a condition that the first output value is not equivalent to the second output value. 7. The information processing apparatus according to claim 1 , further configured to: acquire correspondence among the first output value and the second output value; and generate a second constraint condition that evaluates to true when the first output value and the second output value are not corresponding values, as a condition that the first output value is not equivalent to the second output value. 8. The information processing apparatus according to claim 1 , wherein the target program and the refactored program each include multiple different execution paths having respective conditions for passing through the respective execution paths; wherein the information processing apparatus is further configured to generate the first constraint and generate the second constraint such that at least one of the first condition and the second condition is evaluated to be always false. 9. An information processing method executed by an information processing apparatus searching for equivalent input values that result in not equivalent output values among two or more programs, the method comprising: retrieving the two or more programs, the two or more programs comprising at least a target program and a refactored program, the refactored program being generated from the target program by changing a source code of the target program without changing a function of the target program; generating a first constraint on both a first input of the target program and a first output of the target program, the first constraint indicating a first condition for using the first input to traverse a first execution path in the target program to generate the first output, wherein generating the first constraint comprises: generating, for each execution path of the target program, a logical product of a condition for passing through an execution path of the target program, and generating a logical sum of the generated logical product for each execution path of the target program; generating a second constraint on both a second input of the refactored program and a second output of the refactored program, the second constraint indicating a second condition for using the second input to traverse a second execution path in the refactored program to generate the second output, wherein generating the second constraint comprises: generating, for each execution path of the refactored program, a logical product of a condition for passing through an execution path of the refactored program, and generating a logical sum of the generated logical product for each execution path of the refactored program; generating a first constraint condition that evaluates to true when: the first constraint is satisfied for a first input value of the first input and a first output value of the first output and the second co

Assignees

Inventors

Classifications

  • using genetic models · CPC title

  • G06F8/72Primary

    Code refactoring · 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 US10489149B2 cover?
A method for acquiring an input value such that an output value differs before and after refactoring is not known and an information processing apparatus searching for such an input value that inequivalent output values can be brought about for the equivalent input values among multiple target programs. The apparatus including: an acquisition section acquiring, for each of the multiple target p…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/72. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 26 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).