Types of Testing/Test Suites

When it comes to testing any application, there are two methodologies: BDD (Behavioral-driven development)and TDD (Test-driven development). We are not going to talk about these since our primary focus is on the configuration in the Angular project. We have different types of tests irrespective of methodologies. These are named as test suites as well. Here are some of those.

Unit tests

Integration tests

Regression tests

Performance tests

Load tests

End-to-End (e2e) tests

UAT (user acceptance tests)

Smoke Tests

Unit tests

These tests refer to testing isolated components which means testing without any dependencies. If your component or testing unit depends on any service or any other configuration, we should mock those. We should only focus on the unit that we are testing. Unit tests should be fast since we mock all the dependencies and avoid all the network calls or any other i/o reads or writes to make the test faster.

Integration tests

These tests refer to testing partial or entire components together to assure correct functionality when they are working together. For example, if we have frontend and backend for an app, we set up some test data for the backend and test the frontend to ensure that the correct data is displayed. We test with some test data to make sure all the components are working correctly when they are integrated.

Regression tests

These tests refer to the testing issues raised in the application over time. We usually get issues from the prod applications. Whenever we get an issue, a unit test is created along with fixing that issue. We run these unit tests as regression tests before every prod release to avoid the same issue happen over and over.

Performance tests

These tests refer to how fast one transaction is. It focusses on the speed of one transaction.

Load tests

These tests focus on the speed of the application with concurrent users. The difference between performance and load tests is that the former focus on the speed of single transactions and the later focusses on speed with simultaneous users and multiple requests at the same time.

End-to-End (e2e) tests

In e2e tests, we emulate the real production environment and test the real scenarios. It’s almost similar to full integration tests except for the test data. It is tested with the real production environment.

UAT (user acceptance tests)

We usually get all the requirements from the end-user before building any application. These tests ensure that the application meets all the requirements from the end-user.

Smoke Tests

Every application has some essential functions or components. These tests ensure that all the vital functions or parts of the application are working correctly before every production release.