I’m watching the Prashant Sridharan (Microsoft) keynote here at VSLive. He is demonstrating all the new features of Visual Studio Team System (VSTS). He just mentioned a feature planned for Version 2 of VSTS that caught my attention and I think is going to be very useful.
Currently the VSTS Testing Version includes a huge list of testing tools. When testing, VSTS captures all the information about your machines, network and application. The tester can look at live reports of this data while the tests are running. For example, while load testing an ASP.NET application you could look at the memory usage or number of page faults. The live reporting tool looks similar to the Performance Monitor app included in Windows. When a tester submits a bug report all this information is stored with the bug. The developer can look through this detailed list to discover what condition the machine was in when the bug occurred.
For VSTS version 2 Microsoft plans on using this information to create virtual machines to duplicate the exact environment that existed at the time the bug happened. Imagine that! You get the network and machine configuration exactly as it was at the moment your code died. You can generate your virtual PC’s, check out the code from source control based on the version in the bug report (did I mention that Microsoft has a new source control engine too?), install the app on the virtual network and now you have everything ready to debug the application.
Now I realize that this is many years away. I also realize that Microsoft tends to announce features which they later drop from their products. What I think is significant about this announcement is the virtual machine piece. We are going to see many innovative applications built around virtual servers, virtual networks and virtual clients in the next few years.