FMIMOBSTER (Functional Mockup Interface Model Based Tester) is a tool that applies the principles of model based testing to improve the conformance of Functional Mockup Units to the Functional Mockup Interface Standard.
|
|
6 gadi atpakaļ | |
|---|---|---|
| lib | 6 gadi atpakaļ | |
| project | 6 gadi atpakaļ | |
| src | 6 gadi atpakaļ | |
| .gitignore | 6 gadi atpakaļ | |
| LICENSE | 6 gadi atpakaļ | |
| README.md | 6 gadi atpakaļ | |
| build.sbt | 6 gadi atpakaļ |
FMIMOBSTER (Functional Mockup Interface Model Based Tester) is a tool that applies the principles of model based testing to improve the conformance of Functional Mockup Units to the Functional Mockup Interface Standard.
This is a command line application that tests an FMU. It uses the a slightly modified version of the tool [modbat] to generate random walks in a graph that represents all possible interactions with an FMU.
Such graph looks like the following.
Each edge refers to a method that is implemented in a Scala class.
The graph is enriched with state machines from other files. For example:
You can see the files used to created the state machine in [graphs].
If, during a test, the unexpected happens, the tool produces a error trace and a seed, that allows for the reproducibility of the test.
Download the app jar.
Run the following, for the list of commands:
java -jar FMUAnalyzer-assembly-X.Y.jar --help
where X.Y denotes the app's version.
To run the model based testing on an FMU in path path/to/fmu.fmu, the following command is used:
java -D"org.slf4j.simpleLogger.defaultLogLevel=trace" -jar .\FMUAnalyzer-assembly-X.Y.jar mbt -d path/to/fmu.fmu -n 10 -l 10 -o "results"
where
-n is the number of random walks to produce
-l is the maximum number of self-loops executed
-o is the results folder
X.Y denotes the app's version
While the app supports running a command in a directory of FMUs, it is advised to run the app for each FMU individually, and in a separate process. This is because some FMUs might crash the java process, which means the other FMUs did not get tested.
Unfortunately, the app does not spawn separate processes for each walk.
This is a simple sbt project.
See build.properties and build.sbt for sbt and scala versions.
The following will produce the jar of the app.
sbt assembly