NodeSRT:一个Node.js应用程序的选择性回归测试工具
NodeSRT: A Selective Regression Testing Tool for Node.js Application
摘要:
Node.js是构建Web应用程序最流行的框架之一。随着软件系统的成熟,运行整个回归测试套件的成本可能会变得很大。选择性回归测试(SRT)是一种只执行测试子集的技术,回归测试集可以更有效地检测软件故障。以前的SRT研究主要集中在标准的桌面应用程序。Node.js应用程序被认为很难执行测试缩减,因为Node的异步、事件驱动的编程模型,而且JavaScript是一种动态规划语言。在本文中,我们介绍了NodeSRT,一个用于Node.js应用程序的选择性回归测试框架。NodeSRT通过执行静态和动态分析,识别变更方法和测试之间的关系,然后将回归测试集缩减为仅受变更影响的测试,以改善回归测试集的执行时间。为了评估我们的选择技术,我们将NodeSRT应用于两个开源项目:Uppy和Simorgh,然后将我们的方法与retest-all策略和当前行业标准的SRT技术:Jest OnlyChange进行比较。结果表明,NodeSRT根据更改正确选择受影响的测试,比Jest OnlyChange快250%,精确450%。
英文摘要:
Node.js is one of the most popular frameworks for building web applications. As software systems mature, the cost of running their entire regression test suite can become significant. Selective Regression Testing (SRT) is a technique that executes only a subset of tests the regression test suite can detect software failures more efficiently. Previous SRT studies mainly focused on standard desktop applications. Node.js applications are considered hard to perform test reduction because of Node's asynchronous, event-driven programming model and because JavaScript is a dynamic programming language. In this paper, we present NodeSRT, a Selective Regression Testing framework for Node.js applications. By performing static and dynamic analysis, NodeSRT identifies the relationship between changed methods and tests, then reduces the regression test suite to only tests that are affected by the change to improve the execution time of the regression test suite. To evaluate our selection technique, we applied NodeSRT to two open-source projects: Uppy and Simorgh, then compared our approach with the retest-all strategy and current industry-standard SRT technique: Jest OnlyChange. The results demonstrate that NodeSRT correctly selects affected tests based on changes and is 250% faster, 450% more precise than the Jest OnlyChange.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。