@@ -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:
115135Save 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