Better Software West 2018 Concurrent Session : Overcoming Test-Driven Damage

Conference archive

SEE PRICING & PACKAGES

Thursday, June 7, 2018 - 10:00am to 11:00am

Overcoming Test-Driven Damage

Add to calendar

Test-driven development is supposed to help us refactor our code safely, but we often find that when we refactor our code, we also have to refactor our tests. What was supposed to add safety becomes a burden requiring time and effort. Writing good unit tests is a critical skill that developers need to master in order to get the most benefit from test-driven development. Tests must be unique, written at the right level of abstraction, and implementation-independent in order to be most valuable. In this session, David Bernstein will cover effective techniques for doing TDD that support building useful tests and quality code. You’ll learn how to approach TDD in a way that yields the right number and kind of tests to support improved refactoring. Working through a few code examples, you’ll see how many assertions are required to specify a linear range, exceptions, and other boundary conditions. You’ll look at how to write tests that don’t need to be changed when code is refactored while still keeping test coverage high. If you’ve struggled to cost-effectively apply TDD on a project—or are just not sure how to start—this session is for you.

David Bernstein
To Be Agile

David Bernstein is the author of Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software. It’s an insider’s view of the software industry drawn from his decades of hands-on experience as a software developer, trainer, and consultant to some of the biggest players in the business. David’s continuing passion for software design and construction has led him to train more than 8,000 developers since 1990 at hundreds of companies worldwide including Amazon, Yahoo, and Microsoft. His consulting firm, To Be Agile, helps developers adopt Extreme Programming practices such as test-driven development, continuous integration, and refactoring.