FAULT LOCALIZATION USING CONDITION MODELING AND RETURN VALUE MODELING
First Claim
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 at least a portion of a software application;
associating one or more domain elements with the portion of the software;
receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements;
executing each test in the set of tests on the portion of 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 portion of the software application, andan abstract value for each executed statement in the portion of the software application that indicates a domain element to which it corresponds; and
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.
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 create a uniquely powerful tool that automatically detects failures and localizes faults in PHP Web applications. The fault-localization techniques evaluated combine variations on the Tarantula algorithm with a technique based on maintaining a mapping between executed statements and the fragments of output they produce, mapping of conditional results, and values returned from function calls. These techniques have been implemented in a tool called Apollo, and evaluated by localizing 75 randomly selected faults that were exposed by automatically generated tests in four PHP applications. Our findings indicate that, using our best technique, 87.7% of the faults under consideration are localized to within 1% of all executed statements, which constitutes an almost five-fold improvement over the Tarantula algorithm.
52 Citations
20 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 at least a portion of a software application; associating one or more domain elements with the portion of the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements; executing each test in the set of tests on the portion of 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 portion of the software application, and an abstract value for each executed statement in the portion of the software application that indicates a domain element to which it corresponds; and 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for analyzing an application comprising a plurality of code fragments, the computer program product comprising:
-
a storage medium readable by a computer system, the computer readable medium storing software programming instructions capable of performing with a processor programming code to carry out; receiving a set of tests to apply on at least a portion of a software application; associating one or more domain elements with the portion of the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements; executing each test in the set of tests on the portion of 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 portion of the software application, and an abstract value for each executed statement in the portion of the software application that indicates a logical statement to which it corresponds; and 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. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. 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 at least a portion of a software application; associating one or more domain elements with the portion of the software; receiving a statistical fault localization technique that uses the set of tests to localize at least one fault in the domain elements; executing each test in the set of tests on the portion of 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 portion of the software application, and an abstract value for each executed statement in the portion of the software application that indicates a logical statement to which it corresponds; and 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. - View Dependent Claims (20)
-
Specification