Software bugs often lead to software crashes, which cost US companies upwards of $2.08 trillion annually. Automated Crash Reproduction (ACR) aims to generate unit tests that successfully reproduce a crash. The goal of ACR is to aid developers with debugging, providing them with another tool to locate where a bug is in a program. The main approach ACR currently takes is to replicate a stack trace from an error thrown within a program. Currently, ACR has been developed for C, Java, and Python, but there are no tools targeting JavaScript programs. To aid the development of JavaScript ACR tools, we propose CrashJS: a benchmark dataset of 453 Node.js crashes from several sources. CrashJS includes a mix of real-world and synthesised tests, multiple projects, and different levels of complexity for both crashes and target programs.
翻译:软件缺陷常导致程序崩溃,每年给美国企业造成超过2.08万亿美元的损失。自动崩溃复现技术旨在生成能够成功复现崩溃的单元测试,其目标是辅助开发者进行调试,为其定位程序中的缺陷提供额外工具。当前自动崩溃复现的主流方法是通过复制程序异常抛出的堆栈轨迹来实现。目前该技术已覆盖C、Java和Python语言,但尚无针对JavaScript程序的工具。为促进JavaScript自动崩溃复现工具的发展,我们提出CrashJS:一个包含来自多个来源的453个Node.js程序崩溃案例的基准数据集。该数据集融合了真实场景与合成测试用例,涵盖多个项目,并体现了崩溃现象与目标程序在不同复杂度层级上的差异。