Test plan parameters
In this tab the user can specify all the configuration files that are used to carry out the fault injection. Each file has the following properties:
Used to refer to the configuration file in other parts of the test plan.
A path to the original version of the configuration file, this file is parsed by the configuration file handler.
A path where the faulty configuration file created by each fault injection will be created, this file is written by the configuration file handler.
The class name of the configuration file handler that can parse the input file and write the output file in the appropriate format. By clicking on ... it is possible to choose the class among the ones provided by the plug-in jar currently loaded.
The below these field there is a table that shows all the parameters specific to the configuration file handler.
In the lower part of the tab there is a row of buttons that can be used to verify that the parsing is happening correctly:
- View original file
This button can be used to verify that the input file is correctly found.
- View parsed file
This button can be used to check that the parsing is working correctly This is particularly useful with generic configuration handlers, by on it it is possible to verify that the parameters are correct
- View serialized file
This button shows what happens when the abstract representation of the input configuration file is serialized with the configuration handler, it can be used to verify the proper functioning of the serialization
- Save parsed file
This last button can be used to save in a file the abstract representation of the input configuration file.
This section allows to define error generators. Error generators are set of faults. In the upper part of the tab it is possible to choose among the multiple error generators that can be defined in one test plan using the drop-down list. By clicking on the button Add it is possible to add a new error generator and by clicking on the Remove button it is possible to delete the currently selected error generator. Each error generator has a name that can be set by selecting the generator in the drop-down list and editing the Name filed on the top of the tab.
Error generators are defined by combining multiple fault templates. Fault templates are operators that can, given the input configuration files and a set of parameters generate a set of faults. Fault templates can use sets of faults generated by other fault templates as parameter. This combination of fault templates is represented with a tree on the left of the tab. If a fault template A uses the set of fault generated by template B then A is a parent of B.
In order to modify the tree of fault templates the user interface provides four buttons:
This button add a new child template to the selected template, if the template can't accept a child then a new sibling is added.
This button creates a new sibling of the selected node (if the parent accepts new children) which is a copy of the selected template and all its parameters (and therefore descendants).
This button adds a new template between the currently selected template and its parent.
This button remove the selected node and all its descendants.
When a fault template is clicked its properties are presented on the left side of the tab. The properties are the following:
This property defines a name for the fault template instance, this value is used to represent the fault in the tree and helps in understanding it.
This property specifies the class that implements the fault template. By clicking on ... it is possible to choose the class from a list of available classes in the currently loaded plug-ins
Below the general properties of the fault template there is a table that shows all the parameters that are specific to the fault template.
In the bottom of the tab there are two buttons that help in creating the error generator.
- View fault scenarios...
This button shows a window that allows to view all the faults generated by currently selected fault template. The window allows to view effect of each fault both on the abstract representation (XML) and the native representation.
- View fault domain description...
This button shows the internal representation of the set of faults that can be used for debugging purposes.
This tab allows to specify which implementation of the runner will be used and provide a value for its parameters. The runner class is responsible to take the faulty configuration files generated with the error generators and test their effect on the system. The class can be specified in the Runner field.
This tab is used to run the actual fault injection. The fault injection can be carried out using all the error generators defined in the test plan of only one of them. This can be specified with the Error generator radio button and the associated drop down list.
Each fault injection will generate some logging data, use the Output directory field to specify this data will go.
To start the fault injection click on the Start, to interrupt a running fault injection click on Stop. When the fault injection is running the progress bar indicates how many faults remain to be injected, the ETA field indicates the estimated time to finish the fault injection.
When the results for the injection of a specific fault are available they are shown in the table in the middle of the tab. The Description column contains a brief description of the fault, the Results column shows the results of the injection, which can be either OK, meaning that all the tests completed successfully, FAILED TO START that indicate that the system couldn't be started and TEST FAILED, that indicates that some of the tests failed. By moving the mouse over a line it is possible to view the diff between the input configuration files and the faulty configuration files. By double clicking on a row of the table is possible to see the output of the scripts that where run to test the system.
To save the results of the fault injection to an XML file for later analysis use the button Save resilience profile....
This tab is used to add jars that contain the implementation of handlers, fault templates and runners to the test plan. To add a new jar use Add jar..., to remove the selected jar use Remove. Currently Add directory... is not implemented.