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
23k
0
Share
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.3k
BigQueryを用いた データ分析基盤作成入門
currylike37
0
1.4k
Other Decks in Programming
See All in Programming
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
330
OSもどきOS
arkw
0
380
Modding RubyKaigi for Myself
yui_knk
0
860
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
380
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.4k
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.5k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
200
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
300
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
170
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
3
210
[KCD Czech] eBPF Meets the GPU: Future of AI Infra Observability
doniacld
0
130
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
210
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
560
New Earth Scene 8
popppiees
3
2.3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Music & Morning Musume
bryan
47
7.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Cult of Friendly URLs
andyhume
79
6.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
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
『テスト駆動開発』. 和田 卓人 まとめ