Announcement
LA Ruby Conference 2010
This is the second year for the LA Ruby Conference. Come and join us to learn about ruby and related technologies and software development practices that might change the way you do your job.
Registration for the conference is open. The conference on Saturday is $199.00. The training workshops on Friday are $60.00 each.
February 19-20, 2010
Holiday Inn
Burbank, CA
Presentation Proposal
-
Submitted by: ajsharp3 people liked this proposal.
The most basic purpose of testing, of course, is to ensure or assert the expected behavior of code. However, testing has many other important, and sometimes not so obvious purposes, especially in untested code bases.
This talk will start with an overview of the uses and benefits of a test-first approach to software development. We'll cover the differences between Test Driven and Behavior Driven Development, why they're important, and how they lead us to write overall better code.
TDD and BDD are most easily applied in the dreamy world of greenfield development, but unfortunately, much of the code in the wild remains untested. Working with legacy code -- whether tested or not -- can be extremely challenging, and often feels like somewhat of a necessary evil. Thus, much of this talk will focus on strategies for applying test-driven methodologies to untested, legacy code. Nasty, messy, real world examples will be used to illustrate the lessons I've learned in this area from Rick Bradley, Michael Feathers, and others.
--
First, tests can be used as a design tool, or as it is better known, Test Driven or Behavior Driven Development.
Tests can also be used as communication/clarity tool. There are many different aspects of what might be considered "good code"; readability, conciseness, performance, well-moduralized, DRY, and many others. However, some of these characteristics may take precedence over others in production code, specifically, performance and DRYness, which may hamper readability and conciseness. In these cases (and others), test code can serve as an effective communication tool and a handy companion to traditional code reading. Finally, test code can be helpful in re-interpreting and understanding your own code, especially weeks, months or years later.
Tests can also be used as a discovery or learning tool; this is especially true when working with untested legacy code, and is often referred to as "characterization testing". Instead of guessing what some legacy code is probably doing, we can use characterization tests to discover what a section of code is actually doing.
Submitted on / Updated on: 01/07/10 / 01/11/10Status: Pending






