Context: Regression testing activities greatly reduce the risk of faulty software release. However, the size of the test suites grows throughout the development process, resulting in time-consuming execution of the test suite and delayed feedback to the software development team. This has urged the need for approaches such as test case prioritization (TCP) and test-suite reduction to reach better results in case of limited resources. In this regard, proposing approaches that use auxiliary sources of data such as bug history can be interesting. Objective: Our aim is to propose an approach for TCP that takes into account test case coverage data, bug history, and test case diversification. To evaluate this approach we study its performance on real-world open-source projects. Method: The bug history is used to estimate the fault-proneness of source code areas. The diversification of test cases is preserved by incorporating fault-proneness on a clustering-based approach scheme. 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 the proposed methods are superior to coverage-based TCP methods. Conclusion: The proposed approach shows that improvement of coverage-based and fault-proneness based methods is possible by using a combination of diversification and fault-proneness incorporation.
翻译:退步测试活动大大减少了软件释放错误的风险。但是,在整个开发过程中,测试套件的规模在扩大,导致测试套件的执行耗时,软件开发团队的反馈延迟。这促使有必要采用测试案件优先排序和测试适量减少等方法,以便在资源有限的情况下取得更好的结果。在这方面,建议使用诸如错误历史等辅助数据源的方法是有趣的。目标:我们的目的是为TCP提出一种方法,其中考虑到测试案例覆盖数据、错误历史和测试案例多样化。为了评价这一方法,我们研究了实际世界开放源码项目的绩效。方法:错误历史用于估计源码区域的易出错性。通过将易出错性纳入基于集群的办法保持测试案例的多样化。结果:对从五个真实世界项目的发展史中收集的数据集,包括总共357个版本,进行了评估。实验表明,拟议的方法优于基于覆盖的TCP方法。结论:采用基于易变率和可能的错错率组合方法,改进了基于可变率和易变率的合并方法。