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
21k
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.2k
BigQueryを用いた データ分析基盤作成入門
currylike37
0
1.3k
Other Decks in Programming
See All in Programming
オープンセミナー2025@広島「君はどこで動かすか?」アンケート結果
satoshi256kbyte
0
190
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
720
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
160
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
200
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
970
ワープロって実は計算機で
pepepper
2
1.4k
A Gopher's Guide to Vibe Coding
danicat
0
170
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
120
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
4
180
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
1k
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
22
8.8k
Constant integer division faster than compiler-generated code
herumi
2
680
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Practical Orchestrator
shlominoach
190
11k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
How to train your dragon (web standard)
notwaldorf
96
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Why Our Code Smells
bkeepers
PRO
338
57k
Side Projects
sachag
455
43k
Building Applications with DynamoDB
mza
96
6.6k
Rails Girls Zürich Keynote
gr2m
95
14k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
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
『テスト駆動開発』. 和田 卓人 まとめ