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. Paper: 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):
Team: Song Wang (song.wang@uwaterloo.ca) JC Nam (jc.nam@uwaterloo.ca) Lin Tan (lintan@purdue.edu) Send us an email if you have any questions about this work. |