カナイダイキ
株式会社 Odd-e Japan 株式会社 パストラルドッグ
コンシューマ駆動契約やってみた
APIとの結合テスト
カナイダイキ odd-e.jp | pastoraldog.com
⾃⼰紹介
Odd-e(オッド・イー)グループはシンガポールを本部にもち、アジア圏
で活躍するソフトウェア製品開発の⽀援をしています。

エンジニアの技術⽀援、チームビルディング、製品開発⼿法の導⼊・改善、
など様々なサポートを⾏っております。



そのノウハウも⽣かしながら、⾃社製品開発事業も⾏っております。
ODD-E JAPAN / PASTORAL DOG
⾦井 ⼤輝
Webアプリケーションエンジニア
Certified Scrum Master® (CSM)
Certified Scrum Developer® (CSD)
Certified LeSS Practitioner

カナイダイキ odd-e.jp | pastoraldog.com
現状のアーキテクチャとテスト
カナイダイキ odd-e.jp | pastoraldog.com
現状のアーキテクチャとテスト
3種類のテストを実施
APPs APIs
View層 Controller層
E2Eテスト
結合テスト(UTno mock from APP)
UTwith mock UT
Interface層 Logic層
破壊的変更検知のための結合テスト

APPからno mockでテストを書いているが、
E2Eも壊れやすい、遅い、不安定でコスト⾼
環境やデータ準備が⼿間!
カナイダイキ odd-e.jp | pastoraldog.com
現状のアーキテクチャとテスト
良い⽅法は
ないものか・・・
カナイダイキ odd-e.jp | pastoraldog.com
現状のアーキテクチャとテスト
この辺の知恵をお借りして
カナイダイキ odd-e.jp | pastoraldog.com
コンシューマ駆動契約 - CDC
カナイダイキ odd-e.jp | pastoraldog.com
コンシューマ駆動契約 - CDC
概要
APPが期待している振る舞いを満たすかAPIでチェック
カナイダイキ odd-e.jp | pastoraldog.com
コンシューマ駆動契約 - CDC
実際のコード
APPテスト(APIモック) 契約JSON出⼒
カナイダイキ odd-e.jp | pastoraldog.com
コンシューマ駆動契約 - CDC
実際のコード
契約JSON⼊⼒ APIテスト(契約のIN-OUT検証)
-OU
カナイダイキ odd-e.jp | pastoraldog.com
まとめ
カナイダイキ odd-e.jp | pastoraldog.com
まとめ
CDCやってみて
データのセットアップは

   no mockでの結合確認より幾分楽

  
メール送信、

   DB登録などは検証できていないが、

   その辺はUTの範囲なので気になっていない

E2Eよりも安定した実⾏できている

 
他のチームの⽅式是⾮聞かせてください
カナイダイキ odd-e.jp | pastoraldog.com
ご静聴ありがとうございました

Api結合部の自動テスト方式

  • 1.
    カナイダイキ 株式会社 Odd-e Japan株式会社 パストラルドッグ コンシューマ駆動契約やってみた APIとの結合テスト
  • 2.
    カナイダイキ odd-e.jp |pastoraldog.com ⾃⼰紹介 Odd-e(オッド・イー)グループはシンガポールを本部にもち、アジア圏 で活躍するソフトウェア製品開発の⽀援をしています。
 エンジニアの技術⽀援、チームビルディング、製品開発⼿法の導⼊・改善、 など様々なサポートを⾏っております。
 
 そのノウハウも⽣かしながら、⾃社製品開発事業も⾏っております。 ODD-E JAPAN / PASTORAL DOG ⾦井 ⼤輝 Webアプリケーションエンジニア Certified Scrum Master® (CSM) Certified Scrum Developer® (CSD) Certified LeSS Practitioner

  • 3.
    カナイダイキ odd-e.jp |pastoraldog.com 現状のアーキテクチャとテスト
  • 4.
    カナイダイキ odd-e.jp |pastoraldog.com 現状のアーキテクチャとテスト 3種類のテストを実施 APPs APIs View層 Controller層 E2Eテスト 結合テスト(UTno mock from APP) UTwith mock UT Interface層 Logic層 破壊的変更検知のための結合テスト
 APPからno mockでテストを書いているが、 E2Eも壊れやすい、遅い、不安定でコスト⾼ 環境やデータ準備が⼿間!
  • 5.
    カナイダイキ odd-e.jp |pastoraldog.com 現状のアーキテクチャとテスト 良い⽅法は ないものか・・・
  • 6.
    カナイダイキ odd-e.jp |pastoraldog.com 現状のアーキテクチャとテスト この辺の知恵をお借りして
  • 7.
    カナイダイキ odd-e.jp |pastoraldog.com コンシューマ駆動契約 - CDC
  • 8.
    カナイダイキ odd-e.jp |pastoraldog.com コンシューマ駆動契約 - CDC 概要 APPが期待している振る舞いを満たすかAPIでチェック
  • 9.
    カナイダイキ odd-e.jp |pastoraldog.com コンシューマ駆動契約 - CDC 実際のコード APPテスト(APIモック) 契約JSON出⼒
  • 10.
    カナイダイキ odd-e.jp |pastoraldog.com コンシューマ駆動契約 - CDC 実際のコード 契約JSON⼊⼒ APIテスト(契約のIN-OUT検証) -OU
  • 11.
    カナイダイキ odd-e.jp |pastoraldog.com まとめ
  • 12.
    カナイダイキ odd-e.jp |pastoraldog.com まとめ CDCやってみて データのセットアップは
    no mockでの結合確認より幾分楽
    メール送信、
    DB登録などは検証できていないが、
    その辺はUTの範囲なので気になっていない
 E2Eよりも安定した実⾏できている
   他のチームの⽅式是⾮聞かせてください
  • 13.
    カナイダイキ odd-e.jp |pastoraldog.com ご静聴ありがとうございました