Automatic Testing of Design Faults in MapReduce Applications

New processing models are being adopted in Big Data engineering to overcome the limitations of traditional technology. Among them, MapReduce stands out by allowing for the processing of large volumes of data over a distributed infrastructure that can change during runtime. The developer only designs...

Descripción completa

Detalles Bibliográficos
Autores: Morán Barbón, Jesús|||0000-0002-7544-3901, Bertolino, Antonia, Riva Álvarez, Claudio A. de la|||0000-0001-5592-9683, Tuya González, Pablo Javier|||0000-0002-1091-934X
Tipo de recurso: artículo
Fecha de publicación:2018
País:España
Institución:Universidad de Oviedo (UNIOVI)
Repositorio:RUO. Repositorio Institucional de la Universidad de Oviedo
Idioma:inglés
OAI Identifier:oai:digibuo.uniovi.es:10651/47022
Acceso en línea:http://hdl.handle.net/10651/47022
https://dx.doi.org/10.1109/TR.2018.2802047
Access Level:acceso abierto
Palabra clave:Big Data
Combinatorial testing
Metamorphic testing
Partition testing
Descripción
Sumario:New processing models are being adopted in Big Data engineering to overcome the limitations of traditional technology. Among them, MapReduce stands out by allowing for the processing of large volumes of data over a distributed infrastructure that can change during runtime. The developer only designs the functionality of the program and its execution is managed by a distributed system. As a consequence, a program can behave differently at each execution because it is automatically adapted to the resources available at each moment. Therefore, when the program has a design fault, this could be revealed in some executions and masked in others. However, during testing, these faults are usually masked because the test infrastructure is stable, and they are only revealed in production because the environment is more aggressive with infrastructure failures, among other reasons. This paper proposes new testing techniques that aimed to detect these design faults by simulating different infrastructure configurations. The testing techniques generate a representative set of infrastructure configurations that as whole are more likely to reveal failures using random testing, and partition testing together with combinatorial testing. The techniques are automated by using a test execution engine called MRTest that is able to detect these faults using only the test input data, regardless of the expected output. Our empirical evaluation shows that MRTest can automatically detect these design faults within a reasonable time