Table of Contents
Fetching ...

Fuzzing Microservices in Face of Intrinsic Uncertainties

Man Zhang, Tao Yue, Andrea Arcuri

TL;DR

The goal is to inspire the development of scalable and automated system-level testing methods that improve the dependability and resilience of industrial microservice systems, with the explicit consideration of uncertainties and their propagation.

Abstract

The widespread adoption of microservices has fundamentally transformed how modern software systems are designed, deployed, operated and maintained. However, well-known microservice properties (e.g., dynamic scalability and decentralized control) introduce inherent and multi-dimensional uncertainties. These uncertainties span across inter-service interactions, runtime environments, and internal service logic, which manifest as nondeterministic behaviors, performance fluctuations, and unpredictable fault propagation. Existing approaches do not have sufficient support in capturing such uncertainties and their propagation in industrial microservice systems, and these approaches mostly focus on single-service testing. In this paper, we argue for a novel paradigm: ``uncertainty-driven'' and ``system-level'' microservice testing. We outline key research challenges, including the modeling and injection of uncertainties and their propagation, causal inference for fault localization, and multi-dimensional analyses and assessment of uncertainties and their impact on system quality. We propose an architecture for continuous uncertainty-driven and system-level microservice fuzzing, which integrates service virtualization, uncertainty simulation, adaptive test generation and optimization\revision{, and illustrate it with an e-commerce example we developed}. Our goal is to inspire the development of scalable and automated system-level testing methods that improve the dependability and resilience of industrial microservice systems, with the explicit consideration of uncertainties and their propagation.

Fuzzing Microservices in Face of Intrinsic Uncertainties

TL;DR

The goal is to inspire the development of scalable and automated system-level testing methods that improve the dependability and resilience of industrial microservice systems, with the explicit consideration of uncertainties and their propagation.

Abstract

The widespread adoption of microservices has fundamentally transformed how modern software systems are designed, deployed, operated and maintained. However, well-known microservice properties (e.g., dynamic scalability and decentralized control) introduce inherent and multi-dimensional uncertainties. These uncertainties span across inter-service interactions, runtime environments, and internal service logic, which manifest as nondeterministic behaviors, performance fluctuations, and unpredictable fault propagation. Existing approaches do not have sufficient support in capturing such uncertainties and their propagation in industrial microservice systems, and these approaches mostly focus on single-service testing. In this paper, we argue for a novel paradigm: ``uncertainty-driven'' and ``system-level'' microservice testing. We outline key research challenges, including the modeling and injection of uncertainties and their propagation, causal inference for fault localization, and multi-dimensional analyses and assessment of uncertainties and their impact on system quality. We propose an architecture for continuous uncertainty-driven and system-level microservice fuzzing, which integrates service virtualization, uncertainty simulation, adaptive test generation and optimization\revision{, and illustrate it with an e-commerce example we developed}. Our goal is to inspire the development of scalable and automated system-level testing methods that improve the dependability and resilience of industrial microservice systems, with the explicit consideration of uncertainties and their propagation.
Paper Structure (36 sections, 4 figures, 1 table)

This paper contains 36 sections, 4 figures, 1 table.

Figures (4)

  • Figure 1: Illustrating Potential Occurrences of Uncertainties in Microservices. Uncertainties may occur in third-party services, client sides, APIs, database, message queuing, scheduling tasks, etc.
  • Figure 2: Overview of Continuous Uncertain-driven Fuzzing of Microservices (UncerMaster)
  • Figure 3: Overview of Uncertainty-aware Fuzzing of Microservices (UncerFuzz) and its interactions with UncerSense and UncerMeter
  • Figure 4: Microservices and their main interactions in the e-commerce example