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
ひとこと要約

本稿は、Meituanの産業的マイクロサービス環境において、オープンソースの探索的ソフトウェアテストツールである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ファズィングの広範な導入を妨げる要因となる、主な研究的ギャップと産業的課題を特定すること。
  • 学術的研究と産業的実務の溝を埋めるために、探索的ソフトウェアテストツールの実世界への適用可能性を実証的根拠で提示すること。

提案手法

  • Meituan Select(数百のサービスを有する大規模な電子商取引マイクロサービスシステム)の2つの本番グレードのREST APIにEvoMasterを適用した。
  • EvoMasterが生成したテストケースを用いて、エンドポイント定義(71.3%)およびビジネスロジック(51.7%)のコードカバレッジを測定した。
  • 8名のMeituanエンジニアおよびマネージャーを対象に構造化されたアンケートと半構造化インタビューを実施し、ツールの適用可能性、使いやすさ、統合要件を評価した。
  • 手作業によるコードレビューとテストケース分析を実施し、障害検出とテスト品質を検証した。特に21件の固有の実障害を同定した。
  • 工業的フレームワーク(例:Spring)における一貫したパターンを活用し、SUT(テスト対象システム)のセットアップをテンプレート化することで自動化を検討した。
  • コマンドライン実行とスケジューリング戦略に注目し、EvoMasterを継続的インテグレーション(CI)パイプラインに統合する可能性を評価した。

実験結果

リサーチクエスチョン

  • RQ1EvoMasterは、産業的マイクロサービスAPIにおいて、どの程度高いコードカバレッジを達成し、実際の障害を検出できるか?
  • RQ2産業的実務者たちは、EvoMasterのような自動ファズァー・ツールの使いやすさと実際の開発ワークフローへの統合をどのように評価しているか?
  • RQ3大規模な企業向けマイクロサービスにおいて、自動APIファズィングの導入を妨げる主な技術的および組織的課題は何か?
  • RQ4生成されたテストケースの品質と可読性をどのように改善すれば、より良いビジネスロジックカバレッジと開発者による保守性を実現できるか?
  • RQ5SUTの設定を自動化することは、一貫性のある企業環境で数千のマイクロサービスにわたるファズァー使用を拡大する上で、どのような役割を果たせるか?

主な発見

  • EvoMasterは、2つの産業的APIにおいて、エンドポイント定義で平均71.3%、ビジネスロジック実装で51.7%のコードカバレッジを達成した。
  • ツールは生産システム内で21件の固有の実障害を正常に検出し、Meituanのエンジニアチームがその検証と修正を完了した。
  • エンジニアたちは、EvoMasterを産業的アプリケーションに適用するにあたり、重大な使いやすさの障壁を報告しなかった。これは、実用的実現可能性が強いことを示している。
  • SUTの手動設定(例:起動/停止/リセット)は、特に各サービスで一貫してフレームワーク(例:Spring)が使用されていることから、テンプレート化により自動化可能である。
  • CIパイプラインへの統合は技術的に可能であり、極めて有益であるとされているが、パフォーマンスコストを考慮すると、プルリクエストごとに実行するなどのスケジューリング戦略は、さらなる検討が必要である。
  • 生成されたテストケースは、複数のエンドポイントにまたがる複雑なビジネスロジックのテストにおいて、可読性と組み合わせのしやすさに欠けていると評価された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。