Mutation analysis is an effective technique to evaluate a test suite adequacy in terms of revealing unforeseen bugs in software. Traditional source- or IR-level mutation analysis is not applicable to the software only available in binary format. This paper proposes a practical binary mutation analysis via binary rewriting, along with a rich set of mutation operators to represent more realistic bugs. We implemented our approach using two state-of-the-art binary rewriting tools and evaluated its effectiveness and scalability by applying them to SPEC CPU benchmarks. Our analysis revealed that the richer mutation operators contribute to generating more diverse mutants, which, compared to previous works leads to a higher mutation score for the test harness. We also conclude that the reassembleable disassembly rewriting yields better scalability in comparison to lifting to an intermediate representation and performing a full translation.
翻译:突变分析是评价测试套件是否足以发现软件中意外错误的有效技术。传统的源或IR级突变分析不适用于仅以二元格式提供的软件。本文建议通过二进制重写进行实用的二进制突变分析,同时提出大量变异操作员以代表更现实的错误。我们采用了两种先进的二进制重写工具,并通过将其应用到SPEC CPU基准来评价其有效性和可扩展性。我们的分析表明,较富裕的突变操作员有助于产生更多样化的变异体,与以往的工程相比,这导致试验利用的变异得分更高。我们还得出结论,可重新组装的重写比升到中间的表示和进行全面翻译更具有可缩性。