fladdimir / csa-vcom

Simulation-based Integration Testing as Part of a Build Pipeline

Home Page:https://fladdimir.github.io/post/csa-vcom/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

verify the validity of the model transformation?

RiversLee opened this issue · comments

Hi, I saw that your BPMN model was transformed to SimPy model, How do you verify the validity of the model transformation?

Hi! The generation logic for creating a casymda-model (Python-file) from the .bpmn file is checked as part of the integration tests of the casymda-package (be aware that the casymda-parser is only able to handle a simple subset of .bpmn following additional conventions).

Regarding the simple proof of concept in this repository, the token-like default process-animation of the casymda/Simpy model indicates that the designed processes are correctly executed in the generated model.
The generated model is just plain Python, so it is also possible to step through the executed code (e.g. "following" the processing of an entity), in order to do a "spot check"/review of the processing logic.

Of course this is not really sufficient for proper validation/verification. For more complex cases it will surely make sense to record some KPIs of the simulated processes (as e.g. entity lead-times, number of executed processing steps, etc.), and compare those to expected values from the actual system or from rough estimates done beforehand.

Another interesting approach we experimented with was to log the entry times of all entities at all process steps, and to feed this event log into a process-mining algorithm, which was then able to reconstruct the executed processes.
Obviously, generated graphical representations showed differences (since the process log did not contain any spatial information), however, the resulting graph was essentially the same, thereby showing general correctness of the transformation.
(PM4Py worked well there)