Course of Testing: Introduction and Best Practices

Javier FerrerRafa Gómez

By Javier Ferrer y Rafa Gómez Software Design and Architecture y Methodologies and good practices

Learn what testing brings, how to test, and best practices to prevent maintaining your tests from becoming a nightmare with examples from The Real World™

A course with practical and to-the-point examples where you will learn about the different types of tests we use in our daily work, strategies and design patterns that will help us make our tests more maintainable and tolerant to change.

In this course, we will see how to propose a testing strategy where we will define which elements of our application each type of test covers, maximizing the value they provide while minimizing the cost of maintaining them.

In the course, you will learn:

  • Basics of testing, no prior knowledge of tests is required.
    • We will see examples in the following languages:
      • PHP
      • Java
      • JavaScript
      • Scala
    • Introductory concepts such as:
      • What we understand as a unit in our unit tests
      • Test pyramid
      • Should we cover 100% of the code with tests?
  • Advanced and specific aspects such as:
    • Avoiding complex instantiations: ObjectMother
    • How to avoid slow and coupled tests: Fakes, Stubs, and Mocks
    • How to solve tests that randomly fail
    • How to avoid tests that pass but the code fails in production
    • Improving the maintainability and structure of our tests
    • Applying the Single Responsibility Principle of SOLID to our tests
    • Given-When-Then or Arrange-Act-Assert pattern
    • Providing readability and semantics to our tests
    • Team management and development flow
    • Additional test doubles like Dummy and Spy
    • Summary of TDD: Test Driven Development
    • Refactoring: Tips for adding tests to an existing application
    • Dealing with legacy: Opportunities for adding tests

We recommend taking the course on SOLID Principles Applied and Hexagonal Architecture before starting this course to acquire software design fundamentals that will help better leverage the concepts we will explore in this course.

Here’s the first video of the course so you can get an idea of the rhythm and quality of the content:

Videos of the course

Related courses

See full catalogue

Pay according to your needs

lite (only monthly)

19 €
per month
  • Access to a subset of courses to lay the foundation for maintainable, scalable, and testable code
  • Company invoice
Popular

standard

24,92 €
Save 121
Annual payment of 299
per month
  • Full course catalog
  • Design and architecture challenges
  • Highlighted solutions videos for challenges
  • Receive job offers verified by Codely
  • Company invoice

premium

41,58 €
Save 89
Annual payment of 499
per month
  • Everything above
  • More benefits coming soon

We won’t increase the price while your subscription is active