  Context: During the development process of a software program, regression
testing is used to ensure that the correct behavior of the software is retained
after updates to the source code. This regression testing becomes costly over
time as the number of test cases increases and it makes sense to prioritize
test cases in order to execute fault-detecting test cases as soon as possible.
There are many coverage-based test case prioritization (TCP) methods that only
use the code coverage data to prioritize test cases. By incorporating the
fault-proneness estimations of code units into the coverage-based TCP methods,
we can improve such techniques.
  Objective: In this paper, we aim to propose an approach which improves
coverage-based TCP methods by considering the fault-proneness distribution over
code units. Further, we present the results of an empirical study that shows
using our proposed approach significantly improves the additional strategy,
which is a widely used coverage-based TCP method.
  Method: The approach presented in this study uses the bug history of the
software in order to introduce a defect prediction method to learn a neural
network model. This model is then used to estimate fault-proneness of each area
of the source code and then the estimations are incorporated into
coverage-based TCP methods. Our proposed approach is a general idea that can be
applied to many coverage-based methods, such as the additional and total TCP
methods.
  Results: The proposed methods are evaluated on datasets collected from the
development history of five real-world projects including 357 versions in
total. The experiments show that using an appropriate bug history can improve
coverage-based TCP methods.
