An overview of software testing
Before shipping the application to the end users, we will want to ensure that there are no bugs in it and that it will behave as expected. For example, we would not want to find out that the API is returning a different response from the expected one or that the server crashes when a specific input is used.
Ensuring that the application is bug-free is done through software testing. Software testing is a process of evaluating that the software will function and operate as expected without any surprises. The following diagram shows a testing pyramid. A testing pyramid is an approach to structure the test suites:
Unit testing focuses on testing small units of the application, such as a class, function, or algorithm. Integration testing focuses on a small number of modules and tests how they work together. End-to-end (E2E) testing, as the name suggests, focuses on testing...