Curso de introducción a TDD

If you already have a foundational knowledge of TDD, this course will help reinforce concepts and, most importantly, put them into practice. This is the second level, intended for individuals who already have some knowledge of TDD.
 
Use the code #primaveraTDD and get a 40% discount. 

TDD Course – Intermediate Level

If you already have a foundational knowledge of TDD, this course will help reinforce concepts and, most importantly, put them into practice. This is the second level, intended for individuals who already have some knowledge of TDD.
 
Use the code #primaveraTDD and get a 40% discount. 
Instructores: Benjamin Rae
  • English
  • English, Spanish
  • 4.8 rating
  • 115 learners enrolled
  • 35–40 h course (approx)
  • Downloadable resources
  • Questionnaires to validate progress
  • Katas for practice
  • Access for 1 year
  • Certification included
  • Instructor support
  • TDD Community

What are you going to learn?

SOLID principles and testability: How SOLID principles benefit testable code.

Easily testable code: Using TDD to improve design, coupling and cohesion.

Testing in legacy code: Strategies such as Golden Master for validating and coupling tests.

Good testing: Applying FIRST and Test Desiderata for effective testing.

TDD in frontend: Tools and TDD approach starting from the user interface.

TDD in teams: Pair/mob programming and version control system with TDD.

At the end of the course you’ll be able to:

  • Apply TDD to develop software effectively.
  • Write good tests and facilitate their implementation with testable code.
  • Use TDD in frontend with good testing practices.

This course has been a great experience. Although I already knew a bit about TDD, it helped me solidify and improve my code structure. The best part was the support from the instructors, always available to answer questions.

Iván Calderón Developer

I was already familiar with the fundamentals of TDD, but this course allowed me to go deeper and apply them more solidly. I improved the structure of my code and gained confidence thanks to the instructors and fellow participants." – Marta Esquivel, Developer

Course content

Module 1: SOLID principles 3h
In this module we will revise the SOLID principles and how they relate to testability. We'll look at each principle individually and see how it can help us with both our tests and our code.
Module 2: Writing code that is easy to test 3h
In this module we will discuss some of the reasons many decide not to write tests and explore examples where small changes in our code can make our code much easier to test.
Module 3: Coupling and Cohesion 4h
In this module we discuss coupling and cohesion to help us understand how to identify explicit dependencies in our code and continue to write better test code and better production code.
Module 4: F.I.R.S.T 4h
In this module we explore the F.I.R.S.T principles to help up write better suites of tests and also better production code including techniques such as running tests in parallel.
Module 5: Test Desiderata 4h
In this module we invite you to watch Kent Beck talk about his Test Desiderata, which very similarly to F.I.R.S.T, encourages us to write better test and production code.
Module 6: Sociable vs Solitary testing 4h
While we have been looking a lot at the advantages of isolated tests, here we will introduce sociable tests and compare and contrast them to solitary tests so that you can choose a style that fits you best.
Module 7: Testing Legacy Code 4h
It's more likely that you will work on existing projects that don't have many tests. Here we will explore techniques to start testing legacy code such as Golden Master, Characterization tests and how to introduce seams.
Module 8: TDD in frontend 4h
Until now, we have mostly used Java with Object Oriented Programming. It's time to switch paradigms and explore how we can apply TDD to the frontend and learn the value of putting the users first when we are writing tests.
Module 9: TDD and Teamwork 3h
It's also more likely that you will be working on teams rather than individually. That's why we are going to look at techniques like pair programming and mob programming and how they can be used with TDD to develop software in a team.

Audience

This course is ideal if you already have experience with automated testing and a basic understanding of TDD, as well as a foundation in Object-Oriented Programming.

Completing the introductory course is recommended, although not essential if you already have a solid grasp of TDD. You’ll need to use an IDE, and being comfortable with keyboard shortcuts will help you work more efficiently.


Requirements

  • Be comfortable working with at least one programming language.
  • Be familiar with its syntax, data types, control flow, and other language-specific features.
  • Have a solid foundation in Object-Oriented Programming.
  • We recommend using an IDE (Integrated Development Environment) and getting familiar with keyboard shortcuts.
  • A GitHub or GitLab account.

What are the advantages of using TDD?

By applying TDD at the level this course provides, you will help create more reliable and flexible code, promoting scalable and high-quality solutions through automation.

  • katalyst_benefits_element_2

    Improved code quality

    Reduces errors, makes it easier to add new features and assures that the code works as expected.

  • katalyst_benefits_element_1

    Regression testing

    Allows for early detection of errors after modifications, maintaining system stability.

  • katalyst_benefits_element_1

    Scalability and reduced risk

    A well-designed and tested code is easier to maintain and scale

  • katalyst_benefits_element_2

    Long-term cost reduction

    TDD helps lower long-term costs by reducing the time and resources needed to debug errors.

  • katalyst_benefits_element_2

    Faster time to market

    It favours continuous integration and deployment (CI/CD), accelerating the launch of new functionalities.

  • katalyst_benefits_element_4

    Team collaboration and productivity

    It improves communication, facilitates the incorporation of new developers and strengthens the team.

  • katalyst_benefits_element_1

    Increased customer satisfaction:

    Higher-quality software enhances customer satisfaction and loyalty.

We successfully delivered this course to the following clients

cazoo-logo roche-logo santander-logo
Course_page__orange_triangle

Do you have any questions?

If your company requires a tailored licence package, we'd be delighted to prepare a bespoke proposal for you