Contents tagged with tdd

  • RGRC is the new Red Green Refactor for Test First Development

    Test Driven Development (TDD), aka Test Driven Design, aka Test First Development, has long had a simple, virtuous cycle at the heart of its workflow: Write a failing test (run the test(s) – they should be RED) Make it pass in the simplest way possible (tests are GREEN) Now clean up the code (eliminate duplication and other code smells) (REFACTOR) When following this workflow, one can make steady, incremental progress on a project or problem with minimal risk of spinning one’s wheels for hours on end or trying to take on too large a task and becoming overwhelmed by its complexity.  It’s a great approach that I’ve practiced on countless occasions, and which you can easily practice by … more

  • The Art of Unit Testing Reviewed

    I recently finished reading Roy Osherove’s The Art of Unit Testing.  I was kind of splitting my time reading it and Growing Object Oriented Software Guided by Tests, which I just recently reviewed as well.  One nice thing about this book is that it comes with an eBook once you register it with Manning. Overall, I think this is a great book on unit testing.  Roy is certainly well-qualified to write on this topic, and he does an excellent job of describing how to get started with unit testing, how to get the necessary tools, and how to write your first test.  As the book proceeds, he goes into more detail on how to break dependencies and use mock objects, how to organize … more

  • Growing Object-Oriented Software Guided By Tests Book Review

    I finished this book a while back and just haven’t had a chance to write about it until now.    Growing Object-Oriented Software, Guided by Tests is a bit of a mouthful of a title, but it does describe the subject matter of the book pretty well.  I noted a few points of interest as I read the book, as I tend to do, that I’d like to share here along with my overall thoughts. I’ve read quite a few books on unit testing and writing quality software, so many of the concepts here were not necessarily new to me.  However, I do find that it’s valuable to see such topics presented from a variety of viewpoints, and since I also present and teach these subjects, I’m always … more

  • Economics of Software Quality

    When we talk about the quality of software, we must refine the discussion to make it clear whether we are talking about internal or external quality.  External quality refers to the software’s presentation and behavior from a user or customer’s perspective.  Internal quality refers to how the software was constructed, and how easy it might be to maintain or extend. External quality is often under the control of the project’s stakeholders, whether they are technical or not.  If the system has bugs, stakeholders can report them and request they be fixed.  If the UI is ugly, then can request updates to it.  If the system is counterintuitive to use and lacks validation … more

  • CIO Magazine on Agile Development

    The latest issue of CIO Magazine has a featured article on Getting Clueful: 7 Things CIOs Should Know About Agile Development.  It includes quotes from a bunch of developers, including some names you'll surely recognize if you follow Agile discussions at all, like Scott Ambler.  In addition to gurus like Scott, there's also yours truly in there, talking up the value of well-tested code as a long term gain on a short term investment.  If you're trying to adopt some agile practices within your organization, and expecially if you're looking to incorporate test driven development or continuous integration, this article might provide some good supporting evidence for your case with … more

  • ASP.NET Model View Controller Architecture

    A little while ago, Scotts Guthrie and Hanselman presented on MVC in ASP.NET (and Dynamic Languages) at the oddly named ALT.NET conference in Texas.  I'm with ScottH that "Alt" is a pretty silly name and something like Agile or Pragmatic would be a much better descriptor.  Alternative is not terribly descriptive since anything that differs from the norm is alternative, and not necessarily better.  It reminds me of how all music sought to be "alternative" regardless of its actual style just to earn cool points.  And nevermind that calling something and not actually owning that domain name is just asinine.  Incidentally, you can find the conference's actual … more

  • Speaking at Connection in Vegas in November

    I found out that I should be speaking at the DevConnections show this fall.  The show is being held in Las Vegas again, November 5–8th.  I apologize to anybody that had hoped to see me present last month in Orlando at the spring show – I was unfortunately out of the country due to circumstances beyond my control (but which you’ll see more details on in a future blog post very soon). At the Fall 2007 show I’ll be presenting the following: Test Driven Development and Continuous Integration for ASP.NET and VSTS I’ve given this talk once before myself and it was one of my talks this spring that was covered for me.  It’s one of my current … more

  • Display Current Bin Folder Content Information

    As part of my automated build and test process, I wanted to be able to confirm that my third party components were the proper version and, more importantly, that they were fully licensed.  For some components, I can create a new instance of the control or component and test its IsLicensed property.  For others, the assembly itself is different for evaluation versus professional versions, and another approach is required.  In the first case, the code required to test if the control is licensed is trivial – the second case requires slightly more work. These assemblies live in the /bin folder of my ASP.NET application.  The best way to determine whether or not the … more

  • Plasma v1.0 Release Available

    Plasma is an ASP.NET in-memory web server emulator that can be used for ASP.NET unit testing or automation.  Its initial codebase was written by Microsoft and its current incarnation is a community project licensed under the Microsoft Permissive License.  I’ve been working on the project with several others and have just put the initial release out on the CodePlex project site.  There are a lot of enhancements that have already been made that are not in this release, but I wanted to get the basic, vanilla implementation out there first, and then (hopefully soon) put out a 1.1 release with some of the many optimizations that we’ve already made.  Unfortunately, … more

  • DevConnections Fall 2006 Summary

    Got back home last night from DevConnections in Las Vegas.  It was a very good show this year in terms of content, products being launched, and numbers of attendees and exhibitors.  I think I had more people in my sessions than usual, too, and they all went well (i.e. the demos worked, nobody threw tomatoes at me).The keynote on Monday night suffered a bit from some audio issues and in general wasn’t as tremendously exciting as I thought it should have been given that ASP.NET AJAX Beta 2 was announced, along with Office 2007 and Sharepoint 2007 and, I believe, .NET 3.0.  Perhaps the sheer volume of announcements of products being released made it difficult to build buzz … more