I’ll Write About Wine Next Time… I Promise!
Although I usually feel completely comfortable BSing my way through just about anything, having been at Inertia Beverage Group for only a little over a month, I’m going to show everyone who knows anything about wine some respect and write about something I do know about. Unfortunately for some of our readers that means completely “dorking out” and writing about software development, specifically, Test Driven Development.
Test Driven Development (TDD) is a development methodology that has gained quite a bit of exposure over the last few years and has been shown to increase software quality and reduce bugs released into production systems. This directly translates into lower costs in software development, increased quality and reliability, and, ultimately, a better experience for the end-user… the customer!
In short, TDD dictates that every bit of code that is developed is driven by a set of tests that the developer him/herself writes and maintains. In fact, the tests should be the first things that get developed. This methodology is also referred to as Behavior Driven Development because, in essence, the tests define how the code should behave.
Tests should also be automated. No one can remember everything all the time, not even software developers. Making tests automated and part of the development cycle ensures that the tests are run after every change to the code from the time of inception to the time the code is released into the production system. This is called building quality in and is crucial to keeping bugs out of the production system and keeping the end-user happy.
Jim Park, the head of our QA department, might be wondering if this means that once a development team adopts TDD then QA is obsolete. Never! Test Driven Development provides another layer of and complements quality assurance. It allows QA to concentrate on making sure that systems function the way the clients and users want them to instead of worrying about finding bugs that should have been caught by the developer weeks earlier.
Anyone who produces anything, whether it be cars, computers, wine or software knows that testing the product at every stage of development is extremely important. Test Driven Development provides a framework that guarantees a certain level of quality and confidence in one’s product and makes life easier for everyone involved including the business analyst, the QA engineer, the software engineer, and most of all, the customer.