Generadores escalables en Apache Flink: implementación y aplicaciones en testing y pruebas de carga

Debido al auge del procesamiento masivo de datos y al surgimiento de motores capaces de realizar esta tarea, se ha visto la necesidad de cambiar la manera en la que se testean las aplicaciones que se usan para dichos motores. La comprobación mediante test unitarios es insuficiente para poder probar...

Descripción completa

Detalles Bibliográficos
Autor: Barral Gago, Antonio
Tipo de recurso: tesis de maestría
Fecha de publicación:2020
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:español
OAI Identifier:oai:docta.ucm.es:20.500.14352/9056
Acceso en línea:https://hdl.handle.net/20.500.14352/9056
Access Level:acceso abierto
Palabra clave:004(043.3)
Apache Flink
ScalaCheck
Testeo basado en propiedades
Tolerancia a fallos
Escalabilidad
Specs2
Generadores
DataSet
Scala.
Property-based testing
Fault-tolerance
Scalable
Generators
Informática (Informática)
1203.17 Informática
Descripción
Sumario:Debido al auge del procesamiento masivo de datos y al surgimiento de motores capaces de realizar esta tarea, se ha visto la necesidad de cambiar la manera en la que se testean las aplicaciones que se usan para dichos motores. La comprobación mediante test unitarios es insuficiente para poder probar la funcionalidad de un programa que manipula millones de datos, sin tener que dedicar una gran cantidad de tiempo para implementar dichos test. Existe una metodología llamada Property-based testing (PBT), derivada del Random testing que genera entradas de datos de manera aleatoria, pudiendo así crear test genéricos. Actualmente, se podría considerar que algunos de los motores más usados son Apache Spark y Apache Flink, pudiendo ambos procesar tanto flujos continuos de datos, como datos en lotes. Apache Spark ya cuenta con aplicaciones basadas en PBT para ambos tipos de procesamiento, mientras que Apache Flink solo tiene bibliotecas para usar PBT en flujos de datos. Así pues, el objetivo principal de este proyecto es desarrollar una herramienta que permita usar PBT en grandes cantidades de datos procesadas en lotes, teniendo en cuenta que dicha herramienta debe de implementar algunas de las características principales de los motores de procesamiento masivo de datos (escalabilidad, distribución y tolerancia a fallos).