Axini develops tools for model based testing (MBT) and model based software engineering (MBSE). Model based testing is a software testing approach in which test cases are automatically generated and executed from a model, a formal specification of the system under test. This approach allows for a high degree of test automation and more thorough testing.
Models are written in a domain specific language (the Axini Modeling Language) using a text editor included in our web application. The models can be visualized to inspect the states and transitions of the underlying symbolic transition system. When a user clicks on a state or transition in the visualization, the interface includes a feature that navigates to the corresponding location in the textual model. This aids modelers understand and reason about their models, which is valued greatly.
The screenshot below shows a small conceptual model with a relatively concise visualization, but it's already starting to become difficult to comprehend due to the overlapping edges and labels. Models of real systems are generally quite large and complex. Different visualization techniques (or combinations thereof) are desired for improved reasoning about such models.
Visualization of a formal model
Additionally, certain concepts in the modeling language such as parallelism, synchronization, non-determinism and time cannot (yet) be visualized effectively.
Furthermore, linking the visualization to the model text is sometimes difficult when textual models make use of macros, where the actual definition of a part of a model is hidden inside a macro. The tool currently jumps inside the macro, but users often want to see where the macro is used. You could research how to deal with source code locations for generated code / meta programming in general and how to apply this in the Axini visualization.
Another visualization topic relates visualizing coverage and test execution. In the tool, users can see test case coverage and final states, but they cannot visualize how the system 'walked through' the model during test execution. A temporal visualization with video player-like controls could allow users to animate or step through the execution path, providing insights into the testing process. This would require research into visualization techniques that incorporate temporal elements, either applying existing research to our domain or developing novel approaches for model-based testing contexts.
Possible research questions
There are several puzzles and research questions that students can work on.
What techniques can be used to improve the visualization of large complex models?
How can concepts such as parallelism or non-determinism be visualized effectively?
How can visualization elements effectively be mapped to their corresponding source locations, when dealing with generated code, macros, and meta-programming constructs?
How can test execution paths be visualized over time, allowing users to see how the system 'walked through' the model during testing?
Recent work
Recent work at Axini on this topic:
- Wike Duivenvoorden (2025) compared several visualization techniques and found that interactive features help visualization of large models.
- Dennis van der Werf (2018) explored the technique of semantic zooming to aid visualizing large models.