Training
TDD in Java
Test-driven development (TDD) is a way of programming that focuses on starting the development process by revealing our intentions. By defining tests, which are examples of the behavior our code is supposed to implement, we create a model of the problem domain in our minds, drive and develop the design of the code, and finally provide ourselves with tools for automatically verifying that the code is correct. This has an enormous positive influence on our work: coding becomes safer and more confident, we use the debugger less often, and we get fewer defects, better design, and more readable code. This way of coding is completely different from what we’re used to, and much more pleasant.
The training is a mix of workshops and presentations. Not only will you learn the theory of driving development with tests but, more importantly, you’ll be able to work that way yourself, guided by someone who programs like this every day and leads teams that develop software this way. Here’s what you can expect from the training:
- You’ll understand techniques for creating high-quality code.
- You’ll learn what the different types of tests mean.
- You’ll see and practice the TDD cycle and learn how to design your code to make it testable and readable.
- I’ll show you some libraries that enable testing at different levels.
And you’ll learn all of this in the most effective way: by practicing TDD in a series of workshops. You’ll finish the training with both a feel for and an understanding of what TDD is and how to apply it in your daily work.
- Target audience
- Java developers, team leads, technical managers
- Price
- $350per participant
- Date and time
- 16 hours / 2 days
Detailed program
- Basics: you’ll learn what TDD is, see the benefits of this approach, and write your first programs this way
- Why TDD can help you
- Applying the TDD cycle
- Safe refactoring of test-covered code
- Getting more out of your IDE (automated refactoring, code generation)
- TDD mechanics: the knowledge and practices you need to do TDD in your daily work
- Keeping the right pace and rhythm as you work
- How to choose the next test
- Test naming
- Advanced JUnit
- Testing collaborating objects: a working OO program is a set of objects that exchange messages; you’ll learn how to test them in isolation so that tests are simple and run fast
- Using test doubles to isolate the object under test
- The Mockito library
- Test-driving the UI layer
- Test-driving the DB layer
- A slightly broader view: we’ll systematize the ideas around TDD
- ATDD, BDD
- Classical and mockist (London school) testing approaches
- Object-oriented design: learn to design code so that it’s more readable and tests are easy to write
- Testability
- OO heuristics
- The way forward
- Maintainability of tests
- Legacy code
- Introducing TDD to the team
Past runs
- May 22-23, 2013Kyiv, Ukraine
