Ivan Perez
Runtime verification and validation of functional reactive systems
Perez, Ivan; Nilsson, Henrik
Authors
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 | Feb 27, 2021 |
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
Jfp2020
(<nobr>951 Kb</nobr>)
PDF
You might also like
Getting more out of Stan: some ideas from the Haskell bindings
(2018)
Conference Proceeding
Functional Reactive Programming, restated
(2019)
Conference Proceeding
Conceptual modelling: Towards detecting modelling errors in engineering applications
(2019)
Journal Article
A principled approach to the implementation of argumentation models
(2014)
Journal Article