DocumentCode
1340569
Title
A Static Approach to Prioritizing JUnit Test Cases
Author
Mei, Hong ; Hao, Dan ; Zhang, Lingming ; Zhang, Lu ; Zhou, Ji ; Rothermel, Gregg
Author_Institution
Sch. of Electron. Eng. & Comput. Sci., Peking Univ., Beijing, China
Volume
38
Issue
6
fYear
2012
Firstpage
1258
Lastpage
1275
Abstract
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 - UPTA´s variants is better than that of the test suites constructed by several of those techniques.
Keywords
Java; program testing; regression analysis; software fault tolerance; JUPTA; JUnit test case prioritization techniques operating in the absence of coverage information; Java programs; dynamic code coverage information; dynamic coverage-based techniques; fault-detection effectiveness; regression testing; static approach; static call graphs; test case prioritization techniques; Regression analysis; Scheduling; Software testing; JUnit; Software testing; call graph; regression testing; test case prioritization;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2011.106
Filename
6363461
Link To Document