TDD - Test Driven Development

3 days - Advanced

Designed for developers seeking to refine their coding practice, this training delves into Test-Driven Development. Enhance your theoretical and practical skills in TDD, elevate your code quality, and embrace craftsmanship through hands-on, lesson-rich real-world use cases.

craftmanshipengineeringqualitytdd

Training details

Test-Driven Development (TDD) is a straightforward, elegant, and effective programming technique built on a cycle of short feedback loops: write a test, make it pass, and refactor the code. This approach balances the creation of well-structured, readable software with the reliability of automated testing.

This intensive 3-day training is designed to provide a comprehensive understanding of Test-Driven Development. It combines theoretical knowledge with hands-on practice to enable participants to apply TDD effectively in their software development projects.

By the end of the training, you will have acquired the knowledge to effectively apply TDD techniques, setting the foundation for creating or enhancing applications with operational, highly maintainable, and scalable code.

Objectives

Target Audience

Prerequisites

Pedagogical method

TThis training focuses on hands-on skills, based on practical exercises as well as discussions and sharing the trainer's practical experience.

Evaluation and follow-up mode

Skill acquisition is continuously assessed throughout the training through a series of workshops and practical exercises. Immediately following the training, we conduct a thorough assessment of trainee satisfaction. Participants will receive a training certificate upon completion, which details the training objectives, content, program, duration, and a formal acknowledgment of the skills and knowledge acquired.

Program

  1. Day 1

    • Introduction to Test-Driven Development
      • Overview and History of TDD
      • Perception of TDD: Myths vs. Reality
      • Redefining Testing in Software Engineering and TDD Contexts
      • Technical Implications of TDD
      • The Importance of Feedback Loops
      • The TDD Cycle: Red, Green, Refactor
    • TDD and Software Engineering Paradigms
      • Reversing the Classical Industrial Model
      • Comparing Industrial and Artisanal Models in Software Development
      • The Importance of Refactoring
      • Challenges and Barriers in Adopting TDD
    • TDD General Patterns
      • TDD Pattern: Isolated Test
      • TDD Pattern: Test List
      • TDD Pattern: Assert First
      • TDD Pattern: Test Data
      • TDD Pattern: Evident Data
    • Red Bar Patterns
      • TDD Pattern: Starter Test
      • TDD Pattern: Explanation Test
      • TDD Pattern: Learning Test
      • TDD Pattern: Another Test
      • TDD Pattern: Regression Test
    • Green Bar Patterns
      • TDD Pattern: Fake It Till You Make It
      • TDD Pattern: Triangulation
      • TDD Pattern: Obvious Implementation
      • TDD Pattern: Fixture
    • Practical Hands-On Session
  2. Day 2

    • TDD Survival Principles
      • "Don’t Repeat Yourself" Pattern
      • "You Ain’t Gonna Need It" Principle
    • Advanced Hands-On Practice and Application of Concepts
    • End-of-Day Summary and Reflection
  3. Day 3

    • Handling External Dependencies in TDD
      • "Stub" Pattern
      • "Mock" Pattern
    • Hands-On Session and Application of Concepts
    • TDD Challenges and Antipatterns
      • Long Setup Code
      • Setup Duplication
      • Long Running Tests
      • Fragile Tests
      • Unexpected test success
      • Writing overly large tests
      • Testing private methods
    • Training Recap and Closing Discussion

Contact us to discuss your project

Send us an email and we will get back to you as soon as possible[email protected]