Feedback-directed differential testing of interactive debuggers

Feedback-directed differential testing of interactive debuggers
复制标题

DOI:
10.1145/3236024.3236037
复制
发表时间:
2018-09
期刊:
Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
Daniel Lehmann;Michael Pradel
Daniel Lehmann;Michael Pradel
中科院分区:
其他
文献类型:
--
作者:
Daniel Lehmann;Michael Pradel

文献摘要

被引文献

相似文献

为了理解、定位和修复编程错误,开发人员通常依赖于交互式调试器。然而,由于调试器是软件,它们本身可能有bug,这可能会使调试变得不必要的困难,甚至导致开发人员对实际上不存在于代码中的bug进行推理。本文提出了第一个自动化测试技术的交互式调试器。调试器的测试问题与编译器的测试问题有着根本的不同,因为调试器是交互式的,而且它们缺乏预期行为的规范。我们的方法,称为DBDB,生成调试器的动作来练习调试器和记录跟踪,总结调试器的行为。通过相互比较多个调试器的跟踪,我们发现了指向错误和其他值得注意的差异的不同行为。我们在Firefox和Chromium的JavaScript调试器上对DBDB进行了评估,发现了19个以前未报告的bug,其中8个已经被开发人员修复。
To understand, localize, and fix programming errors, developers often rely on interactive debuggers. However, as debuggers are software, they may themselves have bugs, which can make debugging unnecessarily hard or even cause developers to reason about bugs that do not actually exist in their code. This paper presents the first automated testing technique for interactive debuggers. The problem of testing debuggers is fundamentally different from the well-studied problem of testing compilers because debuggers are interactive and because they lack a specification of expected behavior. Our approach, called DBDB, generates debugger actions to exercise the debugger and records traces that summarize the debugger's behavior. By comparing traces of multiple debuggers with each other, we find diverging behavior that points to bugs and other noteworthy differences. We evaluate DBDB on the JavaScript debuggers of Firefox and Chromium, finding 19 previously unreported bugs, eight of which are already fixed by the developers.