💡

マイクロサービスにおけるE2Eテストはどうするべきか?

2021/03/31に公開

概要

  • マイクロサービスにおける問題と感じるものの中にマイクロサービスにおけるE2Eテストがあります。
  • 今回は、この問題と解決策の1つを記事にしていきます。

マイクロサービスにおけるE2Eテスト

問題点

  • なぜマイクロサービスにおけるE2Eテストが問題なのかというと、それはテストスコープがかなり大きい点にあります。

なぜテストスコープが大きくなるの?

その理由は、下記の2つにあります。

  • 1つ目にマイクロサービスでは、複数のサービスにまたがりテストを実行しなければいけない
  • 2つ目にテスト時に全てのサービスをデプロイし、テストのシナリオを全てのサービス揃えないといけない

解決策

  • この場合の解決策として、コンシューマ駆動契約を利用する方法があります。

コンシューマ駆動契約(Consummer Driven Contracts - CDC)とは?

  • サービスの利用側/提供側で**「サービスの振る舞い(動作の期待値や使用)」契約と定義し、サービス利用側(コンシューマ)が契約を結ぶことを責務**とし、その契約を壊していないことを利用側/提供側双方でテストをする方法です。

メリット

  • サービス利用者側(コンシューマ)の視点から定義されてるので、予期せぬ契約を拾い上げることができます。
  • また、サービス利用者側(コンシューマ)の視点の要求も理解できるので、今後の改善の指標にも使えます。

デメリット

  • 契約が破壊された時にマイクロサービスを所有するチーム間でのコミュニケーション(例えば問題点の検出など)が必須
  • 契約された内容(主にI/F)のみしか保証されない

まとめ

  • 今回は、マイクロサービスにおける問題であるE2Eテストとその解決策としてのコンシューマ駆動契約についてまとめていきました。

参考文献

Discussion