arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1908.01540cs.SE
收藏

详细说明:基于LLVM的突变测试

Mull it over: mutation testing based on LLVM

Alex Denisov, Stanislav Pankevich

摘要:

本文介绍了Mull,一个基于LLVM框架的开源突变测试工具。Mull使用LLVM IR(一种低级中间表示)来执行变化,并使用LLVM JIT进行即时编译。这种设计选择实现了Mull的以下两个功能:语言独立性和对测试程序及其变化的编译和执行的细粒度控制。Mull可以使用任何支持编译到LLVM IR的程序设计语言编写的代码,例如C、C++、Rust或Swift。LLVM IR的直接操作允许Mull做更少的工作来生成突变:只有修改过的IR代码片段被重新编译,这导致了对突变程序的更快处理。据我们所知,没有现有的突变测试工具提供这些功能的编译程序设计语言。我们描述了Mull的算法和实现细节,突出了Mull当前的局限性,并提出了我们对真实世界的项目,如RODOS,OpenSSL,LLVM的Mull的评估结果。

英文摘要:

This paper describes Mull, an open-source tool for mutation testing based on the LLVM framework. Mull works with LLVM IR, a low-level intermediate representation, to perform mutations, and uses LLVM JIT for just-in-time compilation. This design choice enables the following two capabilities of Mull: language independence and fine-grained control over compilation and execution of a tested program and its mutations. Mull can work with code written in any programming language that supports compilation to LLVM IR, such as C, C++, Rust, or Swift. Direct manipulation of LLVM IR allows Mull to do less work to generate mutations: only modified fragments of IR code are recompiled, and this results in faster processing of mutated programs. To our knowledge, no existing mutation testing tool provides these capabilities for compiled programming languages. We describe the algorithm and implementation details of Mull, highlight current limitations of Mull, and present the results of our evaluation of Mull on real-world projects such as RODOS, OpenSSL, LLVM.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑