SRCIROR: A Toolset for Mutation Testing of C Source Code and LLVM Intermediate Representation

Farah Hariri, A. Shi
{"title":"SRCIROR: A Toolset for Mutation Testing of C Source Code and LLVM Intermediate Representation","authors":"Farah Hariri, A. Shi","doi":"10.1145/3238147.3240482","DOIUrl":null,"url":null,"abstract":"We present SRCIROR (pronounced “sorcerer”), a toolset for performing mutation testing at the levels of C/C++ source code (SRC) and the LLVM compiler intermediate representation (IR). At the SRC level, SRCIROR identifies program constructs for mutation by pattern-matching on the Clang AST. At the IR level, SRCIROR directly mutates the LLVM IR instructions through LLVM passes. Our implementation enables SRCIROR to (1) handle any program that Clang can handle, extending to large programs with a minimal overhead, and (2) have a small percentage of invalid mutants that do not compile. SRCIROR enables performing mutation testing using the same classes of mutation operators at both the SRC and IR levels, and it is easily extensible to support more operators. In addition, SRCIROR can collect coverage to generate mutants only for covered code elements. Our tool is publicly available on GitHub (https://github.com/TestingResearchIllinois/srciror). We evaluate SRCIROR on Coreutils subjects. Our evaluation shows interesting differences between SRC and IR, demonstrating the value of SR-CIROR in enabling mutation testing research across different levels of code representation.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"10 1","pages":"860-863"},"PeriodicalIF":0.0000,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"17","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3238147.3240482","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 17

Abstract

We present SRCIROR (pronounced “sorcerer”), a toolset for performing mutation testing at the levels of C/C++ source code (SRC) and the LLVM compiler intermediate representation (IR). At the SRC level, SRCIROR identifies program constructs for mutation by pattern-matching on the Clang AST. At the IR level, SRCIROR directly mutates the LLVM IR instructions through LLVM passes. Our implementation enables SRCIROR to (1) handle any program that Clang can handle, extending to large programs with a minimal overhead, and (2) have a small percentage of invalid mutants that do not compile. SRCIROR enables performing mutation testing using the same classes of mutation operators at both the SRC and IR levels, and it is easily extensible to support more operators. In addition, SRCIROR can collect coverage to generate mutants only for covered code elements. Our tool is publicly available on GitHub (https://github.com/TestingResearchIllinois/srciror). We evaluate SRCIROR on Coreutils subjects. Our evaluation shows interesting differences between SRC and IR, demonstrating the value of SR-CIROR in enabling mutation testing research across different levels of code representation.
SRCIROR:用于C源代码和LLVM中间表示的突变测试的工具集
我们提出了SRCIROR(发音为“sorcerer”),一个用于在C/ c++源代码(SRC)和LLVM编译器中间表示(IR)级别执行突变测试的工具集。在SRC级别,SRCIROR通过Clang AST上的模式匹配来识别要进行突变的程序结构。在IR级别,SRCIROR通过LLVM传递直接对LLVM IR指令进行突变。我们的实现使SRCIROR能够(1)处理Clang可以处理的任何程序,以最小的开销扩展到大型程序,以及(2)具有一小部分无法编译的无效突变。SRCIROR允许在SRC和IR级别使用相同类的突变操作符执行突变测试,并且它很容易扩展以支持更多操作符。此外,SRCIROR可以收集覆盖范围,仅为覆盖的代码元素生成突变。我们的工具在GitHub (https://github.com/TestingResearchIllinois/srciror)上公开可用。我们评估了coretils受试者的SRCIROR。我们的评估显示了SRC和IR之间有趣的差异,证明了SR-CIROR在跨不同级别代码表示的突变测试研究中的价值。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信