Skip to main content
QUICK REVIEW

[论文解读] Fuzzing Microservices: A Series of User Studies in Industry on Industrial Systems with EvoMaster

Man Zhang, Andrea Arcuri|arXiv (Cornell University)|Aug 8, 2022
Software System Performance and Reliability被引用 13
一句话总结

本文评估了EvoMaster这一开源的基于搜索的软件测试工具在美团工业级微服务环境中的表现,展示了其在实现71.3%端点代码覆盖率和51.7%业务逻辑覆盖率的同时,成功检测出21个真实缺陷。该研究结合了实证测试与从业者反馈,揭示了自动化模糊测试工具在大规模微服务中工业应用的即时收益与关键挑战。

ABSTRACT

With several microservice architectures comprising of thousands of web services, used to serve 630 million customers, companies like Meituan face several challenges in the verification and validation of their software. This paper reports on our experience of integrating EvoMaster (a search-based white-box fuzzer) in the testing processes at Meituan over almost 2 years. Two user studies were carried out in 2021 and in 2023 to evaluate two versions of EvoMaster, respectively, in tackling the test generation for industrial web services which are parts of a large e-commerce microservice system. The two user studies involve in total 321,131 lines of code from five APIs and 27 industrial participants at Meituan. Questionnaires and interviews were carried out in both user studies with employees at Meituan. The two user studies demonstrate clear advantages of EvoMaster (i.e., code coverage and fault detection) and the urgent need to have such a fuzzer in industrial microservices testing. To study how these results could generalize, a follow up user study was done in 2024 with five engineers in the five different companies. Our results show that, besides their clear usefulness, there are still many critical challenges that the research community needs to investigate to improve performance further.

研究动机与目标

  • 评估EvoMaster在大规模生产环境中为真实工业级微服务生成测试用例的有效性。
  • 从工业工程师和管理人员的视角,理解自动化模糊测试工具(如EvoMaster)在实际使用中的可用性、集成挑战与采纳障碍。
  • 识别阻碍企业级系统中自动化API模糊测试广泛采用的关键研究空白与工业挑战,例如处理RPC服务、外部依赖和分布式数据库等。
  • 通过提供搜索式软件测试工具在真实世界中适用性的实证证据,弥合学术研究与工业实践之间的差距。

提出的方法

  • 在美团优选(Meituan Select)的两个生产级REST API上应用EvoMaster,该系统是拥有数百个服务的大型电商平台微服务架构。
  • 使用EvoMaster生成的测试用例,测量了端点定义(71.3%)和业务逻辑实现(51.7%)的代码覆盖率。
  • 通过结构化问卷和半结构化访谈,对八名美团工程师和管理人员进行调研,评估工具的适用性、可用性与集成需求。
  • 通过手动代码审查与测试用例分析,验证缺陷检测效果与测试质量,包括识别出21个独特的实际缺陷。
  • 探索通过模板化配置实现被测系统(SUT)自动设置的可行性,利用工业框架(如Spring)中的一致性模式。
  • 评估将EvoMaster集成到持续集成(CI)流水线中的可行性,重点关注命令行执行与调度策略。

实验结果

研究问题

  • RQ1EvoMaster在工业级微服务API中能在多大程度上实现高代码覆盖率并检测出真实缺陷?
  • RQ2工业从业者如何看待EvoMaster等自动化模糊测试工具在其开发工作流中的可用性与实际集成情况?
  • RQ3在大规模企业级微服务中,阻碍自动化API模糊测试广泛采用的关键技术与组织挑战是什么?
  • RQ4如何提升生成测试用例的质量与可读性,以更好地支持业务逻辑覆盖率与开发者可维护性?
  • RQ5在统一的企业环境中,SUT配置的自动化在规模化应用模糊测试工具于数千个微服务方面,能发挥何种作用?

主要发现

  • EvoMaster在两个工业级API上实现了端点定义平均71.3%的代码覆盖率和业务逻辑实现51.7%的覆盖率。
  • 该工具成功检测出21个独特的、真实存在的缺陷,且均经美团工程团队确认并修复。
  • 工程师反馈表明,将EvoMaster应用于其工业级应用时,未遇到重大可用性障碍,表明其具备良好的实际可行性。
  • 通过模板化方式可实现SUT的自动配置(如启动/停止/重置),尤其在服务间广泛使用一致框架(如Spring)的背景下。
  • 将EvoMaster集成到CI流水线在技术上是可行的,并且被认为极具价值,但因性能开销,建议在每次拉取请求后调度的策略仍需进一步研究。
  • 生成的测试用例在可读性与可组合性方面表现不足,尤其在跨多个端点测试复杂业务逻辑时更为明显。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。