In our scenario, where we have a frontend, backend, and database project talking all the time, having an E2E test that goes through all the systems, validating several layers and functionalities at the same time is very important for the security of our development.
During the development of new functionalities, it is possible to verify the changes locally to ensure that the work completed did not generate a new bug. After deployments in any environment, we will check that configurations are correct and flows are working as they should, in addition to minimally verifying integrations with other systems that we do not control.
Our work means that all this can and will be done automatically, without having to spend time remembering scenarios that are specific and generate a lot of problems for our users. By implementing these measures, the team and the client can be more confident in the testing process, leading to increased accuracy and security throughout the entire development workflow.
Thanks to our latest improvements, our testing framework has become more reliable than ever. We've eliminated false positives and negatives, and we can now run tests in any environment (except production, for now).
This boost in confidence has had a positive impact on our security during development and manual testing. With many common cases and integrations properly covered, we can focus on testing alternative scenarios and edge cases, reducing the time spent on manual testing.
Furthermore, these improvements have had secondary effects, such as reducing costs associated with existing pipelines and resources. By running more tests locally and with faster test results, we can provide quick feedback to developers, resulting in general savings for the team. With these improvements, we can find and fix bugs in the early stages of development, instead of encountering problems in production environments.
In addition, these changes have improved scalability and maintainability. Through refactoring, creating new test scenarios and maintaining existing ones has become much easier. Even people who are not as knowledgeable about the code can quickly find the relevant elements, pages, and tests.
The benefits of these improvements are countless, and these are just a few examples of the gains our team has achieved during this period. Overall, these changes have been a major success!