Functional Testing

Learn about three ways to test the application as a whole.

Even if all our Lego pieces are green and connect perfectly, it doesn’t guarantee that they will form a dinosaur. The same goes for software. Good coverage through unit and integration tests doesn’t mean the application will work as expected. We also need tests to validate the application as a whole.

There are multiple categories of such tests, like the following:

  • Functional testing: Validates the application against functional requirements. In other words, is the application being built right?
  • Acceptance testing:Validates the application against business requirements. In other words, are we building the right application? Tests are often performed manually but might be automated.
  • End-to-end testing: Completely validates an application’s user story. It might involve multiple requests. We spawn all the affected microservices to get end-to-end tests.

The definitions for these terms are not ubiquitous, and people will use them to describe different things. So, when we talk about functional testing with someone, it makes sense to clarify what we’re discussing. Technically, the automated tests for all these categories are done the same way, so we’ll use the term functional testing for everything in this lesson.

Let’s remember how the page produced by the PHP application reaches the user. The PHP application returns the page to the HTTP server. The HTTP server sends a response to the browser, and the browser presents the rendered page to the user. We can intercept and verify the response on any level.

Get hands-on with 1200+ tech skills courses.