Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlinで始めるBDD
Search
curry-like
September 22, 2021
Programming
0
19k
Kotlinで始めるBDD
「Server-Side Kotlin Study #2」の登壇資料です。(
https://server-sider-kotlin.connpass.com/event/224077/
)
curry-like
September 22, 2021
Tweet
Share
More Decks by curry-like
See All by curry-like
Coroutine入門
currylike37
0
2.1k
BigQueryを用いた データ分析基盤作成入門
currylike37
0
1.2k
Other Decks in Programming
See All in Programming
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
2.4k
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
1
200
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
0
130
Оптимизируем производительность блока Казначейство
lamodatech
0
990
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.1k
令和7年版 あなたが使ってよいフロントエンド機能とは
mugi_uno
12
6.1k
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
8
1.3k
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.3k
Scaling your build logic
antalmonori
1
150
Amazon Nova Reelの可能性
hideg
0
260
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
100
DMMオンラインサロンアプリのSwift化
hayatan
0
270
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Navigating Team Friction
lara
183
15k
BBQ
matthewcrist
85
9.4k
Mobile First: as difficult as doing things right
swwweet
222
9.2k
Done Done
chrislema
182
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
270
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
520
No one is an island. Learnings from fostering a developers community.
thoeni
20
3.1k
How to Ace a Technical Interview
jacobian
276
23k
Transcript
Kotlinで始めるBDD 2021/09/22 西山浩太郎
自己紹介 • @westmountain37 • 株式会社ニューズピックス • Kotlin / Java /
Python / インフラ • 最近の興味はFlutter 西山浩太郎 2
Mission & The 7 Values 経済情報で、世界を変える We guide business people
to insights that change the world 私たちは、世界中で愛される経済情報インフラをつくります。 あらゆる経済情報を人とテクノロジーの力で整理・分析・創出し、 ビジネスパーソンの生産性を高め、創造性を解放します。 私たちは経済情報を通じて世界中の意思決定を支え、世界を変えます。 Mission 3
経済情報プラットフォーム 金融機関、事業会社向けに世界中の企業財務データ、業界レポート、市場データ、 M&A情報 など、企業戦略の分析や策定に必要な情報を提供 経済ニュースメディア(日本市場向け) 国内外100メディアのニュースのほか、 NewsPicks編集部のオリジナル記事・動画コンテン ツを配信し、業界人や専門家のコメントと併せて閲覧可能 B2Bマーケティングプラットフォーム ユーザベースグループの企業データベースと顧客の内部データを統合し、データ
分析に基づいて成約確度の高い企業を特定。 ABM(アカウント・ベースドマーケティング)の実 践を支援 スタートアップ情報プラットフォーム スタートアップの事業概要、資金調達、投資家、提携先、オリジナル記事などをワンストップで提供 コンサルティング事業 法人向けに新規事業開発・次世代 ⼈材育成・組織活性化の推進及びユーザベースグループの SaaSサービスの導入を支援 ベンチャーキャピタル事業 シードからアーリーステージの SaaSとメディア関連のスタートアップに特化して投資 What we do 4
はじめに Cucumberについて demo まとめ 01 02 03 04 5 目次
01 | はじめに
01 | はじめに 7 BDDとは? BDDの流れ 1. まず新機能の具体的な例を話して、その機能で期待していることの詳細を探り、 合意する 2.
次に、それらの例を自動化できる方法で文書化し、一致するか確認する。 3. 最後に、文書化された各例で記載されている動作を実装し、コード開発の指針と なる自動テストから始める。 「 Behavior Driven Development」の略。ソフトウェア開発の手法の一つで、開発者 と開発者以外の間のギャップを埋めるためのもの。 似たようなものにATDDやTDDがある。 はじめに
01 | はじめに 8 BDDを導入した背景 はじめに • 決済機能のマイクロサービス化をするにあたり、テスト方法が課題に • 決済機能なのでテストケースが膨大で管理もしづらい
• 異動や新入社員が増え、開発方法に工夫が必要に
02 | Cucumberについて
02 | Cucumberについて 10 概要 • BDDをサポートするためのツール。 • Gherkin記法でテストシナリオを記述し、実行できるツール。 •
Java, Ruby など、さまざまな言語をサポート Cucumberとは?
02 | Cucumberについて 11 概要 featureファイルにテストシナリオを書き、stepファイルにテストケース実行時に動 くコードを実装する。 Cucumberとは?
Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /
Scenario Outline • Given / When / Then / And / But • Background 12
Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /
Scenario Outline • Given / When / Then / And / But • Background 13
Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /
Scenario Outline • Given / When / Then / And / But • Background 14
Cucumberとは? 02 | Cucumberについて Gherkin記法 • Feature • Scenario /
Scenario Outline • Given / When / Then / And / But • Background 15
Cucumberとは? 02 | Cucumberについて Stepファイル • 今回はSpringのmockMvcを使用してAPIのテストを 記述している • 画面のUIテストに使用する場合、Seleniumを使うこ
とが多い 16
Cucumberとは? 02 | Cucumberについて 実行結果 • 設定すると https://reports.cucumber.io/reports/~~ にテスト レポートが公開される
• localにhtmlを出力することも可能 17
02 | Cucumberについて 18 BDDの開発の流れ 1. 受け入れ条件を元にfeatureファイルを作成 2. テストを実装(この時点では失敗する) 3.
処理の実装 4. Cucumberのテストが成功することを確認 Cucumberとは?
03 | demo
04 | まとめ
04 | まとめ 21 メリット • 大胆なリファクタリングをしても仕様が変わらないことを担保できる • これまでスプレッドシートで管理していたケースが自動化された •
動作確認する時間が減り、逆に開発スピードが上がった • local環境で簡単にテストデータを用意できるようになった • シナリオがまとまっているので、システムの理解がしやすい デメリット • 慣れるまで多少時間がかかる ◦ テストの書き方 ◦ 併用するツールの使い方(Seleniumなど) まとめ
22 ご静聴ありがとうございました!
04 | まとめ 23 参考資料 • https://cucumber.io/ • Kent Beck
『テスト駆動開発』. 和田 卓人 まとめ