Event driven graph explorer for model-based testing of software
First Claim
Patent Images
1. A system for error-checking a software product comprising:
- a model of the software product having places, transitions, and tokens, wherein a transition is operable to pass at least one token from at least one place;
a simulation engine for manipulating the software product and the model of the software product to cause an occurrence of an event in the software product and to cause an occurrence of a corresponding transition in the model of the software product, and to compare a state of the software product after occurrence of the event with the state of the model of the software product after occurrence of the corresponding transition.
2 Assignments
0 Petitions
Accused Products
Abstract
A software testing system uses a graph traversal algorithm to explore a model simulating a software product in order to identify errors in the software product. The model employs a Petri'"'"'s net construct for maintaining state and governing transitions. In particular, the model mediates between a test driver and the software product. The model-based approach is usable both to validate the design of the software and verify the implementation of that design. Using the Petri net model, the test space is bounded.
-
Citations
21 Claims
-
1. A system for error-checking a software product comprising:
-
a model of the software product having places, transitions, and tokens, wherein a transition is operable to pass at least one token from at least one place;
a simulation engine for manipulating the software product and the model of the software product to cause an occurrence of an event in the software product and to cause an occurrence of a corresponding transition in the model of the software product, and to compare a state of the software product after occurrence of the event with the state of the model of the software product after occurrence of the corresponding transition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for testing a software product to identify errors in the software product comprising:
-
model means for describing the software product; and
driver means for driving the software product and for driving the model means in a corresponding manner, whereby differences in the behavior of the software product relative to the model means are identified as errors in the software product.
-
-
11. A method of producing error-checked software code comprising:
-
producing a body of software code to be error-checked;
creating a model of the desired functionality of the software code to be error-checked, wherein the model comprises at least one Petri net; and
dynamically determining whether there is a difference in behavior of the software code to be error-checked as compared to the behavior of the model, whereby if there is such a difference in behavior, the difference is logged as an error in the software code to be error-checked. - View Dependent Claims (12, 13, 14, 15, 16, 17, 19, 20)
-
-
18. A model editor for creating and editing a Petri net model of a software body to be tested for errors, wherein the model is hierarchically constructed of one or more components, each component containing one or more elements, wherein the model editor comprises a hierarchical visual user interface having:
-
a first window containing a visual depiction of the of one or more components; and
a second window containing a visual depiction of one or more elements corresponding to one of the one or more components, wherein user selection of a component causes display in the second window of the visual depiction of the one or more elements associated with that component.
-
-
21. A method for testing a software product to identify at least one error in the software product comprising:
-
receiving input by the software product from a simulation engine; and
in response to said input, causing the occurrence of an event in the software product, whereby a state of the software product after the occurrence of said event is comparable with a state of a corresponding model of the software product to identify the at least one error in the software product.
-
Specification