Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3238147.3240482acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
short-paper

SRCIROR: a toolset for mutation testing of C source code and LLVM intermediate representation

Published: 03 September 2018 Publication History

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 SRCIROR in enabling mutation testing research across different levels of code representation.

References

[1]
Libtooling. http://clang.llvm.org/docs/LibTooling.html.
[2]
Matching the Clang AST. http://clang.llvm.org/docs/LibASTMatchers.html.
[3]
Paul Ammann, Marcio Eduardo Delamaro, and Jeff Offutt. Establishing theoretical minimal sets of mutants. In ICST, pages 21–30, 2014.
[4]
James H. Andrews and Amin Alipour. MutGen tool. https://github.com/alipourm/cmutate.
[5]
J.H. Andrews, L.C. Briand, and Y. Labiche. Is mutation an appropriate tool for testing experiments? In ICSE, pages 402–411, 2005.
[6]
Marcio Eduardo Delamaro and Jose Carlos Maldonado. Proteum tool for mutation testing of C programs. https://github.com/magsilva/proteum.
[7]
Márcio Eduardo Delamaro and José Carlos Maldonado. Proteum—A tool for the assessment of test adequacy for C programs. In PCS, pages 79–95, 1996.
[8]
Rahul Gopinath, Amin Alipour, Iftekhar Ahmed, Carlos Jensen, and Alex Groce. Measuring effectiveness of mutant sets. In ICSTW, pages 132–141, 2016.
[9]
Alex Groce, Josie Holmes, Darko Marinov, August Shi, and Lingming Zhang. An extensible, regular-expression-based tool for multi-language mutant generation. 2018.
[10]
Farah Hariri, August Shi, Hayes Converse, Sarfraz Khurshid, and Darko Marinov. Evaluating the effects of compiler optimizations on mutation testing at the compiler IR level. In ISSRE, pages 105–115, 2016.
[11]
Yue Jia. Milu: A higher order mutation testing tool. https://github.com/yuejia/Milu.
[12]
Yue Jia and Mark Harman. MILU: A customizable, runtime-optimized higher order mutation testing tool for the full C language. In TAIC PART, pages 94–98, 2008.
[13]
Yue Jia and Mark Harman. An analysis and survey of the development of mutation testing. TSE, 37(5):649–678, 2011.
[14]
René Just. The Major mutation framework: Efficient and scalable mutation analysis for Java. In ISSTA, pages 433–436, 2014.
[15]
Yu-Seung Ma, Jeff Offutt, and Yong-Rae Kwon. Mujava: a mutation system for Java. In ICSE, pages 827–830, 2006.
[16]
Mike Papadakis, Yue Jia, Mark Harman, and Yves Le Traon. Trivial compiler equivalence: A large scale empirical study of a simple, fast and effective equivalent mutant detection technique. In ICSE, pages 936–946, 2015.
[17]
Goran Petrovic and Marko Ivankovic. State of mutation testing at google. In ICSE SEIP, 2018.
[18]
Eric Schulte. llvm-mutate. http://eschulte.github.io/llvm-mutate/.
[19]
Eric Schulte. Neutral Networks of Real-World Programs and their Application to Automated Software Evolution. PhD thesis, University of New Mexico, 2014.
[20]
Marcelo Sousa and Alper Sen. Generation of TLM testbenches using mutation testing. In CODES+ISSS, pages 323–332, 2012.

Cited By

View all
  • (2024)High-Throughput, Formal-Methods-Assisted Fuzzing for LLVMProceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444854(349-358)Online publication date: 2-Mar-2024
  • (2023)DaMAT: A Data-Driven Mutation Analysis ToolProceedings of the 45th International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion58688.2023.00047(165-169)Online publication date: 14-May-2023
  • (2023)F-ASTMut mutation optimisations techniques using the Clang front-endSoftware Impacts10.1016/j.simpa.2023.10050016(100500)Online publication date: May-2023
  • Show More Cited By

Index Terms

  1. SRCIROR: a toolset for mutation testing of C source code and LLVM intermediate representation

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASE '18: Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
    September 2018
    955 pages
    ISBN:9781450359375
    DOI:10.1145/3238147
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 03 September 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Software testing
    2. mutation testing

    Qualifiers

    • Short-paper

    Conference

    ASE '18
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 82 of 337 submissions, 24%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)29
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 17 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)High-Throughput, Formal-Methods-Assisted Fuzzing for LLVMProceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444854(349-358)Online publication date: 2-Mar-2024
    • (2023)DaMAT: A Data-Driven Mutation Analysis ToolProceedings of the 45th International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion58688.2023.00047(165-169)Online publication date: 14-May-2023
    • (2023)F-ASTMut mutation optimisations techniques using the Clang front-endSoftware Impacts10.1016/j.simpa.2023.10050016(100500)Online publication date: May-2023
    • (2023)Breaking Embedded Software Homogeneity with Protocol MutationsSecurity and Privacy in Communication Networks10.1007/978-3-031-25538-0_40(770-790)Online publication date: 4-Feb-2023
    • (2023)Mutation testing optimisations using the Clang front‐endSoftware Testing, Verification and Reliability10.1002/stvr.1865Online publication date: 17-Oct-2023
    • (2022)BenchPressProceedings of the International Conference on Parallel Architectures and Compilation Techniques10.1145/3559009.3569644(505-516)Online publication date: 8-Oct-2022
    • (2022)MASSProceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings10.1145/3510454.3516840(134-138)Online publication date: 19-Oct-2022
    • (2022)Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results in the Space DomainIEEE Transactions on Software Engineering10.1109/TSE.2021.310768048:10(3913-3939)Online publication date: 1-Oct-2022
    • (2022)MASS: A tool for Mutation Analysis of Space CPS2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)10.1109/ICSE-Companion55297.2022.9793738(134-138)Online publication date: May-2022
    • (2021)Multiple-Searching Genetic Algorithm for Whole Test SuitesElectronics10.3390/electronics1016201110:16(2011)Online publication date: 19-Aug-2021
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media