Skip to content

Commit a70f9dd

Browse files
committed
Expand roadmap: add sections on model visualization, test case minimization, Hypothesis integration, and Jupyter support.
1 parent 213ab41 commit a70f9dd

1 file changed

Lines changed: 45 additions & 2 deletions

File tree

doc/roadmap.md

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,26 @@ Static model analysis before execution:
8787
- Detect always-enabled steps (missing guards)
8888
- CLI command: `pyosmo validate mymodel.py`
8989

90+
### Model Visualization
91+
92+
Generate visual representations of models for communication and debugging:
93+
- Mermaid and GraphViz diagram export of steps, guards, and transitions
94+
- Coverage heatmaps showing step execution frequency
95+
- CLI command: `pyosmo visualize mymodel.py`
96+
- Inline rendering in Jupyter notebooks
97+
98+
```bash
99+
pyosmo visualize mymodel.py --format mermaid
100+
# Output: steps, guards, and transitions as a Mermaid state diagram
101+
```
102+
103+
### Test Case Minimization / Shrinking
104+
105+
When a failure is found, automatically find the shortest step sequence that reproduces it (similar to Hypothesis shrinking):
106+
- Replay and reduce failing sequences
107+
- Binary search and delta-debugging strategies
108+
- Output minimal reproduction script
109+
90110
### Tutorials & Documentation
91111

92112
- Tutorial series: Getting Started, Data-Driven Testing, Scenario-Based Testing
@@ -115,7 +135,29 @@ Greedy step selection to accelerate coverage:
115135
Save and replay generated test sequences:
116136
- Save sequences to JSON
117137
- Replay saved sequences for regression
118-
- Test case minimization for failure reproduction
138+
139+
### Hypothesis Integration
140+
141+
Bridge MBT with property-based testing:
142+
- Provide a Hypothesis strategy that generates step sequences from a PyOsmo model
143+
- Leverage Hypothesis shrinking for automatic failure minimization
144+
- Combine random model exploration with Hypothesis's database of interesting examples
145+
146+
```python
147+
from pyosmo.hypothesis import osmo_strategy
148+
149+
@given(osmo_strategy(MyModel))
150+
def test_model(steps):
151+
# Hypothesis drives step selection, shrinks on failure
152+
pass
153+
```
154+
155+
### Jupyter Notebook Integration
156+
157+
First-class support for interactive model development:
158+
- Inline model visualization (Mermaid/SVG diagrams)
159+
- Live coverage display after `osmo.run()` in a cell
160+
- Interactive step-by-step execution for debugging
119161

120162
### Performance Profiling
121163

@@ -137,7 +179,8 @@ Richer error context:
137179

138180
- **Parallel execution**: Multi-process test generation
139181
- **Adaptive algorithms**: Runtime-adapting step selection
140-
- **Model visualization**: State machine graphs (GraphViz/Mermaid)
182+
- **LLM-assisted model generation**: Generate model skeletons from requirements, user stories, or API specs using LLMs — extending the `model-creator/` concept to general-purpose model scaffolding
183+
- **Live testing dashboard**: Web-based dashboard for long-running online tests showing real-time coverage progress, step execution heatmap, and current model state
141184
- **Distributed testing**: Multi-machine coordination
142185
- **Constraint solving**: Z3/OR-Tools integration
143186
- **Probability-based end condition**: Random stopping with configurable probability

0 commit comments

Comments
 (0)