Over the last ten years, Test-Driven Development has grown from something exotic, that only a handful of people knew about, to near- commodity. So there’s nothing left to say, right? We don’t think so.
In this talk, we’ll review some of the landmarks in the history of Test-Driven Development and what they tell us about how to develop software; the ideas, techniques, objections, and misunderstandings.
We’ll talk about our experiences of discovering TDD and what we’ve learned about how to do it well, how to adopt it, and how to bring it into existing code.
This hands-on advanced workshop teaches incremental Test-Driven Development, showing how to grow code one feature at a time. It will show: how to use tests at multiple levels to focus on requirements, how to use unit tests to drive the discovery of roles and responsibilities in your design; and how to write resilient tests that express your intent and don’t break for irrelevant changes.
The workshop is for programmers who want to improve their TDD practice. It has been presented at several conferences, one review from XpDay London was “Incredibly useful; the best technical I’ve heard”.
One of the barriers to wider adoption of TDD is that it is best taught from within a team, and the technical challenges of writing tests frequently thwart those looking to teach themselves. This session will be a live demonstration of Test Driven Development in Java, using Eclipse and JUnit, aimed at those new to TDD and looking to learn. Audience members will be encouraged to follow along on their own laptops as we walk through common scenarios that frequently discourage new TDDers, and demonstrate some techniques for overcoming them in a live coding session.
Integration tests are a scam, a self-replicating virus that takes over your project and burdens you with long-running, fragile, hard-to-understand test suites. You’re probably writing 2-5% of the integration tests you need to test thoroughly. You’re probably duplicating unit tests all over the place. Your integration tests probably duplicate each other all over the place. When an integration test fails, who knows what’s broken? When you refactor, you have to fix dozens of integration tests. Stop it. Learn the two-pronged attack that solves the problem: collaboration tests and contract tests.
XUnit is the generic name given to the family of tools/frameworks used by developers when developing automated unit tests. JUnit, NUnit, MsTest and CppUnit are some of the better known members of the family. High quality automated unit tests are one of the key development practices that enable incremental development and delivery of software. This tutorial provides the participants with a vocabulary of smells and patterns with which to reason about the quality of their test code and a set of reusable test code design patterns that can be used to eliminate the smells.
This talk discusses techniques that can be used to apply Agile practices to atypical technologies, and presents case studies on how to apply Agile practices to projects built with technologies including Teradata (Database), and MicroStrategy (BI).