Unless developers are trained about which tests to write, how to write them, when to refactor code, and the techniques for breaking dependencies, testing can become unsustainable as projects mature. We teach how to make Test-Driven Development sustainable with a focus on deriving maximum value (technical and business) from minimal effort and cost.
How TDD relates to ATDD, emergent design, SOLID design principles, and design patterns are also included.
This course teaches participants the sustainable approach to Test-Driven Development. The practice of Test-Driven Development, which utilizes Refactoring and Unit Testing in a particularly fine-grained way, is demonstrated. Hands-on TDD coding will dominate throughout.
In this course, you will learn:
Why and how to be "test-driven"
How to analyze requirements to obtain better tests
How to write unit tests
How to use mock objects
How to refactor legacy code
How to use an XUnit testing framework (Junit, MSTest, or Jest)
A variety of refactoring techniques, with hands-on exercises to solidify this knowledge
Day 1: Techniques
A brief overview of the motivations behind Agility, and TDD specifically
As a group, we all get the testing framework up and running on all needed machines.
Review Code Qualities, and how they relate to Testing and Testability
Unit-testing in general, leading to the benefits of TDD
A small Unit-testing/TDD exercise
Day 2: Design
Mock Objects, with an exercise
Code Smells, and Refactoring
Refactoring to the open-closed, just in time design
Legacy code refactoring exercise and debrief
Day 3: Reality
TDD and Design, revisiting the exercise from Day 1
TDD and Design, putting it all together. This includes a larger hands-on lab project.
Tell people more about the services you offer. Use this repeating layout to display content. It’s an easy way to keep your customers up to date with what’s happening. Want to make this content your own? Simple drag and drop elements like text, images and links, or connect to data from your collection.
Participants should have a solid background in object-orientation, an object-oriented language such as Java, C#, or C++, and UML.
Participants should be familiar with Code Qualities and the Advice from the Gang of Four.
Max class size