マイクロサービスのテスト@ホワイトボックステスト¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. マイクロサービス固有のホワイトボックステスト手法¶
マイクロサービス固有のホワイトボックステスト手法とは¶
マイクロサービスアーキテクチャを採用している場合、マイクロサービス固有の観点でホワイトボックステストが必要になる。
02. マイクロサービスの単体テスト¶
マイクロサービスの単体テストとは¶
単体テストは、マイクロサービスアーキテクチャでも同じである。
マイクロサービスのクラスや構造体のメソッドが、それ単体で正しく動作するかを検証する。
単体テストツール例¶
▼ 自前¶
言語によっては、ビルトインのコマンド (例:go test
コマンド) で単体テストを実装できる。
▼ フロントエンド系ツール¶
記入中...
▼ バックエンド系ツール¶
記入中...
03. コンポーネントテスト¶
コンポーネントテストとは¶
マイクロサービスがそれ単体で正しく動作するかを検証する。
アップストリーム側マイクロサービスは検証対象ではないため、サービスモックとする。
コンポーネントテストツール例¶
▼ 自前¶
言語によっては、ビルトインのコマンド (例:go test
コマンド) でコンポーネントテストを実装できる。
▼ フロントエンド系ツール¶
記入中...
▼ バックエンド系ツール¶
記入中...
04. マイクロサービスの結合テスト (機能テスト、サービステスト)¶
マイクロサービスの結合テストとは¶
マイクロサービスアーキテクチャの文脈では、一般的な機能テストを結合テストと呼ぶ。
『サービステスト』ともいう。
マイクロサービスの各エンドポイントを1
個の機能ととらえる。
ダウンストリーム側の最初のマイクロサービス (またはそのAPI Gateway) のエンドポイントにリクエストを送信し、アップストリーム側マイクロサービスや外部Webサービス (正常である前提) との連携も含めて、レスポンスが機能要件通りに返信されるか否かを検証する。
もしマイクロサービスの結合テストを自動化する場合、マイクロサービスのCIパイプライン上ではなく、結合テスト専用のパイプライン上で実施する。
またパイプライン実行環境がマイクロサービスのエンドポイントにリクエストを送信できるよう、パイプライン実行環境からマイクロサービスまでの通信経路を用意する必要がある。
結合テストツール例¶
▼ バックエンド系ツール¶
- Gatling
05. CDCテスト:Consumer-Driven Contract¶
CDCテストとは¶
06. マイクロサービスのE2Eテスト¶
マイクロサービスのE2Eテストとは¶
実際のユーザーの一連の操作を模したリクエストをマイクロサービスなシステムに送信し、全てのコンポーネントを対象とした結合テストを実施する。
フロントエンドに対してリクエストを送信し、一連のマイクロサービスの処理を検証する。