Debugging Data-Flows in Reactive Programs

More Info
expand_more

Abstract

Reactive Programming is a way of programming designed to provide developers with the right abstractions for creating systems that use streams of data. Traditional debug tools lack support for the abstractions provided, causing developers to fallback to the most rudimentary debug tool available: printf-debugging. In this work, we design a visualization and debugging tool for Reactive Programming, that aids comprehension and debugging of reactive systems, by visualizing the dependencies and structure of the data flow, and the data inside the flow. We present RxFiddle, a platform for the visualization as well as the required instrumentation for RxJS in the ReactiveX-family of Reactive Programming libraries. Evaluation based on an experiment with 111 subjects, shows that RxFiddle can outperform traditional debugging in terms of debug time required.