Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kotlinで始めるBDD
Search
curry-like
September 22, 2021
Programming
23k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlinで始めるBDD
「Server-Side Kotlin Study #2」の登壇資料です。(
https://server-sider-kotlin.connpass.com/event/224077/
)
curry-like
September 22, 2021
More Decks by curry-like
See All by curry-like
Coroutine入門
currylike37
0
2.4k
BigQueryを用いた データ分析基盤作成入門
currylike37
0
1.4k
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
150
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.1k
Family mrubyの進捗
kishima
1
130
XHTMLが残したもの
yosuke_furukawa
PRO
2
810
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
iOSDC2026登壇資料.pdf
riofujimon
0
170
PL/pgSQLはなぜ「ふつうのSQL」より遅いのか
tameguro
0
110
Webの地図
yosuke_furukawa
PRO
6
4.6k
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
130
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
GraphQLとの向き合い方2022年版
quramy
50
15k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Ethics towards AI in product and experience design
skipperchong
2
380
Making the Leap to Tech Lead
cromwellryan
135
10k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Embracing the Ebb and Flow
colly
88
5.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
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
『テスト駆動開発』. 和田 卓人 まとめ