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
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Search
nihonbuson
PRO
March 22, 2024
Technology
4
6.6k
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
Nextbeat Tech Bar:第一回ソフトウェアテストについて考える会
での発表資料です。
nihonbuson
PRO
March 22, 2024
Tweet
Share
More Decks by nihonbuson
See All by nihonbuson
テストコードにはテストの意図を込めよう(2025年版) #retechtalk / Put the intent of the test 2025
nihonbuson
PRO
14
2.3k
ソフトウェアテスト 最初の一歩 〜テスト設計技法をワークで体験しながら学ぶ〜 #JaSSTTokyo / SoftwareTestingFirstStep
nihonbuson
PRO
5
360
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB #JaSST #JaSSTTokyo / Readable test code
nihonbuson
PRO
13
12k
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
PRO
3
7.3k
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
PRO
3
3.3k
品質管理の歴史学 / Quality Management History
nihonbuson
PRO
34
8.4k
境界値分析
nihonbuson
PRO
4
390
振る舞い駆動開発(BDD)における、テスト自動化の前に大切にしていること #stac2024 / BDD formulation
nihonbuson
PRO
7
3.6k
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
PRO
0
2.8k
Other Decks in Technology
See All in Technology
Ruby on Rails の楽しみ方
morihirok
6
3.2k
NAB Show 2025 動画技術関連レポート / NAB Show 2025 Report
cyberagentdevelopers
PRO
0
180
熱々🔥のUDN🍜を喰らえ❗マルチテナントもVM統合も思いのまま❗新機能で切り拓くk8sネットワークの未来
tsukaman
0
150
Next.jsと状態管理のプラクティス
uhyo
6
2.4k
スイッチのBMC、つかってますか?
sonic
0
500
名単体テスト 禁断の傀儡(モック)
iwamot
PRO
1
340
Google CloudのAI Agent関連のサービス紹介
shukob
0
180
「祝」Desktop Linux 元年 2025年度版
rlysleepynick
0
110
golang-migrate VS Atlas !? 技術選定のポイントと学び ~DBマイグレーションツール選定の実例を通して~ / golang-migrate vs Atlas ! What is the point of technology selection and what you can learn from the examples of DB migration tool selection?
nttcom
0
110
Lakehouse в Лемана Тех. От архитектуры до оптимизации
emeremyanina1234
0
510
若手中心の内製アジャイル開発で研究開発に挑戦 / 20250517 Nobuhiro Kawamura & Dami Lee & Tomohiko Tanikawa
shift_evolve
1
150
さくらのクラウド 開発の挑戦とその舞台裏
kazeburo
0
300
Featured
See All Featured
The Invisible Side of Design
smashingmag
299
50k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.8k
Code Review Best Practice
trishagee
68
18k
How to Ace a Technical Interview
jacobian
276
23k
Optimizing for Happiness
mojombo
378
70k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Transcript
BDD(Cucumber)コミュニティ が無料提供している コンテンツの紹介と 現在起きている危機 ブロッコリー (@nihonbuson)
自己紹介 • 風間裕也(ブロッコリー) • 所属 ◦ 株式会社10X 品質管理部 ◦ 株式会社iCARE
フェロー(QAE技術顧問) ◦ B-Testing(個人事業主) • 社外活動 ◦ JaSST Review実行委員長 ▪ ソフトウェアレビューシンポジウム ◦ WACATE実行委員長 ▪ ソフトウェアテストの 合宿型ワークショップ形式勉強会 SNS上の アイコン
雑誌『Software Design』に寄稿しました 第1特集「テストの設計してますか?」 第1章「ソフトウェアテストとは何か」 を担当 1/18発売 https://gihyo.jp/magazine/SD/archive/2024/202402
連載記事 連載第1回:https://sqripts.com/2023/07/03/54058/
連載記事
翻訳書籍
翻訳書籍
アジェンダ • Cucumberとは何か、Cucumberコミュニティとは何か • Cucumberコミュニティが提供しているコンテンツ紹介 • Cucumberコミュニティの変遷
Cucumberとは何か Cucumberコミュニティ とは何か
Cucumberとは何か • 振る舞い駆動開発(Behaviour-Driven Development, BDD)をサポートするツール • Cucumberは、プレーンテキストで書かれた 実行可能仕様を読み取り、ソフトウェアが その仕様のとおりに動作することを検証します。 「Cucumber
- Introduction」のページを発表者が翻訳 • コミュニティで運営している • Gherkinのメンテナンス元のコミュニティでもある • メインメンテナはCucumberのみならず BDD全体について考えている人が多い
Gherkinとは何か Given/When/Thenなどのキーワードを用いて、 実行可能な仕様を自然言語で表現する手法 Feature: 自動販売機 Scenario: 飲み物を買うと、飲み物代を引いた金額のお釣りが出る Given 自動販売機がある When
550 円を入れる And 120 円の "コーラ" を選択する Then "コーラ" が出てくる And 430 円が出てくる
aslak hellesøyもメインメンテナの1人 テスト駆動開発の過去・現在・未来 より
コミュニティが提供しているコンテンツ • Cucumberの導入用ドキュメント ◦ 「BDDとは何か」 • 書籍『The BDD books』シリーズ(※有料) ◦
コミュニティメンバーの1人が執筆 ◦ 書籍『The BDD Books - Discovery』 • Cucumber School • Cucumber.io ブログ ◦ 「実例マッピング」 ◦ 「BRIEFの原則」
Cucumberの 導入用ドキュメント 「BDDとは何か」
BDDとは何か https://cucumber.io/docs/bdd/ に記載の図を発表者が日本語に翻訳
書籍 『The BDD Books - Discovery』
最初は「発見」から入る 多くの開発チームは、テスト自動化を改善したい という願望からBDDにやって来ます。 テスト自動化の改善は、BDDのアプローチに従うことの 重要な成果の1つですが、それは下流の成果です。 発見、定式化、自動化の順でプラクティスを 採用しない限り、期待されるメリットは得られません。 (中略) チームをまたいだ協調作業が得意になるまでは、 自動化ツールに焦点を合わせないほうが良いでしょう。
BDDで重要なのは「協調」 私はビジネスチームが参加しない形の「BDD」を 実施しているチームをたくさん見てきました。 私たちはそれらを「開発者専用」または「テスター専用」 のBDDとして寛大な形で説明しましたが、 個人としては基本的には それらはBDDにまったく従っていないと考えています。 (中略) BDDは協調に関するものです。BDDツールを使用したり、 Given/When/Thenを使用してテストを自動化しても、
開発アプローチは少しもBDDにはなりません。
Cucumber School
Cucumber Schoolとは何か • BDDに関するe-learningサイト ◦ BDD School ▪ https://cucumber.io/school/ (有料)
◦ Cucumber School ▪ https://school.cucumber.io/ (無料)
Cucumber Schoolで提供しているコース • 現在、全5コースを提供中 ◦ BDD with Cucumber(Java) ◦ BDD
with Cucumber(JavaScript) ◦ BDD with Cucumber(Ruby) ◦ BDD with SpecFlow(C#/.NET) ◦ BDD overview for Business Analysts and Product Owners
Cucumber Schoolのコース内容例(Java) • BDDの「発見」フェーズ • 最初のシナリオを考える • 自分自身でシナリオを表現する【★】 • シナリオを綺麗にする【★】
• BDDとTDDのループ • シナリオの詳細【★】 • 実例マッピング • コードをサポートする【★】 • 受け入れテストvsユニットテスト 【★】…Cucumberが直接関わる部分
Cucumber Schoolのコース内容例(Java) • BDDの「発見」フェーズ • 最初のシナリオを考える • 自分自身でシナリオを表現する【★】 • シナリオを綺麗にする【★】
• BDDとTDDのループ • シナリオの詳細【★】 • 実例マッピング • コードをサポートする【★】 • 受け入れテストvsユニットテスト 【★】…Cucumberが直接関わる部分
Cucumber Schoolの動画 • Cucumber Schoolの冒頭部分の動画は YouTube上に公開済み ◦ https://www.youtube.com/watch?v=PR7WIS8JYyY ◦ 動画時間は8分弱
◦ 英語の動画だが、 自動生成による日本語字幕を選択可能 ◦ 6年前の動画なので、 現在のCucumber Schoolとは内容が一部異なる
Cucumberコミュニティの素晴らしいところ 「もっと自動化ツールをどんどん使おうぜ!」 「Gherkin記法を使っていこうぜ!」 と言いがちな立場の人たちが、 「自動化ツールを使う以前に考えるべきことがあるだろ」 「Gherkin記法を使う以前に考えるべきことがあるだろ」 と言ってくれている。 (ツール/サービスの押し売りを目的としていない)
ちなみに Kent BeckもTDDにおいて大切にしている 【翻訳】テスト駆動開発の定義 - ステップ1. テストリスト
Cucumber.io ブログ 「実例マッピング」
実例マッピング • Matt Wynneが考案 • ユーザーストーリーが どのようなルールの元に 成り立つか炙り出す方法 ◦ Unknown
unknownsを Known unknownsにする • 詳しくはこちら ◦ 記事の日本語訳 ◦ 日本語の解説スライド ◦ 『The BDD Books - Discovery』
Cucumber.io ブログ 「BRIEFの原則」
BRIEFの原則 • Gherkin記法などで書かれたテストシナリオを 保守性の高い状態で記述するために役立つ原則 ◦ Business language(ビジネス言語) ◦ Real data(実際のデータ)
◦ Intention revealing(意図を明らかにする) ◦ Essential(必須) ◦ Focused(焦点を絞る) ◦ Brief(簡潔である) • 詳しくはこちら ◦ 記事の日本語訳 ◦ 『The BDD Books - Formulation』
Cucumberコミュニティの 変遷と起きている危機
Cucumberの歴史 • 2008年:Cucumberオープンソースプロジェクトが開始 • 2013年:Cucumber Limitedを設立 ◦ コンサルティングとトレーニングビジネスを実施 • 2019年:SmartBearに買収
◦ メインメンテナはフルタイムコミッターとして入社
Cucumberの歴史 • 2008年:Cucumberオープンソースプロジェクトが開始 • 2013年:Cucumber Limitedを設立 ◦ コンサルティングとトレーニングビジネスを実施 • 2019年:SmartBearに買収
◦ メインメンテナはフルタイムコミッターとして入社 • 2023年2月:メインメンテナが皆、解雇される
SpecFlowの歴史 • 2009年:「Cucumber for .NET」として誕生 • 2019年:Tricentis社が資金提供を実施 ◦ Tricentis社が「SpecFlow」の ドメインやロゴの権利を取得
• 2023年3月:SpecFlowに対して報酬が支払われなくなる • 2024年2月:「Reqnroll」へのリブランディングを発表
Mattのブログ記事より 実は私は休暇中で、インターネットもなく、このすべてが 先週起こったので、準備ができていませんでした。 メールアドレスにアクセスできなくなりました。 CucumberのコミュニティSlackに サインインできなくなりました。 GitHubの通知も確認できなくなりました。 https://mattwynne.net/new-beginning に記載の文章を発表者が日本語に翻訳
Mattのブログ記事より 実は私は休暇中で、インターネットもなく、このすべてが 先週起こったので、準備ができていませんでした。 メールアドレスにアクセスできなくなりました。 CucumberのコミュニティSlackに サインインできなくなりました。 GitHubの通知も確認できなくなりました。 おお。大丈夫ですかって? 感情的には大丈夫です。質問してくれてありがとう💖 https://mattwynne.net/new-beginning
に記載の文章を発表者が日本語に翻訳
Seb Roseとのメールのやり取りより Free at last :) ※意訳:ついに自由になったぞー
Cucumberコミュニティに起きている危機 • ドメインの管理者問題 ◦ https://cucumber.io/ ▪ SmartBear社が保有 ◦ https://school.cucumber.io/ ▪
Cucumberコミュニティが運営 ▪ いつ消えてもおかしくない • 財政難 ◦ Cucumber Slack上で、スポンサーを探している状態 ◦ 支援者を募集中! ▪ https://opencollective.com/cucumber#backer
おしまい