TRANSMUT‐Spark: Transformation mutation for Apache Spark. (10th February 2022) - de Souza Neto, João Batista; Martins Moreira, Anamaria; Vargas‐Solar, Genoveva; Musicante, Martin A.
Summary: This paper proposes TRANSMUT‐Spark for automating mutation testing of big data processing code within Spark programs. Apache Spark is an engine for big data analytics/processing that hides the inherent complexity of parallel big data programming. Nonetheless, programmers must cleverly combine Spark built‐in functions within programs and guide the engine to use the right data management strategies to exploit the computational resources required by big data processing and avoid substantial production losses. Many programming details in Spark data processing code are prone to false statements that must be correctly and automatically tested. This paper explores the application of mutation testing in Spark programs, a fault‐based testing technique that relies on fault simulation to evaluate and design test sets. The paper introduces TRANSMUT‐Spark for testing Spark programs by automating the most laborious steps of the process and fully executing the mutation testing process. The paper describes how the TRANSMUT‐Spark automates the mutant generation, test execution and adequacy analysis phases of mutation testing. It also discusses the results of experiments to validate the tool and argues its scope and limitations. Abstract : This paper proposes TRANSMUT‐Spark, a mutation testing tool for big data processing code within Spark programs. TRANSMUT‐Spark implements transformation mutation to simulate faults specific to data flow programs and data processing operations. TRANSMUT‐Spark was experimentally evaluated, and the results showed that (1) it is able to automate the most laborious steps of mutation testing in Spark programs; (2) it can reduce testing costs by applying cost reduction strategies; and (3) it can complement the traditional mutation testing at the syntactic level in Spark programs written in the Scala programming language.