This paper is a partial reproduction of work by Soltani \emph{et al.} which presented EvoCrash, a tool for replicating software failures in Java by reproducing stack traces. EvoCrash uses a guided genetic algorithm to generate JUnit test cases capable of reproducing failures more reliably than existing coverage-based solutions. In this paper, we present the findings of our reproduction of the initial study exploring the effectiveness of EvoCrash and comparison to three existing solutions: STAR, JCHARMING, and MuCrash. We further explored the capabilities of EvoCrash on different programs to check for selection bias. We found that we can reproduce the crashes covered by EvoCrash in the original study while reproducing two additional crashes not reported as reproduced. We also find that EvoCrash was unsuccessful in reproducing several crashes from the JCHARMING paper, which were excluded from the original study. Both EvoCrash and JCHARMING could reproduce 73\% of the crashes from the JCHARMING paper. We found that there was potentially some selection bias in the dataset for EvoCrash. We also found that some crashes had been reported as non-reproducible even when EvoCrash could reproduce them. We suggest this may be due to EvoCrash becoming stuck in a local optimum.
翻译:本文部分复制了Soltani \ emph{et al.} 的工作, 它展示了 EvoCrash 的作品, EvoCrash 是复制爪哇软件失败的一种工具, 通过复制堆积痕迹来复制 Java 软件失败。 EvoCrash 使用受引导的基因算法生成JUM 测试案例, 能够比现有基于覆盖的解决方案更可靠地复制失败。 在本文中, 我们介绍了我们复制初步研究探索 EvoCrash 有效性和与三种现有解决方案( STAR, JCHARMING, JCHARMING, 和 MuCrash) 的研究结果。 我们进一步探索了 EvoCrash 在不同程序上检查选择偏差的工具的能力。 我们发现, EvoCrash 在原始研究中复制了EvoCrash 所覆盖的崩溃事件, 同时复制了另外两次未报告的碰撞事件。 我们还发现, EvoCrash 在原始研究中没有被报道过几次碰撞事件。