IEEE Access (Jan 2019)

FlinkCheck: Property-Based Testing for Apache Flink

  • Cristina Valentina Espinosa,
  • Enrique Martin-Martin,
  • Adrian Riesco,
  • Juan Rodriguez-Hortala

DOI
https://doi.org/10.1109/ACCESS.2019.2947361
Journal volume & issue
Vol. 7
pp. 150369 – 150382

Abstract

Read online

Apache Flink is an open-source, soft real-time stream processing framework underlying many modern systems dealing with cloud and real-time computing, data analytics, and the Internet of Things, among others. As the complexity of stream-processing systems increase, the testing, debugging, and verification tools supporting them should improve as well. However, Flink's testing tools only include a local cluster fake, which requires a great effort from the user to manually craft all those streams (and their corresponding output) that are relevant for each particular function under test. Property-based testing is an automatic, black-box testing technique that tests functions by generating random inputs and checking whether the obtained outputs fulfill a given property. In this paper, we present FlinkCheck, a property-based testing tool for Apache Flink. It uses a bounded temporal logic for both guiding how random streams are generated and defining the properties. We illustrate how the tool works with an example of a collaborative initiative against sexual harassment.

Keywords