Software integration is a complex process in which several multi-disciplinary approaches exist. PUZZLE is no exception, as it consists of a combination of different components / services that work together so that the overall system can provide the required functions. To build the coherent unit that we have in mind, we planned a specific approach that includes several activities bringing together the components that constitute the PUZZLE framework. These components’ development is a continuous process that contains discrete steps that re-assure both high functionality and software quality.
To make this happen and get continuous feedback during the process the development of the PUZZLE platform is realised via two core development cycles, e.g. First (Months 18, 21 &24) and Final (Monts 27, 30 & 33) Release, each consisting of three interdependent phases: i.e. (i) the development of components or services; (ii) their integration and provision through the PUZZLE Marketplace; and (iii) their deployment within the PUZZLE demostrators.
Every cycle along with its phases will incorporate the testing activities as part of the Continuos Integration, Developments and Testing pipelines and procedures.
Actually testing is more than a necessary part of the integration journey. PUZZLE 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.
Therefore, PUZZLE devised the following and validation plan so as to make sure that everything will run as it supposed to:
- Unit testing to assure that the components delivered the promised functionalities
- Integration testing to ensure the the smooth cooperation between 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.