Testing Stream Programs from Pre/Post-models
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.
Authors
- Sylvain Hallé (ORCID: https://orcid.org/0000-0002-4406-6154)
Institutions
- Université du Québec à Chicoutimi (CA)
Publication Details
- Journal
- SN Computer Science
- Published
- 2025-04-05
- DOI
- https://doi.org/10.1007/s42979-025-03824-6
- Primary Topic
- Formal Methods in Verification
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Canada Excellence Research Chairs, Government of Canada