当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Search-Based Crash Reproduction and Its Impact on Debugging
IEEE Transactions on Software Engineering ( IF 6.5 ) Pub Date : 2020-12-01 , DOI: 10.1109/tse.2018.2877664
Mozhan Soltani , Annibale Panichella , Arie van Deursen

Software systems fail. These failures are often reported to issue tracking systems, where they are prioritized and assigned to responsible developers to be investigated. When developers debug software, they need to reproduce the reported failure in order to verify whether their fix actually prevents the failure from happening again. Since manually reproducing each failure could be a complex task, several automated techniques have been proposed to tackle this problem. Despite showing advancements in this area, the proposed techniques showed various types of limitations. In this paper, we present EvoCrash, a new approach to automated crash reproduction based on a novel evolutionary algorithm, called Guided Genetic Algorithm (GGA). We report on our empirical study on using EvoCrash to reproduce 54 real-world crashes, as well as the results of a controlled experiment, involving human participants, to assess the impact of EvoCrash tests in debugging. Based on our results, EvoCrash outperforms state-of-the-art techniques in crash reproduction and uncovers failures that are undetected by classical coverage-based unit test generation tools. In addition, we observed that using EvoCrash helps developers provide fixes more often and take less time when debugging, compared to developers debugging and fixing code without using EvoCrash tests.

中文翻译:

基于搜索的崩溃再现及其对调试的影响

软件系统失效。这些故障通常被报告给问题跟踪系统,在那里它们被优先考虑并分配给负责的开发人员进行调查。当开发人员调试软件时,他们需要重现报告的故障,以验证他们的修复是否真正防止了故障再次发生。由于手动重现每个故障可能是一项复杂的任务,因此已经提出了几种自动化技术来解决这个问题。尽管在该领域取得了进展,但所提出的技术显示出各种类型的局限性。在本文中,我们介绍了 EvoCrash,这是一种基于称为引导遗传算法 (GGA) 的新型进化算法的自动崩溃再现的新方法。我们报告了使用 EvoCrash 重现 54 次真实世界崩溃的实证研究,以及涉及人类参与者的受控实验的结果,以评估 EvoCrash 测试对调试的影响。根据我们的结果,EvoCrash 在崩溃重现方面优于最先进的技术,并发现了经典的基于覆盖的单元测试生成工具无法检测到的故障。此外,我们观察到,与不使用 EvoCrash 测试的开发人员调试和修复代码相比,使用 EvoCrash 可以帮助开发人员更频繁地提供修复并在调试时花费更少的时间。
更新日期:2020-12-01
down
wechat
bug