Search papers, labs, and topics across Lattice.
This study evaluates the effectiveness of end-to-end automated testing using the Cypress framework on an open-source web application, focusing on execution speed, reliability, and maintainability. With 27 test cases deployed, the results reveal that the Cypress test suite exhibits short and stable execution times, with most tests yielding consistent results, while flakiness was observed primarily in complex interactive scenarios. Additionally, the research underscores the importance of element locator strategies and the Page Object Model (POM) architecture in enhancing test suite maintainability, particularly through the use of resilient data-cy attributes to mitigate maintenance challenges due to UI changes.
Cypress-based end-to-end testing can achieve high reliability and maintainability, even as web applications evolve.
End-to-end automated testing is increasingly used in web software development to ensure system quality and shorten response times during development. However, the true effectiveness of automated testing depends on many factors including execution time, stability of test results, and maintainability of the test suite as the application continues to evolve. In this paper, we evaluate the effectiveness of end-to-end automated testing using the Cypress framework for an open-source web application. We deployed the experiment with 27 test cases. The test's effectiveness is measured by execution speed, reliability, and maintainability. The experimental results show that the Cypress-based end-to-end test suite has short and stable execution times. It suits frequent runs during software development. The majority of test cases achieved consistent results across multiple runs, while flakiness only occurred in a few tests which involve complex interactive functions. Furthermore, the study highlights the impact of element locator strategies and Page Object Model (POM) architecture on test suite maintainability, demonstrating that resilient data-cy attributes significantly reduce maintenance overhead when UI changes occur.