Speaker
Dr
Andre Cabrita Neto
(Fusion For Energy)
Description
The MARTe software framework [1] is currently being used to implement a large variety of fusion real-time control system applications [2]. Being a modular and multi-platform framework has allowed to reuse components, interfaces and services across systems which are deployed in very distinct architectures. This has leveraged the exposure of the same code to different environment configurations, thus increasing the confidence on its quality and robustness. Having the same infrastructure being used inside a community has also had the advantage of sharing and recycling knowledge about the framework and its architecture.
In the context of a fast controller prototype project, which aimed at testing the integration of fast plant systems in the ITER software environment, a new version of the MARTe framework has been developed. One of the main objectives of this activity was to develop a software Quality Assurance (QA) strategy that is appropriate for the development of ITER real-time applications (e.g. diagnostic control systems). In particular the QA process had to be designed in order to safely integrate contributions from a large and heterogeneous development community, which includes developer profiles both from the scientific community and from the industrial suppliers.
The developed QA infrastructure targets at ensuring a consistent application of the coding, documentation and testing standards. Notably the coding standard aims at demonstrating MISRA-C++:2008 compliance. The verification and validation activities follow a double V model, which starts with a requirements analysis, followed by a design period and finally concluded with a coding and documentation stage. A set of unit and integration tests verify the correctness of the implementation against the foreseen use-cases.
The life-cycle of the QA process is implemented using an agile scrum method where requirements and activities are translated into user-stories which follow the double V. For each user-story, the transition between each of the activities (from requirements to integrated testing) is dictated by a waterfall approach, requiring a quality clearance before proceeding to the next development step.
The QA process is supported by a continuous integration environment which includes a Jenkins instance running doxygen, cppcheck and flexelint (static code analyser), googletest and cobertura for the coverage analysis. The source code and the baselines are managed using git and the QA activities are traced using the redmine issue tracking system. In particular each new release of the framework, which always coincides with the end of a scrum sprint, is associated to a QA audit where all the non-compliances against the QA process are detailed.
After eleven development releases, the new version of the MARTe framework has very high compliance to the MISRA standard, complemented by more than 2500 units tests guaranteeing a code coverage in excess of 90 %.
This paper details the abovementioned QA process, the associated tools and discusses its applicability to the fusion development environment. Particular attention will be given to the lessons learned during the application of the process and on how the QA metrics have evolved during the project.
Author
Dr
Andre Cabrita Neto
(Fusion For Energy)
Co-authors
Dr
Filippo Sartori
(Fusion For Energy)
Mr
Giuseppe Ferrò
(Dipartimento di Ingegneria Civile e Ingeneria Informatica. Università di Roma)
Mr
Hector Novella
(GTD Sistemas de Información)
Mr
Ivan Herrero
(GTD Sistemas de Información)
Mr
Llorenç Capellà
(Vitrociset Belgium)
Dr
Riccardo Vitelli
(Fusion For Energy)