Fault localization using condition modeling and return value modeling
First Claim
Patent Images
1. A computer-implemented method to localize faults in a software application, the computer-implemented method comprising:
- receiving a set of tests to apply on a software application, wherein the software includes both unknown fault paths and known fault paths;
associating one or more domain elements with the software;
receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements based on those domain elements appearing in passing and failing tests;
executing each test in the set of tests on the software application, and recording, for each executed test, a set of test information including;
a test outcome on whether a specific fault has occurred, wherein a passing test is the test outcome with no fault that has occurred, and a failing test is the test outcome with a fault that has occurred;
one or more executed statements in the software application, andfor each execution of each executed statement in the software application, compute an abstract value based on its runtime behavior that indicates a domain element to which that statement execution corresponds;
using the statistical fault localization technique which has been received, calculating a suspiciousness rating for each of the domain elements based on the set of test information which has been recorded, wherein the suspiciousness rating is computed for each executed domain element as a percentage of passing and failing tests that execute that domain element; and
reporting a list containing a suspiciousness rating for each domain element in one of a decreasing order of suspiciousness rating and an increasing order of suspiciousness rating.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a novel computer implemented system, on demand service, computer program product and a method that leverages combined concrete and symbolic execution and several fault-localization techniques to automatically detects failures and localizes faults in PHP Hypertext Preprocessor (“PHP”) Web applications.
-
Citations
16 Claims
-
1. A computer-implemented method to localize faults in a software application, the computer-implemented method comprising:
-
receiving a set of tests to apply on a software application, wherein the software includes both unknown fault paths and known fault paths; associating one or more domain elements with the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements based on those domain elements appearing in passing and failing tests; executing each test in the set of tests on the software application, and recording, for each executed test, a set of test information including; a test outcome on whether a specific fault has occurred, wherein a passing test is the test outcome with no fault that has occurred, and a failing test is the test outcome with a fault that has occurred; one or more executed statements in the software application, and for each execution of each executed statement in the software application, compute an abstract value based on its runtime behavior that indicates a domain element to which that statement execution corresponds; using the statistical fault localization technique which has been received, calculating a suspiciousness rating for each of the domain elements based on the set of test information which has been recorded, wherein the suspiciousness rating is computed for each executed domain element as a percentage of passing and failing tests that execute that domain element; and reporting a list containing a suspiciousness rating for each domain element in one of a decreasing order of suspiciousness rating and an increasing order of suspiciousness rating. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product for analyzing an application comprising a plurality of code fragments, the computer program product comprising:
-
a non-transitory storage medium readable by a computer system, the non-transitory storage medium storing software programming instructions capable of performing with a processor programming code to carry out; receiving a set of tests to apply on a software application, wherein the software includes both unknown fault paths and known fault paths; associating one or more domain elements with the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements based on those domain elements appearing in passing and failing tests; executing each test in the set of tests on the software application, and recording, for each executed test, a set of test information including; a test outcome on whether a specific fault has occurred, one or more executed statements in the software application, and for each execution of each executed statement in the software application, compute an abstract value based on its runtime behavior that indicates a domain element to which that statement execution corresponds; using the statistical fault localization technique which has been received, calculating a suspiciousness rating for each of the domain elements based on the set of test information which has been recorded, wherein the suspiciousness rating is computed for each executed domain element as a percentage of passing and failing tests that execute that domain element; and reporting a list containing a suspiciousness rating for each domain element in one of a decreasing order of suspiciousness rating and an increasing order of suspiciousness rating. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system for analyzing an application comprising a plurality of code fragments, the system comprising:
-
a computer memory capable of storing machine instructions; and a processor in communication with said computer memory, said processor capable of accessing said machine instructions to perform; receiving a set of tests to apply on a software application, wherein the software includes both unknown fault paths and known fault paths; associating one or more domain elements with the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements based on those domain elements appearing in passing and failing tests; executing each test in the set of tests on the software application, and recording, for each executed test, a set of test information including; a test outcome on whether a specific fault has occurred, one or more executed statements in the software application, and for each execution of each executed statement in the software application, compute an abstract value based on its runtime behavior that indicates a domain element to which that statement execution corresponds; using the statistical fault localization technique which has been received, calculating a suspiciousness rating for each of the domain elements based on the set of test information which has been recorded, wherein the suspiciousness rating is computed for each executed domain element as a percentage of passing and failing tests that execute that domain element; and reporting a list containing a suspiciousness rating for each domain element in one of a decreasing order of suspiciousness rating and an increasing order of suspiciousness rating. - View Dependent Claims (16)
-
Specification