一句话:将缺陷预测信息融入基于搜索的软件测试,按缺陷可能性分配时间预算并引导遗传算法搜索缺陷区域,以提升 bug 检测效率。
自动化测试生成器如基于搜索的软件测试(SBST)可替代昂贵的手工测试,并能获得高代码覆盖率。然而高覆盖率并不足以最大化发现的 bug 数;SBST 需要聚焦于有缺陷的区域而非无缺陷区域。该论文利用缺陷预测算法提供的易错区域信息,提出通过融入缺陷预测来提升 SBST 的 bug 检测能力。具体包含两个研究目标:一是 SBSTCL,根据类可能包含缺陷的概率为其分配时间预算;二是 SBSTML,引导底层搜索算法(遗传算法)朝类内缺陷区域搜索。作者在 Defects4J 数据集的 434 个真实 bug 上对 SBSTCL 进行实证评估,结果表明在资源受限且时间预算紧张时,SBSTCL 比当前最先进的 SBST 显著更高效。
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: 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 (SBSTCL) that allocates time budget to classes based on the likelihood of classes being defective, and 2) Develop a novel strategy (SBSTML) 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, SBSTCL, is significantly more efficient than the state of the art SBST when they are given a tight time budget in a resource constrained environment.