首页> 外文期刊>Software Engineering, IEEE Transactions on >A Static Approach to Prioritizing JUnit Test Cases
【24h】

A Static Approach to Prioritizing JUnit Test Cases

机译:优先考虑JUnit测试用例的静态方法

获取原文
获取原文并翻译 | 示例

摘要

Test case prioritization is used in regression testing to schedule the execution order of test cases so as to expose faults earlier in testing. Over the past few years, many test case prioritization techniques have been proposed in the literature. Most of these techniques require data on dynamic execution in the form of code coverage information for test cases. However, the collection of dynamic code coverage information on test cases has several associated drawbacks including cost increases and reduction in prioritization precision. In this paper, we propose an approach to prioritizing test cases in the absence of coverage information that operates on Java programs tested under the JUnit framework—an increasingly popular class of systems. Our approach, JUnit test case Prioritization Techniques operating in the Absence of coverage information (JUPTA), analyzes the static call graphs of JUnit test cases and the program under test to estimate the ability of each test case to achieve code coverage, and then schedules the order of these test cases based on those estimates. To evaluate the effectiveness of JUPTA, we conducted an empirical study on 19 versions of four Java programs ranging from 2K-80K lines of code, and compared several variants of JUPTA with three control techniques, and several other existing dynamic coverage-based test case prioritization techniques, assessing the abilities of the techniques to increase the rate of fault detection of test suites. Our results show that the test suites constructed by JUPTA are more effective than those in random and untreated test orders in terms of fault-detection effectiveness. Although the test suites constructed by dynamic coverage-based techniques retain fault-detection effectiveness advantages, the fault-detection effectiveness of the test suites constructed by JUPTA is close to that of the test suites constructed by those techniques, and the fault-detection effectiveness of the test suites constructed- by some of JUPTA's variants is better than that of the test suites constructed by several of those techniques.
机译:在回归测试中使用测试案例优先级来安排测试案例的执行顺序,以便在测试的早期阶段暴露故障。在过去的几年中,文献中提出了许多测试用例的优先级排序技术。这些技术中的大多数都需要有关测试用例的代码覆盖信息形式的动态执行数据。但是,关于测试用例的动态代码覆盖率信息的收集具有几个相关的缺点,包括成本增加和优先级降低。在本文中,我们提出了一种在没有覆盖信息的情况下对测试用例进行优先级排序的方法,该信息在JUnit框架(一种越来越流行的系统)下的Java程序上运行。我们的方法是在没有覆盖率信息(JUPTA)的情况下运行的JUnit测试用例优先级排序技术,分析JUnit测试用例和被测程序的静态调用图,以估计每个测试用例实现代码覆盖的能力,然后调度这些测试用例基于这些估计的顺序。为了评估JUPTA的有效性,我们对19种版本的4个Java程序进行了实证研究,范围从2K-80K行代码,并比较了JUPTA的几种变体和三种控制技术,以及其他几种基于动态覆盖的测试用例优先级技术,评估这些技术提高测试套件故障检测率的能力。我们的结果表明,在故障检测效率方面,JUPTA构建的测试套件比随机和未经处理的测试订单中的测试套件更有效。尽管通过基于动态覆盖的技术构建的测试套件保留了故障检测有效性的优势,但是JUPTA所构建的测试套件的故障检测有效性接近于那些技术所构建的测试套件,并且JUPTA的故障检测有效性由JUPTA的一些变体构建的测试套件要比由其中几种技术构建的测试套件更好。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号