Patent ID: 8583965
Filing Date: 2013-11-12
Classification: G06F

Abstract:
1. A method comprising: receiving, into a computerized device, an indication that a computer program which interacts with relational database tables is producing incorrect values, said computer program comprising a plurality of lines of programming code, wherein an identified write line of said programming code outputs said incorrect value; executing said computer program using said computerized device to produce a trace of said computer program, said trace comprising a listing of each line of programming code executed, a name of each field, and a value of each field produced by each line of programming code executed; dividing said trace into independent threads of execution using said computerized device, each of said independent threads of execution comprising an execution sequence of said lines of programming code that ends with said identified write line of programming code, identifying key fields within each of said independent threads of execution using said computerized device, said key fields impacting the computation sequence leading up to said identified write line of said programming code; identifying key-based dynamic slices from said independent threads of execution using said computerized device, wherein each of said key-based dynamic slices includes ones of said lines of programming code that are used in computations processing the table records corresponding to said key fields; identifying at least one faulty key-based dynamic slice that outputs one of said incorrect values when executing said identified write line of programming code, and identifying good key-based dynamic slices that output a correct value when executing said identified write line of programming code, using said computerized device; determining differences between said faulty key-based dynamic slice and said good key-based dynamic slices using said computerized device to identify at least one potential fault area of said faulty key-based dynamic slice; comparing lines of programming code within said potential fault area with known error patterns using said computerized device to produce repair suggestions; and outputting said repair suggestions from said computerized device.