Inferring Relations Among Test Programs in Microservices Applications

Emanuele DeĀ Angelis, Guglielmo DeĀ Angelis, Alessandro Pellegrini, and Maurizio Proietti


Published in: Proceedings of the 15th IEEE International Conference on Service Oriented Systems Engineering
pdf Download PDF

Abstract:
The emergence of the microservices-oriented architectural style calls for novel methodologies and technological frameworks that support the design, development, and maintainance of applications structured according to that new style. In this paper, we consider the issue of designing suitable strategies for the governance and the automation of testing activities within the microservices paradigm.
We focus on the problem of discovering relations between test programs that help avoiding to re-run all the available test suites each time one of its constituents evolves.
We propose an analysis technique, based on symbolic execution of test programs, which is able to collect information about the invocations of local and remote APIs performed when running such programs.
Symbolic execution enables the analysis of sets of executions corresponding to different input data, and hence it is also suitable for parametric test programs.
The information extracted by symbolic execution is processed by a rule-based automated reasoning engine, which infers dependencies and similarities among test programs. In particular, test programs are considered similar if they involve the same microservice instance, or they connect to the same remote API, or they locally activate overlapping APIs, or they raise similar kinds of errors.
We show the viability of our approach by presenting a case study within the context of a real-world microservice application that implements an open-source educational platform.

BibTeX Entry:

@inproceedings{DeA21,
author = {De~Angelis, Emanuele and De~Angelis, Guglielmo and Pellegrini, Alessandro and Proietti, Maurizio},
booktitle = {Proceedings of the 15th IEEE International Conference on Service Oriented Systems Engineering},
title = {Inferring Relations Among Test Programs in Microservices Applications},
year = {2021},
month = aug,
publisher = {IEEE},
series = {SOSE},
location = {Oxford, UK},
note = {Winner of the Best Paper Award}
}