QTEP: Quality-Aware Test Case Prioritization
Test case prioritization (TCP) is a practical activity in software testing for exposing faults earlier. Researchers have proposed many TCP techniques to re-order test cases. Among them, coverage-based TCPs have been widely investigated. Specifically, coverage-based TCP approaches leverage coverage information between source code and test cases, i.e., static code coverage and dynamic code coverage, to schedule test cases. Existing coverage-based TCP techniques mainly focus on maximizing coverage while often do not consider the likely distribution of faults in source code. However, software faults are not often equally distributed in source code, e.g., around 80% faults are located in about 20% source code. Intuitively, test cases that cover the faulty source code should have higher priorities, since they are more likely to find faults.
QTEP is proposed to address the limitation of existing coverage-based TCP algorithms. In QTEP, we leverage code inspection techniques, i.e., a typical statistic defect prediction model and a typical static bug finder, to detect fault-prone source code and then adapt existing coverage-based TCP algorithms by considering the weighted source code in terms of fault-proneness.
Song Wang, Jaechang Nam, and Lin Tan. "QTEP: Quality-aware Test Case Prioritization," 11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. (FSE 2017) [download]
Experimental Data and Additional Results:
Projects and faults:
a) Coverage information [download]
b) Real faults for regression cases [download]
c) Mutation faults for new test cases [download]
d) Metrics for CLAIM [download]
e) FindBugs reports [download]
Additional Result (Comparison between dynamic coverage based QTEP and the corresponding traditional TCPs):
Song Wang (firstname.lastname@example.org)
JC Nam (email@example.com)
Lin Tan (firstname.lastname@example.org)
Send us an email if you have any questions about this work.