Jason Anderson and Tom Arnold gave an overview of EDT (Enterprise Development & Test), part of the Team System V1 tools, tonight in building 42 after the geek dinner. In attendance besides me were Steve, Dana, Don Alvarez, Todd Bishop, and Robert Scoble. Here are my notes from the discussion:
- Visual Studio "Whidbey" (VS2005) moving towards lifecycle management features, designed to reduce complexity and improve the communication process around the software produced from Visual Studio. VS2005 is still focused on providing a platform for ISV partners to build additional plug-ins to support lifecycle management in Visual Studio.
- EDT tools include Static Analysis and Profiling (dev) and Test Authoring and Test Execution (test).
- VS Test product features to include the ability to author tests, with UI extensions leveraging existing windows and some new windows in VS2005.
- Test execution is support via the new Test Explorer window in Visual Studio. This window shows views by "All Tests" and by "Categories" with a customized hierarchy. The results of a test shows up in the Results window, and by double-clicking on a specific test you can drill down to the details.
- A Test Types construct exists to support simplified test development and to support test extensions. The types consists of Web, Manual, Load, Unit, and 3rd Party tests (in Tech Ed bits). (Aside- the Load test type sounds amazing! I can't wait to try this- I've wanted to see something like this in a VS tool for a LONG time.) In later bits the Automated, Generic, and Ordered test types will be supported.
- Jason did a demo (major league unscripted) of writing a unit test in VS2005. By building a simple test class and adding attributes for a declarative programming model for testing. This is really simple, and is similar to NUnit. The test run configuration feature is very cool- it allows you to run the test on remote machines, set parameters for code coverage, and to script deployment of supporting files. The test results upon build is also avaliable in a series of XML files that can be read independently for purposes of build verification testing. Very cool stuff.
- Default unit code test generation can yield basic level of coverage with skeleton code that would yield "Inconclusive" test results. This enables you to mitigate human errors associated with unit testing, in the form of missed classes or methods.
- Tom did a demo on unit test code generation. At the namespace, class, or method level you can generate unit test code with various configuration options that enable you to set various properties for the generated unit testing code. For an unscripted demo, this went very smoothly, with only a glitch or two. They also demonstrated how private methods can be covered through the unit testing code, with the reflection code generated automatically.
- TDD processes with VS2005 were discussed, and a demo was performed. It was very fun stuff, even with a minor glitch when generating the stub code for a method that wasn't yet written but was referenced in a test method. Jason and Tom were pretty fearless, running stuff ad hoc out of yesterday's build.
- Tom demo'd the support for Manual test types (more useful than I thought it would be) and the Web test types. The Web test type launches an instance of IE with a panel that can record your actions in the browser, and save the results as a test script back in VS2005. Interesting tool. The Load test type is amazing. Again, I would have killed for something like this a few years ago when I was working more in the web space. Very useful.
- I'm tired of writing notes... trust me, this is cool stuff.
Overall, there were a bunch of cool questions and discussions about specific features for the V1 version of the product, along with lots of ideas and comments related to potential VNext features. This was an awesome discussion- and WELL worth the time. Thanks to Jason and Tom for staying with us until nearly midnight tonight to go over this stuff.