Method and apparatus for software simulation
First Claim
1. A method of software simulation of a target software without actually running or testing the target software, the method comprising the steps of:
- reading a first set of configuration files that contain details of the code to be simulated, the simulation parameters, and output format;
reading a second set of configuration files that contain details of the rules to be applied to the code being simulated;
loading rules which describe the expected behavior of the software, the rules being loaded from said configuration files;
reading said target software program code;
constructing a program model, which is a memory representation of program structure of the target software;
attaching the loaded rules to specific nodes in the program model in accordance with the rules;
running a plurality of simulation algorithms on the target software program without running the target software, to check for defects and obtain metrics and other attributes of the target software code, wherein running the plurality of simulation algorithms on said target software program comprises determining context sensitivity and data structures, upon completion of operation processes values of variable from multiple caller methods, generating an output with defects and other results reported by the plurality of algorithms; and
displaying the output on an interface.
0 Assignments
0 Petitions
Accused Products
Abstract
A software simulation method and program storage device for software defect detection and obtaining insight into software code is disclosed, where simulation consists of executing target software program code for multiple input values and multiple code paths at the same time, thus achieving 100% coverage over inputs and paths without actually running the target software. This allows simulation to detect many defects that are missed by traditional testing tools. The simulation method runs a plurality of algorithms where a plurality of custom defined and pre-defined rules are verified in target software to find defects and obtain properties of the software code.
30 Citations
52 Claims
-
1. A method of software simulation of a target software without actually running or testing the target software, the method comprising the steps of:
- reading a first set of configuration files that contain details of the code to be simulated, the simulation parameters, and output format;
reading a second set of configuration files that contain details of the rules to be applied to the code being simulated;
loading rules which describe the expected behavior of the software, the rules being loaded from said configuration files;
reading said target software program code;
constructing a program model, which is a memory representation of program structure of the target software;
attaching the loaded rules to specific nodes in the program model in accordance with the rules;
running a plurality of simulation algorithms on the target software program without running the target software, to check for defects and obtain metrics and other attributes of the target software code, wherein running the plurality of simulation algorithms on said target software program comprises determining context sensitivity and data structures, upon completion of operation processes values of variable from multiple caller methods, generating an output with defects and other results reported by the plurality of algorithms; and
displaying the output on an interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
- reading a first set of configuration files that contain details of the code to be simulated, the simulation parameters, and output format;
-
52. A non-transitory program storage device readable by computer, tangibly embodying a program of instructions executable by said computer to perform a method of software simulation of a target software without actually running or testing the target software, the method comprising the steps of:
- reading a first set of configuration files that contain details of the code to be simulated, the simulation parameters, and output format;
reading a second set of configuration files that contain details of the rules to be applied to the code being simulated;
loading rules which describe the expected behavior of the software, the rules being loaded from said configuration files;
reading said target software program code;
constructing a program model, which is a memory representation of program structure of the target software;
attaching the loaded rules to specific nodes in the program model in accordance with the rules;
running a plurality of simulation algorithms on the target software program without running the target software, to check for defects and obtain metrics and other attributes of the target software code, wherein running the plurality of simulation algorithms on said target software program comprises determining context sensitivity and data structures, upon completion of operation processes values of variable from multiple caller methods, generating an output with defects and other results reported by the plurality of algorithms; and
displaying the output on an interface.
- reading a first set of configuration files that contain details of the code to be simulated, the simulation parameters, and output format;
Specification