Unit Testing

Customer visits are one of the more fun parts of my job.  Last week, Scott Wiltamuth and I visited three large enterprise customers to understand how they are using (or not using) our tools and technologies, what works well for them, what doesn’t work well for them, what some of their major pain points are, etc.  Scott runs the C# team and is a Developer Division veteran.  Each customer had their own set of constructive feedback, but a common theme emerged – all of them were interested in knowing more about Visual Studio 2005 Team System and how that can help them with team development.  These three customers were particularly interested in how Visual Studio 2005 Team System handles Unit Testing.

The Visual Studio 2005 Team Test Edition equips customers with tools to manage a wide array of unit tests, manual tests and web tests.  Unit Tests work on functions and methods and Visual Studio 2005 Team System makes it easy to manage and run unit tests. The customers reiterated basic problems most people face with unit testing – test creation, test organization, result reporting etc.  Visual Studio 2005 Team System has implemented features to address all these problems.  For example, to create unit tests, simply right-click in your code and select Create Tests. The Test Manager allows you to select which tests you need to run. You can group tests to test data access, business logic or other functionality in your code. Test results are easily published to the Team Foundation Server enabling you to share results via a portal site. Visual Studio 2005 Team System treats testing as a top-tier activity helping reduce the risks inherent with delivering complex applications. For more information, see Visual Studio 2005 Team System: Enabling Better Software through Better Testing.




Comments (10)

  1. Considering the latest (heated) debate around MS pricing of Team System I’d like you to think of this – how many ENTERPRISE developers who have ANY SAY in decisions about purchasing Team System do you think are reading this blog? These would be the ones to follow the links and learn more (I find it hard to beleive that there are still people who don’t know what Team System is, though).

    My guess is that this post will only attract more revolt from small and medium size shops who are dissapointed with MS position of marketing and intent of selling Team System to big corporations only.

    I really don’t understand MS position. If you want to sell Team System to "big guys" only, why are you promoting it through blogs? Note that for example I hadn’t even heard about Rational’s product (and others) that is supposed to compete with Team System up until Team System’s pricing was announced and the whole debate started. In contrast, I have been flooded with information on Team System. In a way, MS did "here’s our new beatiful system, developers; you can look, but you can’t touch".

    I think this is a wrong channel for the message you’re trying to send. Don’t "sell" Team System to your blog readers – they are hard working developers, small ISVs and people generally excited about technology, but not the ones who will be able to use it nor decide on if to buy it.

  2. JavaKid says:


    I think its really great that you are proactively going into the market and gathering feedback from your users. You make comment to the fact that you visited 3 LARGE Enterprise customers for your market study… and you do so in the context of Unit Testing.

    My question for you is do you believe Unit Testing is only reserved for those large enterprise corporations? Small development shops, ISV’s, consulting companies, independant contractors, students, hobbyists… what is there role in your vision of Unit Testing?

    Is software testing only done in the context of large teams, or is a part of general software engineering that teams and individuals use to build software?

    I think people like want to know what we are going to get when VS 2005 ships… without Team Services, will I have unit testing – test creation, test organization, result reporting etc. without having to buy Team Systems and a supporting OS?


  3. Alex Kazovic says:


    First let me say I am a fan of Microsoft technology especially .NET. But I feel that in the last few years Microsoft seems to have had a shift in direction. The focus now seems to be on enterprise software and large team development.

    For examples look at your latest blog and the comments. You talk about visiting 3 large enterprise customers. How often do you visit small ISVs or small end user companies? You sound surprised that unit testing is so popular. Well, it’s not only popular for large enterprise projects, but also smaller companies/teams like it. The problem is that unit testing is only available with Team Systems. Which customers are you looking to sell VS Professional to? Do you realize that these customers also want to do unit testing.

    Originally, Microsoft’s customers were the small ISVs and small team developers. It wasn’t the main DP department. You’ve lost touch with your core customer base.

    As another example take ADO.NET. It is built upon a disconnected model. Which is great to build large scalable systems. But there are many times when small organizations have no interest in scalability and prefer the ease of a connected model. The team responsible for ADO.NET keep hinted that they will tackle this, but things keep slipping in favor of improving the disconnected model.

    Which areas are the most profitable at Microsoft? Probably Windows operating systems and Office? Again, these products weren’t originally aimed at the large enterprise customers. It was the small departmental developer/individual. It then peculated through to the whole enterprise. Microsoft didn’t initially target the large enterprise IT departments.

    Financially, Microsoft has done best by looking after the small departmental developer/individual not by directly chasing the enterprise customer. If Microsoft’s core customers make the technology work it will spread through the enterprise.

    In summary, Microsoft seems to be chasing the enterprise customer in terms of requirements and pricing and leaving behind it’s core customer base which will result in declining revenues and unhappy customers.

    I hope things change.

  4. Don says:

    VisualStudio tools and the .NET Framework have revolutionized software development. It is now possible for a lone developer to produce a commercial-quality application.

    How many visits have you made to companies with one or two developers in the past three months? And does your answer have anything to do with the mess VSTS is in?


  5. Mark says:

    Okay, maybe this isn’t the place to ask this, but does anyone know if you can use VSTS Developer edition without a server and still create and manage unit test projects, etc.

    Sure you won’t get all the features enabled with server, but that would be great if I could just have the integrated unit testing and code coverage.

  6. Don says:

    Mark- Yes, you can use the Developer edition without the VSTS TFS server (for example, you can use VSTS developer edition with SourceSafe). I haven’t seen a formal list of which features require the server, but presumably unit testing and code coverage will run without the server.


  7. Alex Kazovic says:


    I felt I had to make another comment; not just to criticize Microsoft, but I really want you guys to improve.

    Anyway, your blog is beginning to sound like a PR exercise. If we take the latest entry there are two problems with it:

    1. You make it sound as unit testing is something brand new; whereas it has been around for a few years now and there are even tools that work with .NET.

    2. You appear to duck the heated issue with Microsoft’s approach. Months ago when Microsoft announced unit testing would be in Team Systems there was a huge furor as to why it was only in Team Systems and not other VS products. By at least articulating your view on this in your blog you would have gained more credibility. Even if the view was “tough, that’s our decision and we are sticking to it” or hopefully “over time we will push unit testing down the VS stack”. Any view is better than avoiding the issue.

  8. S. Somasegar says:

    Looks like this blog did hit a raw nerve with a bunch of folks. Thanks for the feedback. Let me try to address some of the key feedback points that I think I am hearing. I was away at an offsite for the last 3 days and hence the delay in responding to the feedback.

    Unit testing is not something new. We are providing unit testing for the 1st time as part of Visual Studio Team System. Of all the things that are coming out in VSTS, unit testing was the one constant thing that these customers wanted to talk a lot about, and hence I wrote about that.

    Whenever I am on the road, I meet with customers and ISVs (small, medium and large). With Visual Studio, I really want us to be providing tools that are relevant to all kinds of developers – whether they are in a small shop, or a large enterprise.

    3 weeks ago when I was outside the US, I met with a handful of what I call "small" ISVs.

    Unit testing or software testing in general, is done by ALL development teams – small or large. Microsoft is a classic example. We have teams that are literally thousands to developers to teams that have a handful of developers. I want our testing tools to be used by all the teams. The same is true for developers outside as well (whether they work alone, in small teams or as part of a large team).

    In v1 (VS2005), these tools are going to be available only on VSTS Developer Edition and VSTS Suite. Over time, we will need to figure out which tools (and when) we can push down the VS stack. We won’t get there for v1.

    You do not need the TFS server to be able to use our testing tools, including unit testing. This is also true of the statis code analysis tools, code coverage tools, profiling tools, that are available as part of VSTS Developer Edition.

    – Somasegar

  9. Michael Palmer says:

    You guys really blasted Somasegar about this stuff. Have any of you been using the latest CTP of VS2005? It includes full unit testing facilities without using TFS. It works great, I love it. Unless they’re planning on pulling that out of VS and allow it to only be a part of TFS, then you guys have nothing to worry or complain about.

    Yes, I’ve noticed MS’ latest moves into more Enterprise level stuff, but at the same time I’ve never seen them so proactively work with ISVs… MS Buddy anyone, daily blogs, etc? I live in a fairly desolate part of the country, but yet MS still comes to our region often for MSDN events, etc. Rarely do we have more than about 10 people show up to these events, but yet MS continues to schedule new ones and treat us as if we’re in a crowd of 1000+ developers.

    As many mistakes as Microsoft has made (who hasn’t), nobody here seems to give them credit for the work they are doing right now with ISVs.

    We could all be a little nicer… and reserve our harsh words for when they’re really needed. Don’t forget…. Microsoft made .NET. I thank them for this, because I was already so sick of COM/Win32 programming. We could all still be using VC++ or VB6…. how would you like that? I sure wouldn’t.

  10. Devindra Chainani says:

    Michael – appreciate your words of support. Can I get your email id? would love to get more feedback on the MSDN events. I work as a Business Manager in the Developer Division. My email id = devic@microsoft.com