Skip to main content

Research Repository

Advanced Search

Testing and debugging functional reactive programming

Perez, Ivan; Nilsson, Henrik

Testing and debugging functional reactive programming Thumbnail


Authors

Ivan Perez

Henrik Nilsson



Abstract

Many types of interactive applications, including video 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. The approach has been validated on real, non-trivial games implemented in the FRP system Yampa through a tool providing a convenient Graphical User Interface that allows the execution of the code under scrutiny to be controlled, moving along the execution time line, and pin-pointing of violations of assertions on PCs as well as mobile platforms.

Citation

Perez, I., & Nilsson, H. (2017). Testing and debugging functional reactive programming. Proceedings of the ACM on Programming Languages, 1(1), Article 2. https://doi.org/10.1145/3110246

Journal Article Type Article
Acceptance Date May 2, 2017
Publication Date Sep 1, 2017
Deposit Date Jul 6, 2017
Publicly Available Date Mar 29, 2024
Journal Proceedings of the ACM on Programming Languages
Electronic ISSN 2475-1421
Publisher Association for Computing Machinery (ACM)
Peer Reviewed Peer Reviewed
Volume 1
Issue 1
Article Number 2
DOI https://doi.org/10.1145/3110246
Keywords Functional Reactive Programming, Game programming, Testing, Debugging, Temporal logic
Public URL https://nottingham-repository.worktribe.com/output/880298
Publisher URL https://doi.org/10.1145/3110246
Related Public URLs http://www.cs.nott.ac.uk/~psznhn
http://www.cs.nott.ac.uk/~psxip1/
http://pacmpl.acm.org/

Files





Downloadable Citations