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.
We currently have a minimal debugger integrated into the view of our application. We are seeking a student to explore and expand the capabilities of this debugger. The goal of this thesis project is to investigate and implement advanced debugging features, such as enhanced visualization, tracing, and the ability to step backward and forward through code execution.
Example
Consider the following simple model fragment:
state = :login if username == "admin" state = :dashboard else state = :error end
With the current debugger, a user can only see the current state while executing a run.
An improved debugger could provide:- A clear timeline view of state changes (:login → :dashboard → …).
- Tracing of variable values (e.g., username, session flags) across steps.
- The ability to step backward to inspect how an error occurred, or step forward to predict outcomes under different conditions.
Such features would make debugging model-based systems more interactive and insightful, helping developers identify mistakes faster and understand model behavior in depth.
Possible research questions
There are several puzzles and research questions that students can work on.
- Debugging features
What kind of data (execution traces, state history, variable snapshots) is needed to implement advanced debugging features?
- Debugging MBT
How can a debugger be effectively integrated in the context of Model-Based Testing, where behavior is often non-deterministic or concurrent?
- Visualization
What are the best ways to visualize execution paths so that developers can quickly understand where things went wrong?
Thesis directions
- View Exploration: Enhance the integration with the current application view to provide intuitive state and data visualization.
- Tracing Mechanisms: Implement execution traces with history and replay support.
- Step Back/Forward: Add functionality for navigating backward and forward through code execution, improving error detection and correction.