From the beginning of the project, the work concerned with monitoring and SQA tasks such as testing, defect prediction, sustainability concerns (e.g. energy consumption characterization), process quality (e.g. tickets calssification), security (e.g. evaluation of cyber-ranges).
A characterization of tuning of solutions for monitoring in the context of microservices and DevOps, and the investigation of techniques and tools for “context modelling” in Microservice Architecture (MSA), has been extensively carried out in the first part of the project. The analysis pertained to monitoring strategies and tools for MSA to gather quality data about the reliabiltiy, performance, energy consumption.
We have completed a systematic mapping study to scan all relevant open-source repositories (hence, tools, plugins, libraries for monitoring) indexed in GitHub and in Google, so as to give a broader view of the artifacts available and take inspiration to improve our final solution. Moreover, we have developed our own prototypal solution for monitoring, called “uSauron”. We will enforce decoupling between monitoring and testing, so as results of our next WP on testing can work with any monitoring solution.
We are stressing the usage of Artificial Intelligence/Machine Learning (AI/ML) solutions for supporting SQA decision by using data gathered by monitoring. We have exploited AI/ML algorithms for supporting relevant SQA decisions, in particular by implementing: 1) learning-to-rank algorithms to support automatic (regression) testing, 2) causal structure discovery (CSD) algorithms for performance-related and energy-related characterization of an MSA, for supporting Root Cause Analysis (RCA) as well as preventive decisions (e.g. which microservice needs more test, which needs protection mechanisms, etc.), 3) algorithms for anomaly detection and for assessing the propagation paths of performance or energy consumption via multivariate transfer entropy, and, 4) binary classification for the so-called just-in-time software defect prediction, aimed at predicting if a code commit is likely to introduce a defect, as well as other machine learning algorithms for automatic user tickets classification, 5) user behaviour modelling from logs, useful for UX evaluation as well as for testing purposes.
In the context of testing, we developed "MacroHive," a novel tool for grey-box testing microservices architecture. Since automated test generation techniques for microservice architecture have received little attention in the literature, they frequently borrow SOTA techniques from RESTful services black-box testing (MacroHive is an important advancement in the SOTA for this task). We are currently working on several quality-related tasks, including 1) applying anomaly detection and root cause analysis (including causal reasoning) algorithms for energy consumption and performance bottleneck detection and energy/performance configurations improvement, 2) on continuous performance modelling, 3) on improving user behaviour modelling and tickets classification, on 4) tests generation from logs, 5) on sampling-based algorithms for quality attributes assessment, for which the consortium has explored statistical survey sampling theory for enabling a smart selection/generation of test cases.
Till the end of the project we plan to develop an unified proof-of-concept platform that support all these tasks and different objectives, for instance, by integrating these components together . Most of the work performed has been already publicly released via scientific publications, social media.