4.6 Article

A Static Approach to Prioritizing JUnit Test Cases

期刊

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
卷 38, 期 6, 页码 1258-1275

出版社

IEEE COMPUTER SOC
DOI: 10.1109/TSE.2011.106

关键词

Software testing; regression testing; test case prioritization; JUnit; call graph

资金

  1. National Basic Research Program of China [2009CB320703]
  2. Science Fund for Creative Research Groups of China [61121063]
  3. National Natural Science Foundation of China [91118004, 60803012]
  4. US National Science Foundation (NSF) [CNS-0454203]
  5. World Class University program under the National Research Foundation of Korea
  6. Ministry of Education, Science and Technology of Korea [R31-30007]
  7. Division Of Computer and Network Systems
  8. Direct For Computer & Info Scie & Enginr [0958231] Funding Source: National Science Foundation
  9. Division Of Computer and Network Systems
  10. Direct For Computer & Info Scie & Enginr [0958346, 0958235, 0958199] Funding Source: National Science Foundation

向作者/读者索取更多资源

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.

作者

我是这篇论文的作者
点击您的名字以认领此论文并将其添加到您的个人资料中。

评论

主要评分

4.6
评分不足

次要评分

新颖性
-
重要性
-
科学严谨性
-
评价这篇论文

推荐

暂无数据
暂无数据