Search⌘ K
AI Features

Break Our Application Like a User (Part I)

Explore how to simulate user actions and design acceptance tests that reveal potential bugs in real-time Phoenix applications. Understand the importance of considering browser caching and network conditions to deliver more reliable user experiences in your Elixir-powered app.

Testing like a user

Users put themselves into all kinds of strange scenarios, often without even trying. We need to put ourselves in the shoes of a user as we test real-time applications to ensure we cover as many scenarios as possible. We should try to keep as much of our system identical to what our users use—browsers, operating systems, and network stability can all affect how an application works.

We’re going to try different manual acceptance testing scenarios to ensure that our application works properly in each. We become more confident that users will not encounter problems when we try to break our application, but cannot be completely certain. One scenario that we will execute in this section will actually reveal a very subtle problem in our existing application. We’ll try out different techniques that are common for users to do, such as using forward/backward page navigation or experiencing a network disconnection.

The Phoenix JavaScript client handles many of the cases we’ll see in this section, so we often don’t need to implement code to handle them. However, we should still test the scenarios that Phoenix handles for us. This ensures the provided solutions work for our application’s use case. Ultimately, we and our team are responsible for our application working as expected, and acceptance tests ...