One of the important goals of the EMI project is the unification and standardization of the software engineering and quality assurance process. This can be made possible only by providing a single and unified tool chain throughout the project which will be used as a standard environment to enforce common procedures and constraints. This tool chain needs then to become a stable, trustable and reliable foundation for the production of high quality software throughout the project lifetime.
Description of the work
The EMI SA2.4 task is responsible of the selection, integration and maintenance of such tools. Starting with the identification of the tools initially used by each Middleware distribution and the identification of new tools which may be required by the SA1 or SA2 activities. Support all the required tools and service installations for the whole duration of the project. Plan the introduction, change and removal of services as smooth as possible providing a stable and reliable infrastructure. Integrate different tool chains used by each distribution in a single tool infrastructure able to provide at least the same functionalities. Finally enable continuous integration and testing process by selecting and maintaining tools and resources for building and testing software either within the project or in collaboration with external resource providers.
This presentation shows the status of this activity by providing a description of the tools selected, their integration and their use in the project. Starting from the build system, going through ticketing systems, QA tools, testing infrastructure and dashboards, ending with the production package repositories, every aspect of the software engineering process and QA is illustrated from the tools point of view.
The EMI project started as a consolidation activity of the four European middleware distributions, namely ARC, dCache, gLite and UNICORE. Each of these distributions started several years ago from specific needs dictated by their own scientific communities. Moreover the distributions developed along the years in different and independent ways aiming at solving different scientific problems and adopting different strategies on software architecture and design. As a result, their culture, processes and tools appear today diverse and in some aspect, contrastive. The unification of this heterogeneity to provide a single and unified QA infrastructure is the first challenge the QA team must face.