FAULT DETECTION AND LOCALIZATION IN DYNAMIC SOFTWARE APPLICATIONS
First Claim
7. 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;
executing at least a portion of the code fragments that comprise the application;
recording a correlation between the code fragments that have been executed and execution characteristics that these code fragments exhibited on execution;
determining with a oracle, an evaluation associated with at least one part of the execution characteristics of the code fragments that have been executed; and
prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the correlation between the code fragments that have been executed and the execution characteristics exhibited by those code fragments.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a system, computer program product and a computer implemented method for prioritizing code fragments based on the use of a software oracle and on a correlation between the executed code fragments and the output they produce. Also described is a computer-implemented method generates additional user inputs based on execution information associated with path constraints and based on information from the oracle. Advantageously, the embodiment is useful in a test generation tool that generated many similar inputs when a failure-inducing input is found, in order to enhance fault localization. Further, described is a computer-implemented flow for extending the existing idea of concolic testing to applications that interact with persistent state.
62 Citations
17 Claims
-
7. 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; executing at least a portion of the code fragments that comprise the application; recording a correlation between the code fragments that have been executed and execution characteristics that these code fragments exhibited on execution; determining with a oracle, an evaluation associated with at least one part of the execution characteristics of the code fragments that have been executed; and prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the correlation between the code fragments that have been executed and the execution characteristics exhibited by those code fragments. - View Dependent Claims (8, 9, 10, 11, 12)
-
13. A system for analyzing an application comprising a plurality of code fragments, the system comprising:
-
a computer processor, a monitor, and an input device; a suitable storage medium for storing data and accessible by the computer processor; and an execution unit for executing at least a portion of the code fragments that comprise the application; a recording unit for recording a correlation between the code fragments that have been executed and execution characteristics that these code fragments exhibited on execution; an oracle for determining an evaluation associated with at least one part of the execution characteristics of the code fragments that have been executed and prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the correlation between the code fragments that have been executed and the execution characteristics exhibited by those code fragments. - View Dependent Claims (1, 2, 3, 4, 5, 6, 14, 15, 16, 17)
-
-
16-1. The system of claim 15, wherein the evaluation produced by the oracle corresponds to security vulnerabilities in the generated application.
Specification