<p>Stream processing is a programming paradigm that is growing in popularity due to the presence of an increasing number of academic and commercial platforms. However, there exist few tools and methodologies to properly test a program that manipulates streams; in particular, model-based testing techniques need to be adapted to the particularities of stream processing. The paper suggests that pre/post models on stream programs be specified in the form of runtime monitors, themselves implemented as stream programs. It also describes how test inputs satisfying a given precondition can be generated automatically, through a mechanism that inverts the operation of a stream processing pipeline. A proof-of-concept library implements these concepts for the specific case of the BeepBeep event stream processing library, and is evaluated experimentally. The approach can successfully find satisfying input cases for pre-conditions involving non-trivial constructs such as sliding windows, aggregations and filtering.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Testing Stream Programs from Pre/Post-models

  • Sylvain Hallé

摘要

Stream processing is a programming paradigm that is growing in popularity due to the presence of an increasing number of academic and commercial platforms. However, there exist few tools and methodologies to properly test a program that manipulates streams; in particular, model-based testing techniques need to be adapted to the particularities of stream processing. The paper suggests that pre/post models on stream programs be specified in the form of runtime monitors, themselves implemented as stream programs. It also describes how test inputs satisfying a given precondition can be generated automatically, through a mechanism that inverts the operation of a stream processing pipeline. A proof-of-concept library implements these concepts for the specific case of the BeepBeep event stream processing library, and is evaluated experimentally. The approach can successfully find satisfying input cases for pre-conditions involving non-trivial constructs such as sliding windows, aggregations and filtering.