GENERATING ADDITIONAL USER INPUTS FOR FAULT DETECTION AND LOCALIZATION IN DYNAMIC SOFTWARE APPLICATIONS
First Claim
1. A computer-implemented method for analyzing an application comprising a plurality of:
- code fragments, and where the application requires user input, the computer-implemented method comprising;
generating an initial input for the application;
executing at least a portion of the code fragments that comprise the application;
associating execution information with the code fragments that have been executed;
determining with an oracle, an evaluation of at least one execution characteristics that these code fragments exhibited on execution;
prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the execution information associated with the code fragments that have been executed; and
generating additional inputs for the application based on the code fragments that have been prioritized and based on execution information associated with the code fragments that have been executed.
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.
-
Citations
20 Claims
-
1. A computer-implemented method for analyzing an application comprising a plurality of:
- code fragments, and where the application requires user input, the computer-implemented method comprising;
generating an initial input for the application; executing at least a portion of the code fragments that comprise the application; associating execution information with the code fragments that have been executed; determining with an oracle, an evaluation of at least one execution characteristics that these code fragments exhibited on execution; prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the execution information associated with the code fragments that have been executed; and generating additional inputs for the application based on the code fragments that have been prioritized and based on execution information associated with the code fragments that have been executed. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- code fragments, and where the application requires user input, the computer-implemented method comprising;
-
8. 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; generating an initial input for the application; executing at least a portion of the code fragments that comprise the application; associating execution information with the code fragments that have been executed; determining with an oracle, an evaluation of at least one execution characteristics that these code fragments exhibited on execution; prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the execution information associated with the code fragments that have been executed; and generating additional inputs for the application based on the code fragments that have been prioritized and based on execution information associated with the code fragments that have been executed. - 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 processor, a monitor, and an input device; a suitable storage medium for storing data and accessible by the computer processor; and an initial input generated for the application; an execution unit for executing at least a portion of the code fragments that comprise the application and associating execution information with the code fragments that have been executed; an oracle for determining an evaluation of at least one execution characteristics that these code fragments exhibited on execution and prioritizing the code fragments in the application based on the evaluation produced by the oracle, and based on the execution information associated with the code fragments that have been executed; and additional inputs generated for the application based on the code fragments that have been prioritized and based on execution information associated with the code fragments that have been executed. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification