Abstract
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.
Highlights
Apache Flink [1] is a soft real-time stream processing framework supporting stateful computations over unbounded and bounded data streams
Stream processing is used in sophisticated use cases like data analytics and anomaly detection, that lead to complex systems where appropriate quality assurance procedures are required
We present FlinkCheck, a property-based testing (PBT) tool for Apache Flink
Summary
Apache Flink [1] is a soft real-time stream processing framework supporting stateful computations over unbounded and bounded data streams. Operators, and a local cluster fake [6] to test a full program, and references some internal testing tooling with unstable interfaces for testing checkpoints and state handling In all those cases the user is required to introduce by hand the input stream and the expected output, which might be huge in general, making these testing techniques tedious and error-prone. Empirical studies [8], [9] have shown that PBT techniques obtain good code coverage results in practice, with smaller effort compared to manually writing tests that cover all cases using xUnit frameworks Besides this general contribution, the presentation of the property-based testing tool FlinkCheck, the specific contributions of the paper are: The source code of FlinkCheck, examples, and more information is available at https://github.com/demiourgoi/flink-check
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.