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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
190
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
320
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
160
Are APIs Still Relevant in the AI Era?
soyuka
0
450
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
350
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
220
パスワード再設定メールのURLについて知っておこう
uyuki234
0
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
540
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
490
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
速習iPhone Duo対応
yuukiw00w
2
980
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Everyday Curiosity
cassininazir
0
350
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
700
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Ethics towards AI in product and experience design
skipperchong
2
420
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
A Modern Web Designer's Workflow
chriscoyier
699
190k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
730
The Pragmatic Product Professional
lauravandoore
37
7.5k
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
『テスト駆動開発』. 和田 卓人 まとめ