SpecExplorer: Model-Based Testing made practicable

Play SpecExplorer: Model-Based Testing made practicable
Sign in to queue


Keith Stobie, Wolfgang Grieskamp, and Nico Kicillof gave a presentation on the new version of Spec Explorer 2010 for Visual Studio. Spec Explorer is a visual tool for modeling software behavior and generating test suites from those models. Spec Explorer’s approach to model-based testing has been shown to greatly enhance productivity of test case creation, to ensure predictability of requirement coverage,  and to support lifecycle management and software updates. Models are typically written in C# and controlled by a configuration language which allows to express scenarios and test purposes. Microsoft itself chose Spec Explorer as a cornerstone of the effort to validate open protocol documentation, developing more than 200 test suites validating over 40,000 requirements for networking protocols in a production environment.





Download this episode

The Discussion

  • User profile image

    Might I suggest you guys check out the GUI used in the StateFlow extension to Simulink, as their diagrams are a tad clearer to follow.


  • User profile image

    We use MSAGL, which is a fairly powerful engine, and would allow us to change the graph appearance in many ways. What would you suggest? Using rectangles instead of ellipses and diamonds for states? Anything else?

  • User profile image

    Actually, what StateFlow does is different than Spec Explorer. In StateFlow you model a system with a graphic language, StateCharts. In Spec Explorer, you model a system with a full-fledged programming language, C#, which is significantly more expressive. We then generate a state machine from this C# model, just for the purpose of visualization for the user. So the state machine is not input, but output of the tool chain.

  • User profile image

    Thanks guys for a great little tool. So glad that its not just for vs2010 Wink
    However, what happens about the saved test cases? What if you have a development team and you have just the one model and the team is working of different parts of it. Then what? If you are working in a Agile/TDD space how does the model grow. Is it kept in TFS or SVN for example. Who adds the the modle (the change control process, requirements gathering) how is change communicated? 
    Really love how it generates the new test cases. Love how you can zoom in and out of the congative detail of the spec focusing on 'My Area'. Would be nice to layer of abstraction to the 'Zoom Out'  so a white box becomes a black box. This is another interpretation of the state graph just being a 'black line' versa a box called 'the system'. So as you zoom into 'the system' parts of the whole become exposed, eg it has a 'login' part a 'bid' part and so on.
    This is what happens in nature you have pond water, then as you look closer bits are merky,  closer still you see there is life in there, still further insect larva and so on. This allows better comprehension of the whole without overload.

    For Spec Explorer it might rely on the stricture of underlying code that it is decomposed into cognative abstraction layers this might be less performance code wise (other than usual n-teir design).


    Again nice work guys.

    Doug, UK.

  • User profile image

    Thanks Doug. You might want to take a look at the state hiding and grouping feature in the exploration result viewer (click the Manage Views button when you are seeing an exploration, create a new view and use the GroupQuery and HideQuery fields).

  • User profile image

    Why does Keith - the test architect - call these tests "Unit Tests"?

Add Your 2 Cents