Tag | TDD Posts

I'm still prepping a few posts on F# and Design by Contract (DBC), so stay tuned in the next day or so. But, I recently read through the altdotnet mailing list about conducting interviews and phone screens. Jeremy Miller had a great response to this that I felt needed its own response. I've been interviewing people all throughout my career and I've definitely picked up on things as time goes on, honing the craft as it were. Cloning Myself It's true in the past I've been guilty of wanting someone ...
Recently among other places it was asked on the altdotnet list about the strategies of unit testing with regards to assemblies and naming This message here caught my eye regarding putting your NUnit tests in the same assembly as the code under test. The message states about putting the tests in the same assembly : There are a couple advantages to this approach: The nearness of the files will make it easier (and therefore more likely) that developers will work on the test in tandem with the class ...
Last night was the first user group meeting of 2008, and it was my first meeting - I have blogged about it before, just being the socially inept loner that I am!!, I just haven't got round to going. The presentation was on Test Driven development TDD (Another post coming on that!) from a guy called Craig Murphy - this is a really interesting subject to me as we adopt TDD as best we can, it does however sometimes gives way to deadlines!! It was reassuring to see that we go about TDD in the right way ...
The Tampa Bay chapter of the International Association of Software Architects (IASA) is dedicated to building a community of professionals interested in topics related to software architecture. This organization welcomes all interested professionals. Whether you are a senior enterprise architect at a fortune 100 company or an aspiring architect with only a few years of experience. When: 1/31/2007 6:30 PM - 8:30 PM Topic: The Perfect Pattern Storm, where TDD meets UX and MVP As host of ARCast.TV, ...
Philly.NET has recently announced the upcoming Code Camp on Jaunary 12th. As you may notice, Brian Donahue of Philly ALT.NET is leading the ALT.NET track which is shaping up to be quite good. Below are the speakers confirmed and their sessions for the code camp: ALT.NET In Practice [Panel] ASP.NET MVC - A New Way To Build Web Apps [Jeff Deville] Fundamental Domain-Driven Design [Dave Laribee] Decoupling Your Design - Dependency Injection with Windsor [Jeremy Jarrell] Design Patterns [Don Demsak] ...
I've been playing around with mock objects using Rhino.Mocks for the last few months, but today was the first time that I had an unfettered coding win and became a true convert. I was introduced to NUnit about five years ago from a co-worker (thanks Dewayne) and gradually became a true believer. Unfortunately, I was a late-bloomer in the area of mocking, so by the time I finished my last big project I had left a suite of about 500 database driven tests that took almost 2 hours to run and were a maintenance ...
Earlier today I had a pretty good discussion regarding multithreaded unit tests and the best way to accomplish them. For example we want a way to find deadlocks in our applications and so on. Some may say that that's not really unit testing, but integration testing. Fair enough, and that's a debate for another time. If you're a fan of MbUnit as I am, you'll probably notice the goodness of the ThreadedRepeatAttribute. This custom attribute when applied to a Test method can run the given method concurrently ...
Updates: Part 3: Invariants Part 4: Object Ownership/Assertions & Assumptions Part 5: Frame Conditions/Inheritance/Boogie Part 6: Implementing a non-null string collection Part7: Spec# Wrapup In a previous post, I talked about the essentials of Spec# and where it's going. After the first post, I talked with Greg Young a little bit about the possibilities and potential of Spec# and Design by Contract. Greg gave a session on Spec# at DevTeach, so it's great to talk to someone passionate about this ...
The Rockville .NET User Group (ROCKNUG) will hold it's meeting on 12/12 from 6:30-9PM. This month will cover MbUnit, a favorite tool of mine, by Jay Flowers. Listed below are the details: Release 1.6 Wednesday, December 12, 2007 6:30-9:00 PM Montgomery College, Rockville Humanities Building - Room 103 MbUnit by Jay Flowers In this talk Jay will introduce you to some advanced unit testing techniques. MbUnit offers easy ways to create parameterized unit tests. He will explorer fixtures like the RowTest ...
Updates: Part 2: Method Contracts (Preconditions/Postconditions) Part 3: Invariants Part 4: Object Ownership/Assertions & Assumptions Part 5: Frame Conditions/Inheritance/Boogie Part 6: Implementing a non-null string collection Part7: Spec# Wrapup As I continue to dig deeper into BDD, TDD and DDD, I've been intrigued by Design by contract and Eiffel. For a quick introduction for those lazy to visit those links, Design by contract means that designers of software should define precise verifiable ...
Behavior Driven Development (BDD) has been a big interest of mine lately and the way I tackle software design and development. If you're looking for a good introduction as to what it is, follow the links plus a good introduction from Dan North and one from Tom Adams. Just in case you've been living under a rock or off on some distant planet, you may ask, "Well, what is it?". Well, in a way, it inherits from Test Driven Development and Domain Driven Design. TDD had a failing by just performing tests ...
It's time for the next installment of the monthly Caffeinated Codey awards, where the link love flows for my favorite posts from the month. For Most Likely to Cause My Co-Workers Grief...Jeff Atwood's post Don't Forget to Lock Your Computer where he talks about the wonderful world of goating. Don't get excited, you'll have to go elsewhere for your daily dose of bestiality. However, this post does offer plenty of good ideas on how you can punish your co-workers the next time they leave their computer ...
Now that Visual Studio 2008 and .NET 3.5 have officially shipped, it's time to start looking at the additional products and tools that build on top of that foundation. Scott Guthrie has an excellent post that details the roadmap for the Web related products. The biggest announcement is that the ASP.NET 3.5 Extensions will have it's first public preview available sometime next week. If you don't know what the ASP.NET 3.5 Extensions are, here is the list (taken from Scott's post): ASP.NET MVC: This ...
If I had it to do all over again, I would have TDDed my first linked list from the very beginning. One thing about the Computer Science classroom that always made me feel ill at ease was the almost complete lack of discussion about good programming practice. I think this is probably more of a symptom of university culture at large than any one particular thing that CS departments are to blame for. My proof of this is the almost complete lack of any focus on practical application when I was receiving ...
Lately a lot of my work has focused on BizTalk for some custom solutions. I'm a big fan of BizUnit as a unit testing tool for BizTalk, as it is pretty much the only option. But, what happens when you call custom components (dlls) through Expression or Message Assignment Shapes? Take for example this custom code snippet public class OrchestrationHelper { public static void ProcessDocument(XLANGMessage bizTalkMessage) { Stream bizTalkStream = (Stream)bizTalkMessage[0].R... // ...
This was my first chance to see the MVC (model view controller) Framework as when I was at Tulsa TechFest, I was presenting at the same time and didn't get to see Palermo's version of it. I was blown away by Scott Hanselman's great presentation skills. He is definitely a great speaker. Phil Haack was also in the audience (the new PM for the MVC Framework). I am really excited about seeing this come out. Like Monorail, you can also plug in Brail or NVelocity as well as the default. Being able to have ...
The idea behind test-driven design (TDD) is to incorporate testing into the process of constructing your system, rather than waiting for developers to check in their code and to build a system that someone else tests. TDD has some advantages worth considering: Defects are identified sooner in the development process, which makes delivery of a reliable system cheaper and quicker. Developers have more scope to improve the quality of code by refactoring, since they can run unit tests as they are making ...
This afternoon we had the opportunity to talk with Ron Jacobs about his keynote and what he calls the Perfect Pattern Storm. This show is definitely enlightening if you are a developer or architect and wondering how TDD is changing the way we architect software. Check out Ron on his blog and through his show ARCast. Listen to Ron discuss the Perfect Pattern Storm! Technorati tags: Ron Jacobs, Patterns, HDC ...
When I first heard about Behavior Driven Development, I dismissed it as a trivial re-branding of TDD (Test-Driven Development). I figured that either someone was getting way too anal about "getting the words right" or else a concerted effort was being made to make TDD more palatable to the skeptics in the same way that Agile made Extreme Programming principles more mainstream through the magic of less controversial language. It's hard not to be cynical about re-branding efforts when you've had to ...
Yesterday I was lucky enough to grab one of the coveted spots for the upcoming ALT.NET Conference in Austin, Texas this October. The registration was capped at one hundred participants and appears to have filled up within the first few days of being announced. The organizers include several of my favorite bloggers (Ayende Rahien, Scott Bellware, Jeremy Miller, and Roy Osherove), so I am very excited about the opportunity to meet them and hear their thoughts on several issues that have caught my attention ...
Recently, I completed a project for a video game prototype course that involved pathfinding. With Flash Player 9's speed gains over Flash Player 8, I thought Flash would be a good medium to demonstrate pathfinding in an online setting. If you've never heard of Test Driven Development (TDD), it is a programming practice whereby the programmer writes tests for objects in his program before writing a single line of code. He writes his tests based on his expectations of how the objects should behave. ...
On a recent ARCast Ron interviewed Jeffrey Palermo. The thing that really impressed me was that he really separated the Agile principles from implementation approaches. The fact that the goal is working code over comprehensive documentation and that designing by testing is just one way of getting there is a much more rational statement than I often read. Similarly there is an ARCast.tv clip with Peter Provost where he discusses TDD. The great thing is he discusses where architecture fits with TDD. ...
Scott Berkun has an amusing post on ADD (**shole Driven Development), a parody on TDD which occurs when the technical decision-making process in an IT Shop is hijacked by an over-bearing personality who always manages to persuade people into doing things a certain way because the cost of opposing that person is simply too high. The comment section of this blog post is definitely worth reading and coins some other noteworthy processes that are rampant in the industry, such as BTPWAL (Blame the People ...
Tampa .NET CodeCamp III opened for registration and speakers sign up. www.TampaCodeCamp.com Register here- http://www.tampacodecamp.co... We are actively seeking more speakers. You can get an early peek at the great things going on this year though sessions already submitted. So far we have nominations for Programming Web 101/201/301, Using SMS (Short Message Service), imagine the possibilities!, Working with an XML Data Structure in SQL 2005 and Strongly , Typed Objects, Real world WPF ...
Have you seen the new buzz phrase for TDD? Pretty much, they just changed the name from Test Driven Development, to Behavior Driven Development. It's an NLP experiment that I'm looking forward to seeing fleshed out. Long story short, the problem with TDD is the word "Test"... *WAY* too much baggage, and charge on that one single word. Consider: "Testing your code is a good if you're a new programmer" "Our department does testing at the end of a project ... if there's time" "I'm a developer, I don't ...
I already had the book xUnit Test Patterns: Refactoring Test Code on my Amazon wishlist. But after reading Sam Gentile's xUnit Test Patterns and evolving TDD and test automation post today about the book and its topics I've decided to go ahead and order it now. I still have 3 books that I am currently reading ( 1, 2, 3 ) but this will jump to the front of the line when it arrives. EOF Technorati tags: TDD, xUnit, Test Patterns ...
Thanks to Andrew Stopford and everyone else who works on MbUnit development. MbUnit 2.4 was just released. If you are not unit testing or practicing TDD in your projects, I don't know how you could choose plain old NUnit over MbUnit. If you are using regular NUnit it is very simple to convert your projects MbUnit, they use the same [Test] attribute. MbUnit has: Row Testing: [RowTest] [Row("Hello")] [Row("Goodbye")] public void TestString( string myString ) { // do your tests in here... }More row ...
The workshop presenters were Scott Bellware and Jean-Paul Boodhoo. Both developers that I highly respect. There were also some amazing developers in attendance like Roy Osherove, Oren Enei, and Udi Dahan. I was hoping that the workshop didn't go over my head but I was happy to see that they introduced the concepts at an easy to follow pace. Jean-Paul said that people who understand TDD usually have an "ah ha!" moment. I think I had that moment during Scott's session on Domain Driven Design. Everytime ...
Test Driven Development: Testing methodology associated with Agile Programming in which every chunk of code is covered by unit tests, which must all pass all the time, in an effort to eliminate unit-level and regression bugs during development. Practitioners of TDD write a lot of tests, i.e. an equal number of lines of test code to the size of the production code. (Agile Testing: Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing ...
I've recently been involved with a project that involves a BizTalk 2006 application. I've been focusing most of my time on improving the testing infrastructure, and trying to automate alot of the deployment and configuration tasks with the goal of getting to the point where we can setup a Continuous Integration environment. I'm happy to say that I think we're pretty much there, but not without having to overcome some hurdles along the way. This is my first encounter with BizTalk and it was a great ...
A friend from the London .NET users group, Peter Ibbotson, on hearing that I had started looking into Cruise Control .NET for continuous integration said that before doing anything I should look at Zi Makki's blog about CIFactory, a master setup tool for creating a source code tree complete with various tools such as SubVersion, NCover, NDepends all hooked into CruiseControl.NET with NAnt as the build script automating the processing. Well, I've just spent a challenging but very satisfying day and ...
They all have to start someplace. So as I sit here watching Lost I finally decided to start blogging after reading thousands and thousands of blogs over the past 3 or 4 or more years Living in the Bay Area means I'm currently in the center of the web 2.0 bubble. It was great when I was searching for a new job 4 months ago. I currently work for a startup ( I'm employee #6 ). We are doing a lot of cool things with .NET, web services, SOA and SaaS. There might even be a developer community around the ...
I'm getting to teach TDD and MVC to some really great people who are really enjoying it. But in doing this, I've come across an interesting question. How do you transform your organization into something that can only be called "a learning organization"? Think about it, what would your work be like if every one was coming into work saying, "I was listening to a pod cast this weekend, and it got me thinking about ....." and two minutes later someone else interrupts saying, "oh, that's cool, it totally ...
For more than 5 years now, Apple has used buzzwords like "stylish", "sleek", "elegant" to stress the design of their products. I think that in the early 00's they realized that not only are people looking for functional stuff, they're looking for sexy stuff. And, for the average user of their stuff, being sexy was much more important than being functional. Oh, yeah, and they were ahead of the game with their technology. “The competition hasn’t even caught up with our first generation iPod, and we’re ...
I would like to take the time to introduce myself. I have been a lurker on geekswithblogs for a few months now and have finally decided to start a blog of my own. I have been a programmer on the MS platform for the past 8 or so year. In that time I have been predominantly a VB/VB.Net programmer, in the retail and finance/accounting (small company and customers) sectors. My goals over the next year or so are to become a better programmer by mastering methodologies like Domain Driven and Test Driven ...
Lately I have gotten quite an awakening to the realities of waterfall testing processes. This has come in the form of writing tests for my current client as they are preparing for a major release. So what have I learned? First, large development groups end up with large testing teams. This makes for challenges in coordinating efforts within the group. To overcome this I believe there needs to be well defined expectations and a single owner of the effort. The second thing I have learned is that such ...
I believe in having 3 layers of testing: Unit Tests, Acceptance Tests, and Exploratory Testing. Each of these layers is somewhat independent of the other and each layer alone essentially attempts to validate that the entire system works. However, none of these layers alone is perfect, but having all 3 in place simultaneously makes the situation much better. Unit TestsUnit tests are the tests that the programmer writes as he develops the software. We develop using TDD and the unit tests are automatically ...
Another great day at CodeMash! The morning keynote was awesome, I really like Neal Ford's presenting style, I just get the feeling he's a real straight shooter and he always let's you know exactly what he's thinking. Listened to an interesting session on rapid web development in TurboGears, looks like I need to learn Python now so I can explore TurboGears a little further. The second session I sat in on was 'the end of n-tier' which was basically a parallel processing, grid computing, cache product ...
I don't know if this was a bad, good or great year regarding jobs. In this year I was in 2 different places, is strange, at least for me. First, I quit my job at Andromaco Labs. and I went to a great job: Clarius Consulting. I'm not lying if I tell you I felt all my dreams came true the first time I put a feet inside that office. You probably know who are these guys or heard about Daniel Cazzulino, Victor Garcia Aprea or Fernando Simonazzi. Maybe they are part of the elite of .NET Developers in the ...
I will be giving a presentation on TDD to the Winnipeg .Net Users Group on Jan 9. Should be an interesting talk. Got about 2 hours and I want to go through a quick powerpoint and talk about some of the core concepts and benefits. Then dive right into developing something simple with TDD. Not sure what I'm going to use yet for my coding sample. I might take the classical bowling game example. But Bowling has been done ad nauseaum... Sudoku could be fun to do, but last time I tried TDD'ing that I ended ...
The idea for this blog entry came from a conversation I had the other week with another consultant in the company that I work for. He was saying how he had used TDD for several projects and believed it just won't work in an enterprise wide project. This surprised me since most of the articles I have read and podcasts I have listened to say that this is not the case. You will hear various people say that agile methodologies can or can not work in an enterprise environment. I believe it is true that ...
The purpose of this blog posting is to hopefully identify my own pitfalls as well as help others out in avoiding pitfalls that I encountered on my current large project. I recently (8 months ago) started my own business with a partner. My partner has vast knowledge of the marketplace (the domain expert), and I have vast knowledge (or so I would like to believe), of the technologies needed to create our business model in relation to the Technology point of view. Let's say for the sake of argument ...
A very cool thing just happened. One of my classes has a 100% next to it in NCoverExplorer. Granted it's pretty much just a data store for now, but it's still 100%! Heck yes, I'm agile. If you haven't downloaded TestDriven.net, go get it now. You can right click in Visual Studio and run NUnit, debug your tests and get code coverage statistics. Technorati tags: Code Coverage, TestDriven.net, NCover, NUnit, TDD ...
Many people have heard about TDD (Test Driven Development); but have you heard of DDD? It’s called Defect Driven Development. Where the heck did this terminology come from? It all started at one of my recent clients. Some of us started wondering about the highly aggressive application development schedule set by the management. We are also wondering if we even have enough time to complete all our work during the development phase. A colleague and I started discussing that we might be able to complete ...
A couple of months ago, two to be exactly, I finished reading the book "Test-Driven Development in Microsoft.NET". This book was first published by Microsoft Press early 2004 which is immediatly the biggest con of the book. The authors James W. Newkirk and Alexei A. Vorontsov did a great job explaining the basics of TDD (and I expected a lot more on TDD <disappointed/>), Refactoring, the NUnit framework, the difference between Programmer and Customer Tests (using the FIT framework) ...
Just got done reading this book. I must say, it started out well but by the end of the book I just wanted it to end.The method used in this book was TDD with SOA. Now, don't get me wrong I have nothing against SOA, but after reading this book it seems when you try to test a SOA application, your focus narrows more and more on the data layer. By the end of the book the author was basically making test code for the database. Now, correct me if I'm wrong, but I was under the impression that this is ...
I am beginning to create a large specialized content management system for my workplace. This Content management system is for a School District. I have looked at a handful of CMS's and came to the conclusion that in order to get mine to do what I want, it would take more effort to re-work their open source CMS's than to just create one myself. This is mainly due to the fact that this CMS will perform ALOT of specialized functions. I am going to do my best to blog about the entire process, about ...
I've been working exclusively alone on a project for a while and have as much liberty as any developer could hope for. I'm a blessed man. Nonetheless, I have tried to kind of "pretend" like I am working in a team environment that has regimented deadlines. This is mostly due to integrity and partly due to prevention for laziness...how easy is it to constantly be researching solutions without implementing them? There was a necessary period of growth in skill sets that had to occur and while I certainly ...
[This post is long, and is mostly a brain dump] I recently started a bender of coding where I am trying to move all of my transaction management code out of my Controllers (MVC controllers) and in to a more appropriate place. But since I am striving for a POCO model where in the hell can I put this code and still seperate all of my concerns? I start digging into "POJOs in Action" and see that Chris uses a class called a Facade to manage this transaction junk. It sits between the view logic and the ...
Adopting TDD has been an enlightening experience. I have found that doing things the right way usually seems to be the hard way. Or at least you have to take your lumps when applying TDD to an application that was initially developed without TDD. I have been reading a book that could quite possible have the worst title I have ever heard. This book cannot stand on its title alone. The only reason I am reading it is because it was recommended to me by someone who I trust. I believe this is a book that ...