💡
マイクロサービスにおけるE2Eテストはどうするべきか?
概要
- マイクロサービスにおける問題と感じるものの中にマイクロサービスにおけるE2Eテストがあります。
- 今回は、この問題と解決策の1つを記事にしていきます。
マイクロサービスにおけるE2Eテスト
問題点
- なぜマイクロサービスにおけるE2Eテストが問題なのかというと、それはテストスコープがかなり大きい点にあります。
なぜテストスコープが大きくなるの?
その理由は、下記の2つにあります。
- 1つ目にマイクロサービスでは、複数のサービスにまたがりテストを実行しなければいけない
- 2つ目にテスト時に全てのサービスをデプロイし、テストのシナリオを全てのサービス揃えないといけない
解決策
- この場合の解決策として、コンシューマ駆動契約を利用する方法があります。
コンシューマ駆動契約(Consummer Driven Contracts - CDC)とは?
- サービスの利用側/提供側で**「サービスの振る舞い(動作の期待値や使用)」を契約と定義し、サービス利用側(コンシューマ)が契約を結ぶことを責務**とし、その契約を壊していないことを利用側/提供側双方でテストをする方法です。
メリット
- サービス利用者側(コンシューマ)の視点から定義されてるので、予期せぬ契約を拾い上げることができます。
- また、サービス利用者側(コンシューマ)の視点の要求も理解できるので、今後の改善の指標にも使えます。
デメリット
- 契約が破壊された時にマイクロサービスを所有するチーム間でのコミュニケーション(例えば問題点の検出など)が必須
- 契約された内容(主にI/F)のみしか保証されない
まとめ
- 今回は、マイクロサービスにおける問題であるE2Eテストとその解決策としてのコンシューマ駆動契約についてまとめていきました。
Discussion