Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlinで始めるBDD

E1b600a54e2e4c1fe276cfe71a4fb02a?s=47 curry-like
September 22, 2021

 Kotlinで始めるBDD

「Server-Side Kotlin Study #2」の登壇資料です。(https://server-sider-kotlin.connpass.com/event/224077/

E1b600a54e2e4c1fe276cfe71a4fb02a?s=128

curry-like

September 22, 2021
Tweet

Transcript

  1. Kotlinで始めるBDD 2021/09/22 西山浩太郎

  2. 自己紹介 • @westmountain37 • 株式会社ニューズピックス • Kotlin / Java /

    Python / インフラ • 最近の興味はFlutter 西山浩太郎 2
  3. Mission & The 7 Values 経済情報で、世界を変える We guide business people

    to insights that change the world 私たちは、世界中で愛される経済情報インフラをつくります。 あらゆる経済情報を人とテクノロジーの力で整理・分析・創出し、 ビジネスパーソンの生産性を高め、創造性を解放します。 私たちは経済情報を通じて世界中の意思決定を支え、世界を変えます。 Mission 3
  4. 経済情報プラットフォーム 金融機関、事業会社向けに世界中の企業財務データ、業界レポート、市場データ、 M&A情報 など、企業戦略の分析や策定に必要な情報を提供 経済ニュースメディア(日本市場向け) 国内外100メディアのニュースのほか、 NewsPicks編集部のオリジナル記事・動画コンテン ツを配信し、業界人や専門家のコメントと併せて閲覧可能 B2Bマーケティングプラットフォーム ユーザベースグループの企業データベースと顧客の内部データを統合し、データ

    分析に基づいて成約確度の高い企業を特定。 ABM(アカウント・ベースドマーケティング)の実 践を支援 スタートアップ情報プラットフォーム スタートアップの事業概要、資金調達、投資家、提携先、オリジナル記事などをワンストップで提供 コンサルティング事業 法人向けに新規事業開発・次世代 ⼈材育成・組織活性化の推進及びユーザベースグループの SaaSサービスの導入を支援 ベンチャーキャピタル事業 シードからアーリーステージの SaaSとメディア関連のスタートアップに特化して投資 What we do 4
  5. はじめに Cucumberについて demo まとめ 01 02 03 04 5 目次

  6. 01 | はじめに

  7. 01 | はじめに 7 BDDとは? BDDの流れ 1. まず新機能の具体的な例を話して、その機能で期待していることの詳細を探り、 合意する 2.

    次に、それらの例を自動化できる方法で文書化し、一致するか確認する。 3. 最後に、文書化された各例で記載されている動作を実装し、コード開発の指針と なる自動テストから始める。 「 Behavior Driven Development」の略。ソフトウェア開発の手法の一つで、開発者 と開発者以外の間のギャップを埋めるためのもの。 似たようなものにATDDやTDDがある。 はじめに
  8. 01 | はじめに 8 BDDを導入した背景 はじめに • 決済機能のマイクロサービス化をするにあたり、テスト方法が課題に • 決済機能なのでテストケースが膨大で管理もしづらい

    • 異動や新入社員が増え、開発方法に工夫が必要に
  9. 02 | Cucumberについて

  10. 02 | Cucumberについて 10 概要 • BDDをサポートするためのツール。 • Gherkin記法でテストシナリオを記述し、実行できるツール。 •

    Java, Ruby など、さまざまな言語をサポート Cucumberとは?
  11. 02 | Cucumberについて 11 概要 featureファイルにテストシナリオを書き、stepファイルにテストケース実行時に動 くコードを実装する。 Cucumberとは?

  12. Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /

    Scenario Outline • Given / When / Then / And / But • Background 12
  13. Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /

    Scenario Outline • Given / When / Then / And / But • Background 13
  14. Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /

    Scenario Outline • Given / When / Then / And / But • Background 14
  15. Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /

    Scenario Outline • Given / When / Then / And / But • Background 15
  16. Cucumberとは? 02 | Cucumberについて Stepファイル • 今回はSpringのmockMvcを使用してAPIのテストを 記述している • 画面のUIテストに使用する場合、Seleniumを使うこ

    とが多い 16
  17. Cucumberとは? 02 | Cucumberについて 実行結果 • 設定すると https://reports.cucumber.io/reports/~~ にテスト レポートが公開される

    • localにhtmlを出力することも可能 17
  18. 02 | Cucumberについて 18 BDDの開発の流れ 1. 受け入れ条件を元にfeatureファイルを作成 2. テストを実装(この時点では失敗する) 3.

    処理の実装 4. Cucumberのテストが成功することを確認 Cucumberとは?
  19. 03 | demo

  20. 04 | まとめ

  21. 04 | まとめ 21 メリット • 大胆なリファクタリングをしても仕様が変わらないことを担保できる • これまでスプレッドシートで管理していたケースが自動化された •

    動作確認する時間が減り、逆に開発スピードが上がった • local環境で簡単にテストデータを用意できるようになった • シナリオがまとまっているので、システムの理解がしやすい デメリット • 慣れるまで多少時間がかかる ◦ テストの書き方 ◦ 併用するツールの使い方(Seleniumなど) まとめ
  22. 22 ご静聴ありがとうございました!

  23. 04 | まとめ 23 参考資料 • https://cucumber.io/ • Kent Beck

    『テスト駆動開発』. 和田 卓人 まとめ