Introduction: FIRST Tests and the Test Pyramid

Get yourself introduced to what we will learn in this section.

We'll cover the following

So far in this course, we’ve seen the value of writing unit tests that run quickly and give repeatable results. Called FIRST tests, these provide rapid feedback on our design. They are the gold standard of unit tests. We’ve also seen how the hexagonal architecture helps us design our code in a way that gets the maximum amount covered by FIRST unit tests. But we’ve also limited ourselves to testing only our domain model – the core of our application logic. We simply have no tests covering how our domain model behaves once it connects to the outside world.

Test pyramid

In this section, we will cover all the other kinds of tests that we need. We will introduce the test pyramid, which is a way of thinking about the different kinds of tests needed, and how many of each we should have.

We’ll discuss what each kind of test covers and useful techniques and tools to help. We’ll also bring the whole system together by introducing CI/CD pipelines and test environments, outlining the critical role they play in combining code components to create a system for our end users.

Section goals

In this section, we’re going to cover the Test Pyramid—a structured testing approach—and the importance of integration tests. We are also going to learn about end-to-end and user acceptance tests, their advantages, limitations, and tools. Lastly, we are going to discuss the CI/CD pipelines to optimize software development workflows and explore practical aspects of CI/CD pipelines and test environments for modern software development.

Get hands-on with 1200+ tech skills courses.