Spec Explorer: A Model-Based Testing tool


Thorough, consistent, and extensible testing of systems remains one of the biggest challenges in creating and maintaining software systems.


The Spec Explorer tool released today on DevLabs tackles that problem using Model-Based Testing techniques.



Spec Explorer 


What Is It?


Spec Explorer, is a tool for modeling software behavior and generating test suites from those models. 


Models can be viewed as graphical renderings to understand and analyze the expected system behavior and communicate it to others.  Model size can be scoped with regular expressions.  The generated test suites can be run standalone in the Visual Studio test framework or other unit test frameworks.


Why Use It?


Several Microsoft projects of various sizes have already used Spec Explorer as part of their development process.  Using Spec Explorer has helped those teams create test cases more quickly, ensure predictability of requirement coverage, and support the projects’ lifecycle management and software updates.


Spec Explorer’s unique features make it easier to learn than other Model-Based Testing tools. Engineers with no modeling background can create models of systems and features, then generate tests in a short amount of time.  Studies on a large-scale project with over 300 test suites have shown a 42% average productivity gain over manually-created test suites.


While we’ve tuned Spec Explorer based on the feedback of teams within Microsoft, we now need your feedback to ensure Spec Explorer meets the needs of customers working on a variety of project types and sizes. 


Download Spec Explorer today, ask questions or send feedback via the forum, and stay current via the team blog.


Namaste!

Comments (10)

  1. Josh N says:

    In test driven development, tests should drive the design of the system, this style is at odds with automated test generation. Test generation means you are specing after modeling, so you could end up with extra modeling code that was not yet proven to be needed.

    The only way to prove code is needed is to write a test first.

    or am I missing something?

  2. Ian Ringrose says:

    @Josh N

    We have unit testing and system testing.

    Test Driven Development is about unit testing

    As far as I can tell, Spec Explorer is about system testing.

    You need both unit and system testing…

  3. phuff says:

    @Josh N

    When you say “spec’ing after modeling”, you are probably thinking about some type of structural or architectural model describing system design. Spec Explorer behavioral models are specs. They are just functional descriptions of how the implementation should behave, once it’s created. They contain no assumptions or commitments on how the system should be designed. So the tests generated from Spec Explorer models are perfectly suitable for TDD. Once you write your spec (= model) using Spec Explorer and generate tests from it, your next task is to design and implement a system that will gradually pass these tests.

    @Ian Ringrose

    Spec Explorer can generate both unit and system tests.

    Nico Kicillof & Polita Paulus

  4. Marius Filip says:

    Apparently, Spec Explorer does not install in Visual Studio 2008 Shell.

  5. nicok says:

    @Marius Filip

    Yes, it does. There are two downloads, one for VS 2008 and one for VS 2010. The project page (http://msdn.microsoft.com/en-us/devlabs/ee692301.aspx) has links to both on the right. If you have further questions, please use the Spec Explorer forum: http://social.msdn.microsoft.com/Forums/en-US/specexplorer/threads.

    Nico

  6. EdgeTech says:

    Very useful tool, thanks for innovating.

  7. nolisj says:

    I got the book Wolfgang Grieskamp mentioned ("Model-based Software Testing and Analysis with C#"), and one of the things that excited me when I read that was this idea that you can create a test based on the specification of an application, that in fact you are testing the specification as you go along and as the specification changes, thereby preventing this disconnect between the specification and the application which we always encounter in a real world application.

    However, one thing that prevented me from really focusing on it is that the tooling seems so immature: I don’t know how it works with Visual Studio; I don’t know how my C# program can take advantage of it; I can not edit the generated evaluation result (from the (then) GLEE model) etc. Essentially, it becomes a solution that has existing problems to tackle but seems so unwilling to solve them.

    I just hope that the new Spec Explorer should address this issue. I am really waiting for this idea to take off, ever since I’ve been working on an ASP.NET application that has thousands of manual test scripts, that’s just waiting to be automated.

    More power to you and your team and I hope this does not stop and in fact flourishes inside and outside Microsoft.

  8. xiaopywsp says:

    I just hope that the new Spec Explorer should address this issue. I am really waiting for this idea to take off, ever since I’ve been working on an ASP.NET application that has thousands of manual test scripts, that’s just waiting to be automated.

  9. New Tool shows "A great excellence of Microsoft" in "Software Testing World"

    Really very happy

  10. nano says:

    soooo usefull thx ^_^