Friday, August 17, 2012

TFS Adminsitrators Toolkit released for VS2012


I have recently upgraded the TFS Administrators Toolkit to Visual Studio 2012. It's now released at Visual Studio Gallery under the exiting name TFS Administrators Toolkit for VS2012.
   
Technical update 
The Visual Studio 2012 version uses the TFS 2012 object model and integrates directly into the new Team Explorer and in the "new" Team Explorer Home dropdown.
Apart from the technical modifications there is no new functionality in this release. The 2010 version remains unchanged .

You can find the different versions at
I also done experimental work with a stand-alone version, but I don't plan to make a public release of it to Visual Studio Gallery. 

Friday, July 27, 2012

Mockups for Test Plan Builder

Working with customers and real life projects with Microsoft Test Manager sometimes exposes you to situations where everything is not so clear and simple as you’re used to. The ALM Rangers Test Tooling and Test Release Management guidance tries to address some of those situations.

Tooling for Test Release Management
But even if there is guidance, it only tells you what you need to do , it doesn’t do it for you, and today it’s can be a lot of repetitive manual work doing Test Release Management.  Building the PoC for a UI for Deep Copy test suites I started to think about what kind of tooling would be needed to ease or remove some of the pain points and manual work related to MTM and Test Release Management


Mockups for Test Plan Builder
With some Ideas for what’s missing then building a new test plan in one hand, and a bunch of code and “tools” used in different situations in the other hand I started to think about putting them all together.  To figure out how, and what’s missing I made a mockup using the new PowerPoint mockup features of VS 2012. After trying out some ideas I ended up with something like this. If you have any feedback thoughts or comments, I would love to hear them …

TFS Test Plan Builder project 
As a first step towards realizing the Test Plan Builder I’ve started a codeplex project, TFS Test Plan Builder and started to put together the basic parts. It's still a long way to go before it will be ready for release.

Sunday, July 15, 2012

Proof of Concept for a UI for Deep Copy test suites

Microsoft introduced a new feature in Microsoft Test Manager (MTM) 2012 – Deep Copy of test suites. Unfortunately it’s not accessible through the MTM user interface, instead it’s only available through a command line utility. It’s not the best of user experiences..

The new Deep Copy feature
There is a Copy Test Suite feature in MTM 2010 , but it only copies a test suite so the new test suite links to the same test cases. The new Deep Copy feature in MTM 2012 copy test suites also, but it also creates copies of every test case and re-link all links in the suite. This is a great feature if you need to preserve the state of your test cases or create a baseline.

Deep copy exposed through the TFS API
Luckily the TFS API exposes methods for the new deep copy feature. The API version is, as well as the command line implementation, asynchronous. Using the API to do a deep copy is quite simple if you have the Id’s for everything. It’s actually more work building an user Interface to present a test plan and making it possible to view and select the test suites in the test plan.

An embryo for future tooling
Building the UI for the Deep Copy PoC got me thinking. There is a lot of manual work involved then building a new test plan then moving from one sprint to another, or then moving to a new release. Building the UI for the Deep Copy PoC soon got me thinking about adding other features to improve the experience of building a Test Plan.

The source
This PoC is build against the Release Candidate of VS and TFS. As usually I’ve zipped and uploaded the PoC source to my sky drive. You will find it here: https://skydrive.live.com/?cid=5D46CAE8C0008CF0&id=5D46CAE8C0008CF0%211862

Thursday, June 28, 2012

Community TFS Team Tools released at CodePlex

I’ve  just pushed the button and released the Community TFS Team Tools Codeplex project, and the binaries is now packaged and downloadable from Visual Studio Gallery as Community Tfs Team Command line utility. All in effort to make the tools and source code easily available.

Links and locations
You will find the Community Tfs Team Tools codeplex project at http://tfsteamTools.codeplex.com and the latest stable binaries at http://visualstudiogallery.msdn.microsoft.com/36986691-931d-4e2e-bbc2-1b2f03a4eff5

Based on the ALM Rangers Quick Response Code sample
The Community TFS Team Tools project is based on the ALM Rangers Quick Response Code Sample, and extended with more features. If you want to know more about the ALM Rangers or the Quick Response Sample that started it all, please read the following posts 
http://blogs.msdn.com/b/willy-peter_schaub/archive/2012/06/22/introducing-the-visual-studio-alm-rangers.aspx
http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/11/quick-response-sample-command-line-utility-to-manage-team-foundation-server-teams-and-users.aspx

Future plans
Jason Stangroome did a PowerShell Quick Response sample based on the rangers Quick Response Sample ;) ,  you can find it at https://github.com/codeassassin/PsTfsTeams. This got me thinking about exposing the commands as PowerShell Commandlets, preferable without duplicating the code. So if I find a way, or hopefully get pointed at it,  it might be the next feature.

Monday, June 18, 2012

TfsTeam command line utility

Last week I did a quick job to unblock a rangers project and create a command line tool for managing team and team members.  Although the tool released quickly unblocked the rangers project, the feature set was far from complete, so why leave it half done?

Short recap
In the beginning of June my fellow rangers discovered a missing feature, there was no tooling to enable automation of managing the new features of teams and team members in TFS 2012 RC. A day later we had a working solution with the basic feature set (List teams, create team, add user to team) that after reviews got published as a code sample. For those more interested you can read more about it the following posts http://blogs.msdn.com/b/willy-peter_schaub/archive/2012/06/13/highlighting-the-decline-of-alm-rangers-cadence.aspx  and  http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/11/quick-response-sample-command-line-utility-to-manage-team-foundation-server-teams-and-users.aspx

Completing the feature set
After a short brainstorming exercise I came up with the following basic features ListTeams, GetDefaultTeam, SetDefaultTeam, CreateTeam, DeleteTeam,RenameTeam, ListTeamMembers, addUser, RemoveUser as a suitable feature set for a first release. As I got most things setup and figured out already it didn’t take long to implement the complete feature set.

The resulting exe and source code can now be downloaded from my skydrive until I can get an official place to put it to.

 

Next step
The next step is most likely to release it on codeplex and Visual Studio Gallery as a community tool. And then start building a backlog, witch at the moment contains a couple of minor fixes and perhaps looking to add PowerShell Commandlets to it.

Thursday, June 7, 2012

Generate accumulated Release Notes in TFS build, part II

By using the  BuildReport and CompareLabel activities we can create a build report, but can it be transformed into a release notes document ?
This post continues the previous post Generate accumulated Release Notes in TFS build http://mskold.blogspot.se/2012/05/generate-accumulated-release-notes-in.html

The out of the box report
By default the build report activity generates a report that is "changesets" centric, It lists all changesets the files and associated work items of each changesets. This might be good for a build report, but if you want a release note report, you probably would want it "work item centric", listing associated work item first and maybe list changesets without work item as Undocumented changes.

Changing the output
Luckily for us, we have the option to change the output. The BuildReport activity creates a xml file with the report data and then creates a html report by applying a xslt transformation. By supplying our own xslt file we can customize the output to suite us better, with some libations as we're bound to the data in the xml file.

The customized report
Even though the xml data isn't structured in the way we would prefer for our needs, actually the row xml data is also kind of changesets centric. But by using xslt it's still possible to extract a list of work items. By applying this xslt file https://skydrive.live.com/?cid=5D46CAE8C0008CF0&id=5D46CAE8C0008CF0!1058, the resulting report looks something like this.
  

Tuesday, May 22, 2012

Community TFS Build Manager – Change Drop Location Preview


A couple of weeks ago I was faced with a sudden replacement of the server hosting the drop file share for a collection hosting 150+ builds. Even though it didn’t’ please some of the builds admins, I remained calm and promised them I could easily change drop locations for all builds with the Community TFS Build Manger. I was quite sure the Build Manager had a feature to batch change the drop location of selected builds.

But I was wrong
Much to my surprise I couldn’t find any way to change the drop location using the Community Build Manager.  I can say I looked for more than a while, as I was quite sure it was possible, but at last I had to surrender to the state that it wasn’t possible using tfs build manager.  Somehow I must have mixed up the feature set with my own hacks or simply assumed it would be included. 

No need to panic  ;)
I knew I had implemeted a similuar feature a long time ago, After a short diging I found what I was looking for. I had implemented a Change Drop Location feature back in 2009 in a tool/hack TfsBuildAdmin and I could probably use it or rewrite it again. It turned out that the 2009 TfsBuildAdmin tool was against the old build API and I had already rewritten the Change Drop Location feature against the new tfs2010 build API. This meant that I had a solution to batch update 150 build drop locations. First problem solved!

A promise is a promise
But I still had a problem; I kind of had promised that the Change Drop Location feature was included in the Community TFS build Manger. And of course it would be best to have such features integrated in a common tool like Build Manager.  So I simply emailed Jakob Ehn and Michael Fourie and described the problem, the solution and offered to assist in developing the feature set.

Build Manager Change Drop Location feature
This is the result so far, then selecting (multiple) builds and right clicking you get a new menu item Change Drop Location. Once selected it presents you a form to select update method. You can do both search and Replace updates and force a standard drop location for all build definitions using a couple of macros such as $(TeamProject)  and $(BuildServer)
You also have an option to update drop locations for existing builds (to ensure that the link in the build reports works for existing or old builds)
 

Preview download available
If you can’t wait until the next release of Tfs Community Build Manager I have put together a preview of the standalone application with the Change Drop Location feature enabled. You can download it from my SkyDrive https://skydrive.live.com/?cid=5d46cae8c0008cf0&resid=5D46CAE8C0008CF0!1052&id=5D46CAE8C0008CF0!1052

Update 2012-06-02 This code is now committed to the main branch for Tfs Build Community extensions and can be downloaded and built using the following changeset http://tfsbuildextensions.codeplex.com/SourceControl/changeset/changes/76886.