S. Somasegar is the corporate vice president of the Developer Division at Microsoft. Learn more about Somasegar.
One of the components of Visual Studio Team System 2010 is Lab Management. We first talked about this at the most recent PDC and we have seen quite a bit of excitement from our customers on this.
It is obvious that developers and testers are faced with ever-increasing complexity in the applications they build and test. This is true both for what we do at Microsoft and for everybody else out in the world doing software development.
As part of building VSTS 2010, we wanted to build the right tools that enable you to build the highest quality application. The gap we found and addressed, was the speed and scale of the Develop – Build – Deploy – Test cycle and its use of technology like virtualization. Our investment in Lab Management was specifically to address this gap.
Developers are frustrated with too much bug “ping/pong” with their test counterparts and have a lack of access to distributed environments. Testers don’t get the right tools and right attention and after spending 30-50% of their test cycle time on test setup most of their bugs get resolved with a “not reproducible” resolution.
To address those challenges we set out some basic principles – a) environment set up should take minutes and not weeks, b) walls between developers and testers need to come down, c) build automation extends to environment provisioning, build deployment and testing, d) eliminate bug “ping/pong”.
Lab Management uses virtualization technology and deep integration with our overall Application Lifecycle Management model and System Center Virtual Machine Manager to deliver on these principles. It is built specifically to accelerate setup/tear down/restore of complex virtual environments to a clean state. We solve the no-repro problem by allowing testers to file rich bugs with links to environment checkpoints that developers use to recreate bugs in complex environments. With one click of a button the developer can launch a virtual environment that exactly matches the one in which the bug was found. Finally, we extend build automation dramatically by automating virtual machine provisioning, build deployment and build verification in an integrated fashion. We believe this approach will enable teams to embrace change and be more agile in an ever demanding world.
Here is a more detailed example of how this can work for you.
When a tester is testing against a virtual environment and finds a bug, with a single click they can take a checkpoint of the entire environment (multiple VM’s) where they are testing. A link to the check point, which is just a few bytes, is automatically attached to the bug along with additional rich information such as a time indexed video, action log, historical debugging log and more based on how configurable options the tester selects.
A developer, upon getting an alert on a new bug, can open that bug from the IDE and find all the rich information along with the check point link included in the bug. For the first time, the developer will not need to ask the tester what he/she was doing or spent long hours trying to recreate the environment. They can simply double click on the link to the environment and a light weight lab environment viewer opens the entire environment with multiple VMs and allows the developer to restore the state of the environment with a click. The developer now has the an environment to use for debugging using historical debugging tools like we have coming in VSTS 2010 that helps them to rewind in code and find out the sequence of events or program flow that lead to the bug.
As you can imagine, Lab Management will significantly improve the developer-tester workflow and will help the development effort be a lot more productive and effective.