Three-dimensional software code review engine
US-2024143291-A1 · May 2, 2024 · US
US10489149B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10489149-B2 |
| Application number | US-201414217619-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 18, 2014 |
| Priority date | Mar 22, 2013 |
| Publication date | Nov 26, 2019 |
| Grant date | Nov 26, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.