  Automated test generators, such as search based software testing (SBST)
techniques, replace the tedious and expensive task of manually writing test
cases. SBST techniques are effective at generating tests with high code
coverage. However, is high code coverage sufficient to maximise the number of
bugs found? We argue that SBST needs to be focused to search for test cases in
defective areas rather in non-defective areas of the code in order to maximise
the likelihood of discovering the bugs. Defect prediction algorithms give
useful information about the bug-prone areas in software. Therefore, we
formulate the objective of this thesis: \textit{Improve the bug detection
capability of SBST by incorporating defect prediction information}. To achieve
this, we devise two research objectives, i.e., 1) Develop a novel approach
(SBST$_{CL}$) that allocates time budget to classes based on the likelihood of
classes being defective, and 2) Develop a novel strategy (SBST$_{ML}$) to guide
the underlying search algorithm (i.e., genetic algorithm) towards the defective
areas in a class. Through empirical evaluation on 434 real reported bugs in the
Defects4J dataset, we demonstrate that our novel approach, SBST$_{CL}$, is
significantly more efficient than the state of the art SBST when they are given
a tight time budget in a resource constrained environment.
