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)|2022. 08. 08.
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)의 실용적 사용성, 통합 과제 및 도입 장벽을 이해하는 것.
  • RPC 서비스 처리, 외부 종속성, 분산 데이터베이스 등과 같은 핵심 연구 격차와 산업 과제를 특정하여, 기업 시스템에서 자동화된 API 퍼징의 보편적 도입을 저해하는 요소를 규명하는 것.
  • 학술 연구와 산업 실무 간 격차를 해소하기 위해, 검색 기반 소프트웨어 테스팅 도구의 실제 적용 가능성을 실증적 증거로 제시하는 것.

제안 방법

  • 메이투안 세lec트의 두 개의 프로덕션 수준 REST API에 EvoMaster를 적용하여, 수백 개의 서비스로 구성된 대규모 전자상거래 마이크로서비스 시스템에서의 성능 평가.
  • EvoMaster가 생성한 테스트 케이스를 기반으로 엔드포인트 정의(71.3%)와 비즈니스 로직(51.7%)에 대한 코드 커버리지 측정.
  • 도구 적용 가능성, 사용성, 통합 요구사항 평가를 위해 여덟 명의 메이투안 엔지니어 및 관리자 대상으로 구조화된 설문조사와 반구조화된 인터뷰 실시.
  • 실제 결함 탐지 및 테스트 품질 검증을 위해 수동 코드 리뷰 및 테스트 케이스 분석 수행, 21개의 고유한 실제 결함 식별.
  • 일관된 프레임워크 패턴(예: Spring)을 활용한 템플릿 기반 구성 방식을 통해 SUT(System Under Test) 설정의 자동화 탐색.
  • 명령행 실행 및 스케줄링 전략에 중점을 두어, EvoMaster를 CI(CI) 파이프라인에 통합할 수 있는지 평가.

실험 결과

연구 질문

  • RQ1EvoMaster는 산업용 마이크로서비스 API에서 얼마나 높은 코드 커버리지 달성과 실제 결함 탐지가 가능한가?
  • RQ2산업 현장 전문가들은 EvoMaster와 같은 자동화된 퍼저 도구의 사용성과 개발 워크플로우 내 실질적 통합에 대해 어떻게 평가하는가?
  • RQ3대규모 엔터프라이즈 마이크로서비스에서 자동화된 API 퍼징의 도입을 저해하는 주요 기술적 및 조직적 과제는 무엇인가?
  • RQ4비즈니스 로직 커버리지 향상과 개발자 유지보수성 향상을 위해 생성된 테스트 케이스의 품질과 가독성을 어떻게 향상시킬 수 있는가?
  • RQ5SUT 설정의 자동화는 일관된 엔터프라이즈 환경에서 수천 개의 마이크로서비스에 걸쳐 퍼저 도구 사용을 확장하는 데 어떤 역할을 할 수 있는가?

주요 결과

  • EvoMaster는 두 개의 산업용 API에서 엔드포인트 정의에 대해 평균 71.3%의 코드 커버리지, 비즈니스 로직 실행 구현에 대해 51.7%의 코드 커버리지 달성.
  • 도구는 생산 환경의 21개의 고유한 실제 결함을 성공적으로 탐지하였으며, 메이투안의 엔지니어 팀에 의해 확인 및 수정됨.
  • 엔지니어들은 EvoMaster를 산업 응용 프로그램에 적용할 때 주요 사용성 장벽을 경험하지 않았으며, 이는 높은 실용적 타당성을 시사함.
  • SUT의 수동 설정(예: 시작/정지/리셋)은 특히 서비스 간 일관된 프레임워크 사용(예: Spring)이 이루어질 경우 템플릿 기반으로 자동화 가능.
  • CI 파이프라인에의 통합은 기술적으로 가능하며 매우 유용하다고 평가되나, 성능 비용을 고려할 때 스케줄링 전략(예: 매 Pull Request 후 실행)은 추가 조사가 필요함.
  • 생성된 테스트 케이스는 복잡한 다중 엔드포인트 비즈니스 로직 테스트에 있어 가독성과 조합 가능성 측면에서 부족함을 지적함.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.