当前位置: X-MOL 学术J. Funct. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Runtime verification and validation of functional reactive systems
Journal of Functional Programming ( IF 1.1 ) Pub Date : 2020-08-26 , DOI: 10.1017/s0956796820000210
IVAN PEREZ , HENRIK NILSSON

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 time line, and pin-pointing of violations of assertions on personal computers as well as external devices.

中文翻译:

功能反应系统的运行时验证和验证

许多类型的交互式应用程序,包括在硬件中实现的反应系统、交互式物理模拟和游戏,在测试和调试方面提出了特殊的挑战。原因包括事实上缺乏再现性和难以自动生成合适的测试数据。本文表明,以纯函数式语言实现的函数式反应式编程 (FRP) 的某些变体可以通过在整个程序级别提供引用透明性来缓解这些困难。这开辟了一种多管齐下的方法,用于协助跨平台工作的测试和调试,包括基于时间逻辑的断言、记录和重放运行(也来自已部署的代码)以及使用 QuickCheck 的自动随机测试。当与允许约束副作用的可扩展形式的 FRP 相结合时,它不仅使我们能够验证软件模拟,而且能够分析反应系统中故障的影响,确认容错机制的有效性并执行软件和硬件在-环测试。该方法已在几个现有 FRP 实现中实现的重要系统上得到验证,方法是使用一种工具进行仔细调试,该工具允许对受审查的测试或模拟进行控制,沿着执行时间线移动,并精确定位违规行为个人计算机和外部设备上的断言。确认容错机制的有效性并执行软件和硬件在环测试。该方法已在几个现有 FRP 实现中实现的重要系统上得到验证,方法是使用一种工具进行仔细调试,该工具允许对受审查的测试或模拟进行控制,沿着执行时间线移动,并精确定位违规行为个人计算机和外部设备上的断言。确认容错机制的有效性并执行软件和硬件在环测试。该方法已在几个现有 FRP 实现中实现的重要系统上得到验证,方法是使用一种工具进行仔细调试,该工具允许对受审查的测试或模拟进行控制,沿着执行时间线移动,并精确定位违规行为个人计算机和外部设备上的断言。
更新日期:2020-08-26
down
wechat
bug