PR:この記事にはアフィリエイトリンクが含まれます。
マイクロサービスでAPIに変更を加えると、呼び出し元の画面や別サービスへの影響が気になりますよね。契約テストは、サービス間の互換性を確かめる方法です。Pactを扱う本には実装中心のものからAPIや設計を広く扱うものまであります。
4冊の対象読者や契約テストの範囲、参考価格を早見表にまとめました。価格は目安で、販売時期や店によって実売価格が変わります。
早見表
| 本 | 主な対象 | Pact・契約テストの範囲 | 参考価格 |
|---|---|---|---|
Contract Testing in Action: With Pact, PactFlow, and GitHub Actions | Java・JavaScriptの開発者、品質エンジニア | Pact、Broker、PactFlow、CI運用 | $59.99(紙版) |
Web APIテスト技法 | テスター、経験のある開発者 | 第9章でPactとBrokerを実装 | 3,850円(税込) |
マイクロサービスパターン 実践的システムデザインのためのコード解説 | Javaで設計・実装する開発者 | サービス間通信と契約テスト | 5,280円(税込) |
マイクロサービスアーキテクチャ 第2版 | Web開発者、導入を考える組織 | 契約の破壊とテスト戦略 | 4,840円(税込) |
Pactの実装からCIまで追うなら、英語書の『Contract Testing in Action』が有力です。APIテスト全般を日本語で学びたい方には、『Web APIテスト技法』をおすすめします。
残る2冊はPactの操作より、マイクロサービス全体の設計に重きを置いています。価格は定価を参考にした目安です。購入時には紙版の実売価格を確認してください。
契約テストとは
サービスを呼ぶ側をコンシューマ、呼ばれる側をプロバイダーと呼びます。契約テストでは、両者が送受信するリクエストやレスポンスの約束を確かめます。通信の境界を見るテストですね。
たとえば注文サービスが商品サービスへ商品IDを送り、商品名と価格を受け取るとします。コンシューマが必要とする項目や応答の形をテストに記し、プロバイダーがその期待に応えられるか検証します。
Pactではコンシューマ側で契約を作成し、プロバイダー側で契約を検証するのが基本です。両方のサービスを毎回同時に起動しなくても、通信の互換性を確かめられます。
システム全体の動作までは保証しません。データベースへの保存や画面表示を含む一連の処理は、統合テストやエンドツーエンドテストで確かめます。
Pactが防ぐずれ
よくあるのが、プロバイダーの変更でコンシューマの想定が崩れるケースです。レスポンスの項目名を変えたり、必須の値を返さなくなったりすると、画面や後続処理に影響します。
コンシューマのテストに「注文IDを送ると、注文番号と状態を含む応答が返る」と記せば、そのやり取りをPactの契約として共有できます。プロバイダーが約束を守るか、CIで検証可能です。
レスポンス全体を細部まで固定すると、関係のない変更でもテストが失敗します。コンシューマが使わない項目や、毎回変わる時刻まで一致させると、契約が足かせになりかねません。
必要な項目や型、使う条件を中心に定めれば、実際に困る変更を見つけやすくなります。契約はAPI仕様書の複製ではなく、利用者が頼りにしている範囲を示すものです。
Pactを実装する本
『Contract Testing in Action: With Pact, PactFlow, and GitHub Actions』はMarie Cruz氏とLewis Prescott氏の著書です。2024年11月刊で、全304ページ。Pactの実装からBroker、CI、デプロイ判定まで学ぶなら、『Contract Testing in Action』をおすすめします。
コンシューマ側で契約を作り、プロバイダー側で検証してBrokerやPactFlowに公開するまでを追います。 GitHub Actions、can-i-deploy、webhookも扱うため、テストコードから運用まで確認できます。
RESTのほか、GraphQLやKafkaを使うメッセージ契約も対象です。 読者はJavaまたはJavaScriptとAPIの経験がある開発者や品質エンジニア。Pactの実装と運用を一冊で学びたい方におすすめです。
紙版の参考価格は$59.99です。英語で読み進める本なので、日本語の解説を重視する方にはハードルがあります。価格は定価の目安で、実売価格は時期や販売店によって変わります。
日本語でAPIテスト
『Web APIテスト技法』はMark Winteringham氏の著書を長尾高弘氏が翻訳した日本語書籍です。翔泳社から2023年7月に刊行され、全280ページ。API品質を幅広く扱います。
第9章ではJavaの例を使い、コンシューマ契約の作成とBrokerへの公開、プロバイダー側での契約テストを解説します。APIテスト全体の中で契約テストの役割をつかみやすい構成です。
探索テストや自動化に加え、性能、セキュリティ、本番環境でのテストも取り上げます。テスターや経験のある開発者が、APIに潜むリスクを複数の観点から学ぶのに適した一冊です。
参考価格は3,850円(税込)。Pactの運用機能まで知りたい方は、PactFlowやデプロイ判定を扱う英語書も読むと、実務の流れを立体的に捉えられます。実売価格は時期や店で変わります。
設計と実装を見る
『マイクロサービスパターン 実践的システムデザインのためのコード解説』はChris Richardson氏の著書です。長尾高弘氏が訳し、樽澤広亨氏が監修。インプレスから2020年に刊行された全576ページの日本語書籍です。
Javaのサンプルプロジェクトを通じて、サービスの分割、プロセス間通信、テスト、デプロイをパターンとして学べます。契約テストもサービス間通信を確かめる手段として扱われ、Pactをサービス設計の中で理解する助けになります。
サービスの分割やプロセス間通信、テストとデプロイの関係を設計から学びたい開発者におすすめです。Pactの基本を押さえたあと、テストをアーキテクチャ全体の中で考えたい方にも読みどころがあります。
参考価格は5,280円(税込)。Pactの操作手順をすぐ身につける本ではありませんが、マイクロサービスの実装を追いながら契約テストの意味を捉えられます。実売価格は時期や販売店で異なります。
全体戦略を補う
『マイクロサービスアーキテクチャ 第2版』はSam Newman氏の著書を佐藤直生氏が監訳し、木下哲也氏が翻訳した日本語書籍です。2022年12月刊、全664ページ。Web開発者や導入を考える組織が対象です。
契約の構造的・意味的な破壊やコンシューマ駆動契約を取り上げます。RPC、REST、GraphQL、メッセージブローカーなど通信方式の全体像も扱い、変更がどこへ波及するか考える材料になります。
Pactのコードを細かく追うより、契約テストをテスト戦略やサービス間通信の設計に位置づけたい方に適しています。チームで導入方針を話す場面や、契約テストだけでは解決できない課題の整理にも役立ちます。
参考価格は4,840円(税込)。扱う範囲が広いため、Pactの実装を急ぐ方は目的に沿った章から読むと効率的です。紙版の販売状況や実売価格は時期や店によって変わります。
結論
Pactの実装からBroker、CI、デプロイ判定まで学ぶなら、『Contract Testing in Action』をおすすめします。英語で読める方には、Pactの導入を担う開発者や品質エンジニアの具体的な教材になります。
日本語でAPIテスト全般を学ぶ方には『Web APIテスト技法』。サービス設計や通信と結びつけて理解するなら『マイクロサービスパターン』、契約テストを組織の戦略として捉えるなら『マイクロサービスアーキテクチャ 第2版』が合います。
Pactの実装、APIテスト、マイクロサービス設計のうち、いま知りたい内容を軸にすれば本を絞れます。実務でPactを導入する方には英語書、チームで日本語の基礎をそろえる方には日本語書がおすすめです。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。





