Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

E2E test execution optimization for web application based on state reuse

Published: 01 September 2024 Publication History

Abstract

End‐to‐end (E2E) testing is a commonly used technique for web application testing. Unlike traditional unit tests, E2E tests focus on test scenarios that target the entire business, which integrate and collaborate of various components and services to make the whole application work. As a result, one drawback of E2E tests is their longer execution time, seriously affecting testing efficiency of web applications. In order to speed up the execution of E2E tests for web applications, this paper proposes a test execution optimization approach based page state reuse. Through analyzing the common operations of E2E tests, a common prefix trees is constructed to organize the same operations among test scripts in a test suite of web applications. Under the guidance of the prefix tree, the optimal reusable state is identified and duplicated to maximize the utilization of page states triggered by the same operations, thereby reducing the overall execution time of the test suite. Besides, to realize page state reuse automatically, we design a browser process replication strategy, which implement querying the active page and duplicating the web page. To verify the effectiveness of our method, experiments and evaluations were conducted on 347 E2E tests from eight open‐source web applications, and the results showed that our approach reduced the E2E testing execution time for web applications by 52%–68%.

Graphical Abstract

In this work, we propose a test execution optimization approach‐based state reuse. Through analyzing the common operations of E2E tests, we construct a common prefix trees and reuse the page states triggered by the same operations, thereby reducing the overall execution time of the test suite.

References

[1]
Radziwill N, Freeman G. Reframing the test pyramid for digitally transformed organizations. arXiv preprint arXiv:201100655; 2020.
[2]
Kim HJ, Ali S. Automation and prioritisation technique for regression testing of PB tech web application. In: CS & IT Conference Proceedings, Vol. 9; 2019:37‐52.
[3]
Long Z, Ao Z, Wu G, Chen W, Wei J. Webrts: a dynamic regression test selection tool for java web applications. In: 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME) IEEE; 2020:822‐825.
[4]
Olianas D, Leotta M, Ricca F, Biagiola M, Tonella P. STILE: a tool for parallel execution of E2E web test scripts. In: 2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST) IEEE; 2021:460‐465.
[5]
Augusto C. Efficient test execution in end to end testing: resource optimization in end to end testing through a smart resource characterization and orchestration. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings; 2020:152‐154.
[6]
Augusto C, Morán J, de la Riva C, Tuya J. Resource optimization in end‐to‐end testing. In: International Summer School on Search‐and Machine Learning‐based Software Engineering (SMILESENG); 2022:15.
[7]
Nagy SM, Maghawry HA, Badr NL. An enhanced parallel automation testing architecture for test case execution. In: 2022 5th International Conference on Computing and Informatics (ICCI) IEEE; 2022:369‐373.
[8]
Wang B, Lu S, Xiong Y, Liu F. Faster mutation analysis with fewer processes and smaller overheads. In: 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE) IEEE; 2021:381‐393.
[9]
Wang B, Xiong Y, Shi Y, Zhang L, Hao D. Faster mutation analysis via equivalence modulo states. In: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis; 2017:295‐306.
[10]
Zheng P, Zheng Z, Luo X. Park: accelerating smart contract vulnerability detection via parallel‐fork symbolic execution. In: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis; 2022:740‐751.
[11]
Song D, Hetzelt F, Kim J, Kang BB, Seifert J‐P, Franz M. Agamotto: accelerating kernel driver fuzzing with lightweight virtual machine checkpoints. In: 29th Usenix Security Symposium (Usenix Security 20); 2020:2541‐2557.
[12]
Dong J, Lou Y, Hao D. SRRTA: regression testing acceleration via state reuse. In: Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering; 2020:1244‐1248.
[13]
Amdahl GM. Computer architecture and Amdahl's law. Computer. 2013;46(12):38‐46.
[16]
Kim T, Chandra R, Zeldovich N. Optimizing unit test execution in large software programs using dependency analysis. In: Proceedings of the 4th Asia‐Pacific Workshop on Systems; 2013:1‐6.
[17]
Arrieta A, Valle P, Agirre JA, Sagardui G. Some seeds are strong: seeding strategies for search‐based test case selection. ACM Trans Softw Eng Methodol. 2023;32(1):1‐47.
[18]
Khanna M, Chaudhary A, Toofani A, Pawar A. Performance comparison of multi‐objective algorithms for test case prioritization during web application testing. Arab J Sci Eng. 2019;44:9599‐9625.
[19]
Hao D, Zhang L, Zhang L, Rothermel G, Mei H. A unified test case prioritization approach. ACM Trans Softw Eng Methodol (TOSEM). 2014;24(2):1‐31.
[20]
Mohapatra SK, Mishra AK, Prasad S. Intelligent local search for test case minimization. J Instit Eng (India): Ser B. 2020;101:585‐595.
[21]
Ahuja N, Bhatia PK. Test suite minimization based upon CMIMX and ABC. In: Proceedings of Data Analytics and Management: ICDAM 2021, Volume 2 Springer; 2022:347‐356.
[22]
Dirim S, Özener OO, Sözer H. Prioritization and parallel execution of test cases for certification testing of embedded systems. Softw Qual J. 2023;31(2):471‐496.
[23]
Landing C, Tahvili S, Haggren H, Langkvis M, Muhammad A, Loufi A. Cluster‐based parallel testing using semantic analysis. In: 2020 IEEE International Conference on Artificial Intelligence Testing (AITEST) IEEE; 2020:99‐106.
[24]
Zheng Y, Davanian A, Yin H, Song C, Zhu H, Sun L. FIRM‐AFL: high‐throughput greybox fuzzing of IoT firmware via augmented process emulation. In: Usenix Security Symposium; 2019:1099‐1114.
[25]
Nagy S, Hicks M. Full‐speed fuzzing: reducing fuzzing overhead through coverage‐guided tracing. In: 2019 IEEE Symposium on Security and Privacy (SP) IEEE; 2019:787‐802.
[26]
Andronidis A, Cadar C. SnapFuzz: high‐throughput fuzzing of network applications. In: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis; 2022:340‐351.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Journal of Software: Evolution and Process
Journal of Software: Evolution and Process  Volume 37, Issue 1
January 2025
696 pages
EISSN:2047-7481
DOI:10.1002/smr.v37.1
Issue’s Table of Contents

Publisher

John Wiley & Sons, Inc.

United States

Publication History

Published: 01 September 2024

Author Tags

  1. E2E tests
  2. prefix tree construction
  3. test execution optimization
  4. web applications

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media