Stream processing has reached the mainstream in the last years, as a new generation of open source distributed stream processing systems, designed for scaling horizontally on commodity hardware, has brought the capability for processing high volume and high velocity data streams to companies of all sizes. In this work we propose a combination of temporal logic and property-based testing (PBT) for dealing with the challenges of testing programs that employ this programming model. We formalize our approach in a discrete time temporal logic for finite words, with some additions to improve the expressiveness of properties, which includes timeouts for temporal operators and a binding operator for letters. In particular we focus on testing Spark Streaming programs written with the Spark API for the functional language Scala, using the PBT library ScalaCheck. For that we add temporal logic operators to a set of new ScalaCheck generators and properties, as part of our testing library sscheck. Under consideration in Theory and Practice of Logic Programming (TPLP).
翻译:过去几年来,溪流处理进入主流,因为新一代开放源源分布流处理系统,旨在横向扩大商品硬件,使各种规模的公司具有处理高容量和高速数据流的能力。在这项工作中,我们提议结合时间逻辑和基于财产的测试(PBT)来应对使用这种编程模型的测试程序的挑战。我们用一个不固定的时间时间时间时间逻辑来将我们的方法正式确定为限定的单词,并增加一些内容来改进属性的表达性,包括时间操作员的超时和信件的具有约束力的操作员。我们特别侧重于测试与Spark API为功能语言Scala编写的Spark API的Spark Streaming程序,使用 PBT 图书馆 Scala Check。为此,我们将时间逻辑操作员加入一套新的Scalacheck 生成器和属性,作为我们测试图书馆检查的一部分。在逻辑编程理论和实践(TPLP)中考虑。