Testing and debugging functional reactive programming

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 Functi...

Full description

Bibliographic Details
Main Authors: Perez, Ivan, Nilsson, Henrik
Format: Article
Published: Association for Computing Machinery 2017
Subjects:
Online Access:https://eprints.nottingham.ac.uk/43953/
_version_ 1848796804830724096
author Perez, Ivan
Nilsson, Henrik
author_facet Perez, Ivan
Nilsson, Henrik
author_sort Perez, Ivan
building Nottingham Research Data Repository
collection Online Access
description 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.
first_indexed 2025-11-14T19:53:48Z
format Article
id nottingham-43953
institution University of Nottingham Malaysia Campus
institution_category Local University
last_indexed 2025-11-14T19:53:48Z
publishDate 2017
publisher Association for Computing Machinery
recordtype eprints
repository_type Digital Repository
spelling nottingham-439532020-05-04T19:03:46Z https://eprints.nottingham.ac.uk/43953/ Testing and debugging functional reactive programming Perez, Ivan Nilsson, Henrik 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. Association for Computing Machinery 2017-09-01 Article PeerReviewed Perez, Ivan and Nilsson, Henrik (2017) Testing and debugging functional reactive programming. Proceedings of the ACM on Programming Languages, 1 (1). 2/1-2/27. ISSN 2475-1421 Functional Reactive Programming Game programming Testing Debugging Temporal logic https://doi.org/10.1145/3110246 doi:10.1145/3110246 doi:10.1145/3110246
spellingShingle Functional Reactive Programming
Game programming
Testing
Debugging
Temporal logic
Perez, Ivan
Nilsson, Henrik
Testing and debugging functional reactive programming
title Testing and debugging functional reactive programming
title_full Testing and debugging functional reactive programming
title_fullStr Testing and debugging functional reactive programming
title_full_unstemmed Testing and debugging functional reactive programming
title_short Testing and debugging functional reactive programming
title_sort testing and debugging functional reactive programming
topic Functional Reactive Programming
Game programming
Testing
Debugging
Temporal logic
url https://eprints.nottingham.ac.uk/43953/
https://eprints.nottingham.ac.uk/43953/
https://eprints.nottingham.ac.uk/43953/