Towards an approach for developing and testing Node-RED IoT systems

Node-RED is a visual tool based on the flow-based programming paradigm and built on NodeJS, which is used for developing IoT systems. In Node-RED, the developer can follow her own personal flavour for wiring devices and online services together, and the same system can be developed in many different ways. Each day, the Node-RED community submits to users novel solutions, and even if there exist frameworks for testing Node-RED flows, they are not supported by a systematic testing technique. Hence, the freedom granted by Node-RED may hinder the understandability of the produced artefacts and the detection of faults. In this work, we propose a preliminary version of an approach for developing and testing a Node-RED system starting from a UML model of its dynamic and static aspects. A JSON object representing the Node-RED system is generated from the model, while executable Javascript test scripts relying on the Mocha test framework are generated from selected portions of the model, enriched with control points to perform checks over the system properties. We believe that a model produced with our approach may help in the early system validation by detecting faults and deviations from its expected behaviour.

[1]  Davide Ancona,et al.  Towards an Acceptance Testing Approach for Internet of Things Systems , 2017, ICWE Workshops.

[2]  J. Paul Morrison,et al.  Flow-Based Programming, 2nd Edition: A New Approach to Application Development , 2010 .

[3]  Davide Ancona,et al.  Towards a Runtime Verification Approach for Internet of Things Systems , 2018, ICWE Workshops.

[4]  Philip Koopman,et al.  Monitor Based Oracles for Cyber-Physical System Testing: Practical Experience Report , 2014, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

[5]  Hamza Baqa,et al.  IoT-TaaS: Towards a Prospective IoT Testing Framework , 2018, IEEE Access.

[6]  Filippo Ricca,et al.  What are the used Activity Diagram Constructs , 2014, MODELSWARD 2014.

[7]  Filippo Ricca,et al.  What Are the Used UML Diagram Constructs? A Document and Tool Analysis Study Covering Activity and Use Case Diagrams , 2014, MODELSWARD.

[8]  Filippo Ricca,et al.  Service-oriented domain and business process modelling , 2017, SAC.

[9]  Filippo Ricca,et al.  Towards the Generation of End-to-End Web Test Scripts from Requirements Specifications , 2017, 2017 IEEE 25th International Requirements Engineering Conference Workshops (REW).

[10]  Filippo Ricca,et al.  Who Knows/Uses What of the UML: A Personal Opinion Survey , 2014, MoDELS.

[11]  Davide Ancona,et al.  An acceptance testing approach for Internet of Things systems , 2018, IET Softw..

[12]  Miroslav Bures,et al.  Internet of Things: Current Challenges in the Quality Assurance and Testing Methods , 2018, ICISA.

[13]  Gianna Reggio,et al.  A UML-Based Proposal for IoT System Requirements Specification , 2018, 2018 IEEE/ACM 10th International Workshop on Modelling in Software Engineering (MiSE).