以下の内容はhttps://yujiorama.hatenablog.com/entry/2019/12/16/102141より取得しました。


12回目の Microservices Patterns 読書会に参加したメモ

参加者の持ち寄りお菓子たち。ロールケーキの高級さよ・・・

Microservices Patterns 読書会のログです。

javaee-study.connpass.com

自己紹介のトピック

starwars.disney.co.jp ついにスターウォーズエピソード9が公開 予約サイトが過負荷で大変なことになっていた

hackday.jp 前日から 24 時間で何かをハック、審査会が公開される。 ゲスト審査員にわくわくさん

対象範囲

10章の "Testing microservices: Part 2" でした。

主なトピックは以下。

  • メッセージングでやりとりするサービスのインテグレーションテスト
    • コンシューマ契約駆動テスト
    • pub/sub
    • command/reply
  • コンポーネントテスト
    • Cucumber/Gherkin
  • E2E テスト
    • ユーザージャーニーテスト

議論

  • 非同期リクエスト・レスポンス形式の説明自体に違和感
    • それは pub/sub を 2 組用意してるだけなんじゃないか、という
    • 特に答えもなくクローズ
  • Gherkin とはなんぞや問題
  • Cucumber といえば Rails しか思いつかない問題
  • Cucumber その後

    • Jira とのインテグレーション。シナリオを Jira 課題に書いたり、Git に置いたシナリオファイルとリンクしたり。なんかよさそう。see BDD Tools for JIRA | Cucumber for JIRA
  • Guage 使ってます、という方もいた

  • そもそも契約と仕様をどう使い分けたいのか問題

    • 契約:インテグレーションテストに登場したコンシューマー駆動契約テストの中心要素となる入出力の定義
    • 仕様:コンポーネントテストに登場した Gherkin 記法で記述するシナリオ
    • 契約の定義(ボディとかヘッダーとか)に仕様の内容(パラメータとか)を記述できるし、仕様の内容に契約の内容も記述できそう。
      • どういう考え方で分担してるのか腑に落ちない。
      • どこかで何かが漏れそう?大丈夫?
    • インテグレーションテストはサービスの境界を契約として検証する。それ以上でもそれ以下でもない。
    • コンポーネントテストはサービスの振る舞いを仕様として検証する。それ以上でもそれ以下でもない。
    • E2E テストの説明に期待しましょう
  • 「したがって、テスト自体の中からスタブを構成するのがより簡単なオプションです。」

    • コンテキスト:「Spring Cloud Contract の生成するスタブを利用するよりは」
    • 本当に簡単なのか
    • そうは思えない
    • アーティファクトとして管理されているほうが楽そう。
    • (小声で:Mock として使うだけなら難しくはならないと思う。)
  • E2E テストに対する落胆

    • コンテキスト:全部本物をデプロイする
    • スタブがないと例外ケースをテストできなさそう
    • (小声で:下位のテストで検証しているはずですから)
  • そもそも E2E テストでスタブを使ってる?問題

    • なるべく使わない方針
    • 開発用エンドポイントが用意されていないサードパーティAPI は仕方なし。
  • 言葉の混乱

  • E2E テストで手法として採用しているユーザージャーニーテストについて

    • Given に宣言した状態は信用できるのか
      • ユーザーストーリーなら When の事後条件として検証している状態
      • When に対する Then を全て保証した状態になっているのか
    • コンポーネントテストで保証されているはず
    • 再現性のない特殊な状態はスタブを用いるしかない
  • そもそもユーザージャーニーとユーザーストーリーの違いがわからん

    • ファウラーさんの記事を読みましょう・・・ see Testing Guide



以上の内容はhttps://yujiorama.hatenablog.com/entry/2019/12/16/102141より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14