コンテンツにスキップ

マイクロサービスのテスト@ホワイトボックステスト

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. マイクロサービス固有のホワイトボックステスト手法

マイクロサービス固有のホワイトボックステスト手法とは

マイクロサービスアーキテクチャを採用している場合、マイクロサービス固有の観点でホワイトボックステストが必要になる。


02. マイクロサービスの単体テスト

マイクロサービスの単体テストとは

単体テストは、マイクロサービスアーキテクチャでも同じである。

マイクロサービスのクラスや構造体のメソッドが、それ単体で正しく動作するかを検証する。

単体テストツール例

▼ 自前

言語によっては、ビルトインのコマンド (例:go testコマンド) で単体テストを実装できる。

▼ フロントエンド系ツール

記入中...

▼ バックエンド系ツール

記入中...


03. コンポーネントテスト

コンポーネントテストとは

マイクロサービスがそれ単体で正しく動作するかを検証する。

アップストリーム側マイクロサービスは検証対象ではないため、サービスモックとする。


コンポーネントテストツール例

▼ 自前

言語によっては、ビルトインのコマンド (例:go testコマンド) でコンポーネントテストを実装できる。

▼ フロントエンド系ツール

記入中...

▼ バックエンド系ツール

記入中...


04. マイクロサービスの結合テスト (機能テスト、サービステスト)

マイクロサービスの結合テストとは

マイクロサービスアーキテクチャの文脈では、一般的な機能テストを結合テストと呼ぶ。

『サービステスト』ともいう。

マイクロサービスの各エンドポイントを1個の機能ととらえる。

ダウンストリーム側の最初のマイクロサービス (またはそのAPI Gateway) のエンドポイントにリクエストを送信し、アップストリーム側マイクロサービスや外部Webサービス (正常である前提) との連携も含めて、レスポンスが機能要件通りに返信されるか否かを検証する。

もしマイクロサービスの結合テストを自動化する場合、マイクロサービスのCIパイプライン上ではなく、結合テスト専用のパイプライン上で実施する。

またパイプライン実行環境がマイクロサービスのエンドポイントにリクエストを送信できるよう、パイプライン実行環境からマイクロサービスまでの通信経路を用意する必要がある。

結合テストツール例

▼ バックエンド系ツール

  • Gatling


05. CDCテスト:Consumer-Driven Contract

CDCテストとは


06. マイクロサービスのE2Eテスト

マイクロサービスのE2Eテストとは

実際のユーザーの一連の操作を模したリクエストをマイクロサービスなシステムに送信し、全てのコンポーネントを対象とした結合テストを実施する。

フロントエンドに対してリクエストを送信し、一連のマイクロサービスの処理を検証する。