by Ilias Aliferis, UNISYSTEMS
Software integration is always a challenging task, since it a complex process by nature, in which several multi-disciplinary approaches exist along with the various aspects (functional and non-functional) that have to be considered. REWIRE is not an exception, as it consists of a combination of different components / services that work together so that the overall system can provide the required functionality.
In order to build the envisioned coherent integrated prototype and deliver an advanced cybersecurity solution capable of safeguarding the entire lifecycle of IoT devices, a specific integration approach has to be followed, that includes several activities bringing together the components that constitute the REWIRE framework. The development of these components is a continuous process that contains discrete steps that re-assure both high functionality and software quality.
To that end, as well as to continuously monitor the development process of the REWIRE platform, two core development cycles are planned, i.e. First and Final release, each of them composed of three interdependent phases: i.e. (i) the development of the REWIRE’s components and services; (ii) their integration and provision through the REWIRE platform; and (iii) their deployment in the context of Smart Cities, Automotive and Smart Satellites.
Every cycle along with its phases will incorporate the testing activities as part of the Continuous Integration, Developments and Testing pipelines and procedures.
Testing is an essential part of every successful integration story. REWIRE embraces the idea that early testing provides prevention potential. As such, the guideline of the methodology is to design the testing framework and the corresponding test use cases as early as possible, based on the specific objectives and requirements of the software in question, and not wait for the actual software design process to be over and the implementation process to have begun.
Following the principles of continuous integration, a set of tools had already been configured, including version control system, testing framework for integration, and issue tracking system for reporting bugs, problems, and requests. The contingency plan that REWIRE devised is based on the following pillars:
– Unit testing to assure that the components delivered the promised functionalities
– Integration testing to ensure the harmonic interaction along the various layers and components
– Stress testing for the benchmarking of the system or of a specific component.
– User Acceptance testing to ensure the usability of the system
– Functional Completeness testing addressing the requirements’ coverage.