Skip to main content

Research Repository

Advanced Search

Runtime verification and validation of functional reactive systems

Perez, Ivan; Nilsson, Henrik

Runtime verification and validation of functional reactive systems Thumbnail


Authors

Ivan Perez

Henrik Nilsson



Abstract

Many types of interactive applications, including reactive systems implemented in hardware, interactive physics simulations and games, raise particular challenges when it comes to testing and debugging. Reasons include de facto lack of reproducibility and difficulties of automatically generating suitable test data. This paper demonstrates that certain variants of functional reactive programming (FRP) implemented in pure functional languages can mitigate such difficulties by offering referential transparency at the level of whole programs. This opens up for a multi-pronged approach for assisting with testing and debugging that works across platforms, including assertions based on temporal logic, recording and replaying of runs (also from deployed code), and automated random testing using QuickCheck. When combined with extensible forms of FRP that allow for constrained side effects, it allows us to not only validate software simulations but to analyse the effect of faults in reactive systems, confirm the efficacy of fault tolerance mechanisms and perform software- and hardware-in-the-loop testing. The approach has been validated on non-trivial systems implemented in several existing FRP implementations, by means of careful debugging using a tool that allows the test or simulation under scrutiny to be controlled, moving along the execution timeline, and pin-pointing of violations of assertions on personal computers as well as external devices.

Citation

Perez, I., & Nilsson, H. (2020). Runtime verification and validation of functional reactive systems. Journal of Functional Programming, 30, Article e28. https://doi.org/10.1017/s0956796820000210

Journal Article Type Article
Acceptance Date Jun 23, 2020
Online Publication Date Aug 26, 2020
Publication Date 2020
Deposit Date Sep 4, 2020
Publicly Available Date Mar 28, 2024
Journal Journal of Functional Programming
Print ISSN 0956-7968
Electronic ISSN 1469-7653
Publisher Cambridge University Press
Peer Reviewed Peer Reviewed
Volume 30
Article Number e28
DOI https://doi.org/10.1017/s0956796820000210
Keywords Software
Public URL https://nottingham-repository.worktribe.com/output/4882003
Publisher URL https://www.cambridge.org/core/journals/journal-of-functional-programming/article/runtime-verification-and-validation-of-functional-reactive-systems/875DE7B51D38C418739B441874EB23D2

Files




Downloadable Citations