Langr Software Solutions offers
        training services.

Test-Driven Development (TDD) Training

TDD is more than a testing technique, it’s a way of developing software. TDD is a tool that helps developers craft and sustain a high-quality code base. It typically complements agile processes such as Scrum, but even if you’re not at all agile, it can also provide your team with numerous benefits.

In this class, you’ll obtain a solid foundation for TDD. Core class segments include TDD fundamentals (the red-green-refactor cycle), sustainable tests, refactoring and continuous design, test doubles and mocks, and legacy code rescue. You’ll learn:

  • how continual attention to design simplifies your work and extends the life of your software

  • how TDD encourages continuous design improvement

  • how to craft tests that help you understand and control a higher-quality system

  • how to deal with troublesome dependencies that can make unit testing tough

  • how to tackle the tough challenges of a legacy code base (pretty much every developer’s reality)

  • specific concepts and themes for approaching the high risk of a legacy codebase

  • how to manage a larger refactoring in a legacy codebase using the Mikado method

You want your team members to practice test-driven development (TDD) for the health of your system, indeed, but also for their own sake. Folks who begin this class with skepticism or reluctance about practicing TDD generally leave excited about applying to their own systems.

Topics

  • Overview of Test-Driven Development

  • Basic TDD technique

  • Your Unit Testing Tool

  • TDD and design

    • What’s the next test?

  • Test smells

  • Code katas

  • Refactoring and design

  • Refactoring drivers

    • Code smells

    • Simple design

    • Classic design principles

  • Basic refactoring

  • Additional catalog refactorings

  • Macro refactoring

    • Backing into tests

  • Basic “mock” technique

    • Test double variants

    • Implementing test doubles

    • Mock injection techniques

  • Additional test double topics

    • Using mock tools

    • Challenges/best practices

  • Legacy Code Challenges (4-day classes)

    • Legacy themes

    • Dependency-breaking techniques

    • The Mikado Method

  • Acceptance Tests (ATs) and TDD (4-day classes)

  • Sustaining & Succeeding with TDD

The pacing of the class will vary primarily based on the experience of your students regarding general programming skills, as well as unit testing skills. Choice of language / environment can also alter pacing.

Test-Driven Development training is best delivered as a 3-day class, but you can also configure it as a 2, 2½, 3, or 4 day class. We’ll jointly work with you to tailor training to your needs.

Langr Software Solutions services