Now that you have decided to integrate testing into your development process, you find that when one test breaks, it seems like they all break. You also find that with so many tests broken, identifying the source of failed tests is challenging. Another challenge is that occasionally, tests are just plain hard to write. In this session we will discuss patterns and techniques for writing tests that are more robust and provide better information. This includes techniques that you can apply to your design when writing new code to make testing easier, as well as tools for working with existing applications that do not have good test coverage.