End-to-end testing is testing an entire flow or product from end to end, from a user perspective. A very important but often overlooked way of testing. In this blog post, our Product owner, Merel, takes you through the possibilities and benefits of end-to-end testing, both for developers, customers, and end users.
End-to-end testing, what does it entail?
During an end-to-end testing session, we sit together with the customer in a (virtual) room and go over the predefined test scenarios of the product. These test scenarios review an entire user flow from beginning to end, so from when the user first accesses the product until they have completed their intended goal. The goal of this testing session is to look at the product from a different perspective, challenge assumptions, and improve the overall user experience.
Why should we all start with end-to-end testing
Many product teams work in an agile way with Jira tickets that have to be completed each Sprint. The developers create the ticket, the ticket is tested and this update is released to production. This way of working focuses on small incremental changes to the production environment at a time (one of the major benefits of agile development) but not on the big picture.
End-to-end testing can provide this big picture. It helps you to take a step back and really look at your product from a user’s perspective. What do they see when they go through an entire flow? What is their user experience like with all these incremental changes put together? It helps you to focus on the impact of changes.
Let's show you an example
Let’s say you have created a registration process consisting of 4 pages. These 4 pages were created a year ago, and in the most recent Sprint, you have changed some fields on the last page. It’s possible that the text on the first page is not correct anymore due to this change. However, the Jira ticket is done and the increment is pushed to the production environment because the fields on the last page are implemented correctly. Without an end-to-end testing session, you could easily miss that the text on the first page is not correct anymore, which leads to a decreased user experience.
Another example is translations. Usually, translations are uploaded separately line by line. All the translations are correct on their own, but if you were to put 3 lines below each other on the website the translation can feel a bit off. Again, the technical implementation is correct but the user experience is decreased because there is no functional check.
Another common scenario is that your product is created by different vendors. Each vendor is responsible for their own part of the product, and separately these parts work well. A simple assumption is that all these parts work well together too, but is this assumption checked thoroughly? Assumptions, especially in product development, can be very dangerous. Thanks to an end-to-end testing session assumptions like these are challenged with increased product quality as a result.
Some practical tips to top it off
When testing your product, make sure you have a diverse audience. Often project members know the product inside and out, and they know ‘too much'. They look at a product with their product knowledge and tech-savvy eyes. An action that is very obvious for the project team, could not be obvious to other users, while they are the ones actually using the product. So, when creating your test team, make sure you have a diverse audience with different (tech) knowledge levels and backgrounds to make sure your product is understandable for everyone.
Also, ensure that all test participants complete their tests independently. It’s very easy for people to be influenced by one another, and this can diminish the testing results. For example, person A and B sit together and complete the test scenario. If the test scenario is very easy for person A and they click through it quickly, this way person B will not have enough time to see how the experience is for them. With individual tests, each person looks at the product with their own knowledge and background, seeing different aspects of the product and thus increasing the quality of the test session.
Lastly, don’t forget the back-end! Where end-to-end testing is more focused on the front-end to create a great user experience, the back-end cannot fall behind. Make sure that all data is correctly stored in databases, emails are sent correctly and the right API calls are made to complete the user’s request in full.
In conclusion, end-to-end testing is a vital tool to increase product quality and optimize the user experience.